Loading portal/database/models.py +2 −2 Original line number Diff line number Diff line Loading @@ -163,7 +163,7 @@ class User(Client, EntityBase): """ UPDATABLE = ['name', 'email', 'uco', 'gitlab_username', 'managed'] BASE_PARAMS = ['username', 'codename', 'is_admin', *UPDATABLE, 'managed', 'id'] LISTABLE = ['username', 'gitlab_username', 'name'] LISTABLE = ['username', 'gitlab_username', 'name', 'uco', 'email'] __tablename__ = 'user' id = db.Column(db.String(length=36), db.ForeignKey('client.id'), default=lambda: str(uuid.uuid4()), primary_key=True) Loading Loading @@ -960,7 +960,7 @@ class ReviewItem(db.Model, EntityBase): __tablename__ = 'reviewItem' UPDATABLE = ['content', 'file', 'line_start', 'line_end', 'line'] BASE_PARAMS = ['id', *UPDATABLE] LISTABLE = [*BASE_PARAMS] LISTABLE = BASE_PARAMS id = db.Column(db.String(length=36), default=lambda: str(uuid.uuid4()), primary_key=True) review_id = db.Column(db.String(36), db.ForeignKey('review.id', ondelete='cascade'), nullable=False) Loading portal/facade/reviews_facade.py +5 −4 Original line number Diff line number Diff line import logging from typing import List from portal.database import Submission, Review, User, ReviewItem from portal.database import Review, ReviewItem, Submission, User from portal.facade.general_facade import GeneralCRUDFacade from portal.service.reviews import ReviewService Loading @@ -15,13 +15,15 @@ class ReviewsFacade(GeneralCRUDFacade): def create(self, submission: Submission, **data) -> Review: if not submission.review: self._service(submission=submission).create() log.info(f"[REVIEW] Create review by {self.client.log_name} " f"for {submission.log_name}: {data}") params = dict(items=data['review_items'], author=self.client) result = self._service(submission=submission).create_review_items(**params) return result def create_review_item(self, submission: Submission, author: User, items: List[dict]) \ -> Review: log.info(f"[REVIEW] Create review by {author} for {submission.log_name}: {items}") return self._service(submission=submission) \ .create_review_items(author=author, items=items) Loading @@ -30,4 +32,3 @@ class ReviewsFacade(GeneralCRUDFacade): def delete_item(self, item: ReviewItem): return self._service(item.review).delete(item) portal/facade/submissions_facade.py +1 −3 Original line number Diff line number Diff line Loading @@ -131,9 +131,7 @@ class SubmissionsFacade(GeneralCRUDFacade): project = project or submission.project user = user or submission.user note = self._services.is_api(submission.course).read_note( project=project, user=user) note = self._services.is_api(submission.course).read_note(project=project, user=user) return note def is_write_notepad(self, submission: Submission, data: dict = None): Loading portal/rest/schemas.py +1 −1 Original line number Diff line number Diff line Loading @@ -319,7 +319,7 @@ class ReviewItemSchema(BaseSchema, Schema): line = fields.Int(allow_none=True) line_start = fields.Int(allow_none=True) line_end = fields.Int(allow_none=True) review = NESTED('Review', only=('id', 'submission.id')) review = NESTED('Review', onlyi=('id', 'submission.id')) user = NESTED['user'] Loading portal/service/reviews.py +5 −9 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ class ReviewService(GeneralService): allowed = [] return self.update_entity(entity, data, allowed=allowed) def _set_item_data(self, entity: ReviewItem, **data): def _set_item_data(self, entity: ReviewItem, data): allowed = ReviewItem.updatable_params() return self.update_entity(entity=entity, data=data, allowed=allowed) Loading @@ -47,13 +47,9 @@ class ReviewService(GeneralService): Returns(Review): review instance with review items """ for item in items: line_start = item.get('line_start') line_end = item.get('line_end') line = item.get('line') file = item.get('file') ReviewItem(user=author, review=self.review, file=file, line_start=line_start, line_end=line_end, line=line, content=item['content']) rw_item = ReviewItem(user=author, review=self.review) self._set_item_data(rw_item, item) log.info(f"Added review items {items} to review {self.review.id} " f"for submission {self.submission.log_name}") self.write_entity(self.review) Loading Loading @@ -86,5 +82,5 @@ class ReviewService(GeneralService): """ log.info(f"[UPDATE] Review item for submission {self.submission.log_name}: {data}") self._set_item_data(item, **data) self._set_item_data(item, data=data) return item.review Loading
portal/database/models.py +2 −2 Original line number Diff line number Diff line Loading @@ -163,7 +163,7 @@ class User(Client, EntityBase): """ UPDATABLE = ['name', 'email', 'uco', 'gitlab_username', 'managed'] BASE_PARAMS = ['username', 'codename', 'is_admin', *UPDATABLE, 'managed', 'id'] LISTABLE = ['username', 'gitlab_username', 'name'] LISTABLE = ['username', 'gitlab_username', 'name', 'uco', 'email'] __tablename__ = 'user' id = db.Column(db.String(length=36), db.ForeignKey('client.id'), default=lambda: str(uuid.uuid4()), primary_key=True) Loading Loading @@ -960,7 +960,7 @@ class ReviewItem(db.Model, EntityBase): __tablename__ = 'reviewItem' UPDATABLE = ['content', 'file', 'line_start', 'line_end', 'line'] BASE_PARAMS = ['id', *UPDATABLE] LISTABLE = [*BASE_PARAMS] LISTABLE = BASE_PARAMS id = db.Column(db.String(length=36), default=lambda: str(uuid.uuid4()), primary_key=True) review_id = db.Column(db.String(36), db.ForeignKey('review.id', ondelete='cascade'), nullable=False) Loading
portal/facade/reviews_facade.py +5 −4 Original line number Diff line number Diff line import logging from typing import List from portal.database import Submission, Review, User, ReviewItem from portal.database import Review, ReviewItem, Submission, User from portal.facade.general_facade import GeneralCRUDFacade from portal.service.reviews import ReviewService Loading @@ -15,13 +15,15 @@ class ReviewsFacade(GeneralCRUDFacade): def create(self, submission: Submission, **data) -> Review: if not submission.review: self._service(submission=submission).create() log.info(f"[REVIEW] Create review by {self.client.log_name} " f"for {submission.log_name}: {data}") params = dict(items=data['review_items'], author=self.client) result = self._service(submission=submission).create_review_items(**params) return result def create_review_item(self, submission: Submission, author: User, items: List[dict]) \ -> Review: log.info(f"[REVIEW] Create review by {author} for {submission.log_name}: {items}") return self._service(submission=submission) \ .create_review_items(author=author, items=items) Loading @@ -30,4 +32,3 @@ class ReviewsFacade(GeneralCRUDFacade): def delete_item(self, item: ReviewItem): return self._service(item.review).delete(item)
portal/facade/submissions_facade.py +1 −3 Original line number Diff line number Diff line Loading @@ -131,9 +131,7 @@ class SubmissionsFacade(GeneralCRUDFacade): project = project or submission.project user = user or submission.user note = self._services.is_api(submission.course).read_note( project=project, user=user) note = self._services.is_api(submission.course).read_note(project=project, user=user) return note def is_write_notepad(self, submission: Submission, data: dict = None): Loading
portal/rest/schemas.py +1 −1 Original line number Diff line number Diff line Loading @@ -319,7 +319,7 @@ class ReviewItemSchema(BaseSchema, Schema): line = fields.Int(allow_none=True) line_start = fields.Int(allow_none=True) line_end = fields.Int(allow_none=True) review = NESTED('Review', only=('id', 'submission.id')) review = NESTED('Review', onlyi=('id', 'submission.id')) user = NESTED['user'] Loading
portal/service/reviews.py +5 −9 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ class ReviewService(GeneralService): allowed = [] return self.update_entity(entity, data, allowed=allowed) def _set_item_data(self, entity: ReviewItem, **data): def _set_item_data(self, entity: ReviewItem, data): allowed = ReviewItem.updatable_params() return self.update_entity(entity=entity, data=data, allowed=allowed) Loading @@ -47,13 +47,9 @@ class ReviewService(GeneralService): Returns(Review): review instance with review items """ for item in items: line_start = item.get('line_start') line_end = item.get('line_end') line = item.get('line') file = item.get('file') ReviewItem(user=author, review=self.review, file=file, line_start=line_start, line_end=line_end, line=line, content=item['content']) rw_item = ReviewItem(user=author, review=self.review) self._set_item_data(rw_item, item) log.info(f"Added review items {items} to review {self.review.id} " f"for submission {self.submission.log_name}") self.write_entity(self.review) Loading Loading @@ -86,5 +82,5 @@ class ReviewService(GeneralService): """ log.info(f"[UPDATE] Review item for submission {self.submission.log_name}: {data}") self._set_item_data(item, **data) self._set_item_data(item, data=data) return item.review