From 504d29accac51c537d5dcd42b129deb6f7463457 Mon Sep 17 00:00:00 2001 From: Matias Linares Date: Fri, 20 Sep 2024 20:46:28 -0300 Subject: Initial commit --- kodereviewer/project.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 kodereviewer/project.py (limited to 'kodereviewer/project.py') diff --git a/kodereviewer/project.py b/kodereviewer/project.py new file mode 100644 index 0000000..669ee90 --- /dev/null +++ b/kodereviewer/project.py @@ -0,0 +1,49 @@ +import json +from PySide6.QtCore import QByteArray, QObject, QUrl, Signal, Slot, Property +from PySide6.QtQml import QmlElement + +from kodereviewer.data import PullRequest + +QML_IMPORT_NAME = "org.deprecated.kodereviewer" +QML_IMPORT_MAJOR_VERSION = 1 + +@QmlElement +class Project(QObject): + """Represents a github project""" + + _name: str + _owner: str + _url: QUrl + _pull_requests: list[PullRequest] + + pullRequestChanged = Signal() + + def __init__(self, name: str, owner: str, url: QUrl): + super().__init__() + self._name = name + self._owner = owner + self._url = url + self._pull_requests = [] + + @Property(str) + def name(self) -> str: + return self._name + + @Property(str) + def owner(self) -> str: + return self._owner + + @Property(QUrl) + def url(self) -> QUrl: + return self._url + + @Property(list) + def pullRequests(self) -> list[PullRequest]: + return self._pull_requests + + def load_pull_requests(self, response: QByteArray) -> None: + data = json.loads(response.toStdString()) + self._pull_requests = [ + PullRequest(pr) for pr in data + ] + self.pullRequestChanged.emit() -- cgit v1.2.3-70-g09d2