def update_review(review, review_data, questions_data): paper = review.revision.paper event = paper.event changes = review.populate_from_dict(review_data) review.modified_dt = now_utc() log_fields = {} for question in event.cfp.get_questions_for_review_type(review.type): field_name = f'question_{question.id}' rating = question.get_review_rating(review, allow_create=True) old_value = rating.value rating.value = questions_data[field_name] if old_value != rating.value: field_type = question.field_type changes[field_name] = ( question.field.get_friendly_value(old_value), question.field.get_friendly_value(rating.value)) log_fields[field_name] = { 'title': question.title, 'type': field_type if field_type != 'rating' else 'number' } db.session.flush() notify_paper_review_submission(review) logger.info("Paper review %r modified", review) log_fields.update({'proposed_action': 'Action', 'comment': 'Comment'}) event.log(EventLogRealm.reviewing, EventLogKind.change, 'Papers', f'Review for paper {paper.verbose_title} modified', session.user, data={'Changes': make_diff_log(changes, log_fields)})
def create_review(paper, review_type, user, review_data, questions_data): review = PaperReview(revision=paper.last_revision, type=review_type.instance, user=user) review.populate_from_dict(review_data) log_data = {} for question in paper.event.cfp.get_questions_for_review_type( review_type.instance): value = questions_data[f'question_{question.id}'] review.ratings.append(PaperReviewRating(question=question, value=value)) log_data[question.title] = question.field.get_friendly_value(value) db.session.flush() notify_paper_review_submission(review) logger.info("Paper %r received a review of type %s by %r", paper, review_type.instance.name, user) log_data.update({ 'Type': orig_string(review_type.title), 'Action': orig_string(review.proposed_action.title), 'Comment': review.comment }) paper.event.log( EventLogRealm.reviewing, EventLogKind.positive, 'Papers', f'Paper for contribution {paper.contribution.verbose_title} reviewed', user, data=log_data) return review
def update_review(review, review_data, questions_data): paper = review.revision.paper event = paper.event changes = review.populate_from_dict(review_data) review.modified_dt = now_utc() log_fields = {} for question in event.cfp.get_questions_for_review_type(review.type): field_name = 'question_{}'.format(question.id) rating = question.get_review_rating(review, allow_create=True) old_value = rating.value rating.value = questions_data[field_name] if old_value != rating.value: field_type = question.field_type changes[field_name] = (question.field.get_friendly_value(old_value), question.field.get_friendly_value(rating.value)) log_fields[field_name] = { 'title': question.title, 'type': field_type if field_type != 'rating' else 'number' } db.session.flush() notify_paper_review_submission(review) logger.info("Paper review %r modified", review) log_fields.update({ 'proposed_action': 'Action', 'comment': 'Comment' }) event.log(EventLogRealm.reviewing, EventLogKind.change, 'Papers', 'Review for paper {} modified'.format(paper.verbose_title), session.user, data={'Changes': make_diff_log(changes, log_fields)})
def update_review(review, review_data, questions_data): paper = review.revision.paper event = paper.event changes = review.populate_from_dict(review_data) review.modified_dt = now_utc() log_fields = {} for question in event.cfp.get_questions_for_review_type(review.type): field_name = 'question_{}'.format(question.id) rating = question.get_review_rating(review, allow_create=True) old_value = rating.value rating.value = int(questions_data[field_name]) if old_value != rating.value: changes[field_name] = (old_value, rating.value) log_fields[field_name] = { 'title': question.text, 'type': 'number' } db.session.flush() notify_paper_review_submission(review) logger.info("Paper review %r modified", review) log_fields.update({ 'proposed_action': 'Action', 'comment': 'Comment' }) event.log(EventLogRealm.management, EventLogKind.change, 'Papers', 'Review for paper {} modified'.format(paper.verbose_title), session.user, data={'Changes': make_diff_log(changes, log_fields)})
def create_review(paper, review_type, user, review_data, questions_data): review = PaperReview(revision=paper.last_revision, type=review_type.instance, user=user) review.populate_from_dict(review_data) log_data = {} for question in paper.event.cfp.get_questions_for_review_type(review_type.instance): value = questions_data['question_{}'.format(question.id)] review.ratings.append(PaperReviewRating(question=question, value=value)) log_data[question.title] = question.field.get_friendly_value(value) db.session.flush() notify_paper_review_submission(review) logger.info("Paper %r received a review of type %s by %r", paper, review_type.instance.name, user) log_data.update({ 'Type': orig_string(review_type.title), 'Action': orig_string(review.proposed_action.title), 'Comment': review.comment }) paper.event.log(EventLogRealm.reviewing, EventLogKind.positive, 'Papers', 'Paper for contribution {} reviewed'.format(paper.contribution.verbose_title), user, data=log_data) return review