Example #1
0
 def _process(self):
     has_ratings = (AbstractReviewRating.query.join(
         AbstractReviewRating.review).join(AbstractReview.abstract).filter(
             ~Abstract.is_deleted,
             Abstract.event_new == self.event_new).has_rows())
     defaults = FormDefaults(
         abstract_review_questions=self.event_new.abstract_review_questions,
         **abstracts_reviewing_settings.get_all(self.event_new))
     form = AbstractReviewingSettingsForm(event=self.event_new,
                                          obj=defaults,
                                          has_ratings=has_ratings)
     if form.validate_on_submit():
         data = form.data
         # XXX: we need to do this assignment for new questions,
         # but editing or deleting existing questions changes an
         # object that is already in the session so it's updated
         # in any case
         self.event_new.abstract_review_questions = data.pop(
             'abstract_review_questions')
         abstracts_reviewing_settings.set_multi(self.event_new, data)
         flash(_('Abstract reviewing settings have been saved'), 'success')
         return jsonify_data()
     self.commit = False
     disabled_fields = form.RATING_FIELDS if has_ratings else ()
     return jsonify_form(form, disabled_fields=disabled_fields)
Example #2
0
 def _clone_settings(self, new_event):
     old_settings = abstracts_settings.get_all(self.old_event, no_defaults=True)
     offset = new_event.start_dt - self.old_event.start_dt
     for key in ('start_dt', 'end_dt', 'modification_end_dt'):
         if not old_settings.get(key):
             continue
         old_settings[key] += offset
     abstracts_settings.set_multi(new_event, old_settings)
     abstracts_reviewing_settings.set_multi(new_event, abstracts_reviewing_settings.get_all(self.old_event,
                                                                                            no_defaults=True))
     boa_settings.set_multi(new_event, boa_settings.get_all(self.old_event, no_defaults=True))
Example #3
0
 def _clone_settings(self, new_event):
     old_settings = abstracts_settings.get_all(self.old_event, no_defaults=True)
     offset = new_event.start_dt - self.old_event.start_dt
     for key in ('start_dt', 'end_dt', 'modification_end_dt'):
         if not old_settings.get(key):
             continue
         old_settings[key] += offset
     abstracts_settings.set_multi(new_event, old_settings)
     abstracts_reviewing_settings.set_multi(new_event, abstracts_reviewing_settings.get_all(self.old_event,
                                                                                            no_defaults=True))
     boa_settings.set_multi(new_event, boa_settings.get_all(self.old_event, no_defaults=True))
Example #4
0
 def _process(self):
     defaults = FormDefaults(**abstracts_reviewing_settings.get_all(self.event))
     form = AbstractReviewingSettingsForm(event=self.event, obj=defaults, has_ratings=self.ratings_query.has_rows())
     if form.validate_on_submit():
         data = form.data
         self._scale_ratings(data['scale_lower'], data['scale_upper'])
         abstracts_reviewing_settings.set_multi(self.event, data)
         flash(_('Abstract reviewing settings have been saved'), 'success')
         return jsonify_data()
     self.commit = False
     return jsonify_form(form)
Example #5
0
    def _scale_ratings(self, scale_min, scale_max):
        prev_min = abstracts_reviewing_settings.get(self.event, 'scale_lower')
        prev_max = abstracts_reviewing_settings.get(self.event, 'scale_upper')
        if scale_min == prev_min and scale_max == prev_max:
            return
        assert scale_max > scale_min

        abstracts_reviewing_settings.set_multi(self.event, {
            'scale_lower': scale_min,
            'scale_upper': scale_max,
        })
        for rating in self.ratings_query:
            if rating.value is None:
                continue
            value = (rating.value - prev_min) / (prev_max - prev_min)
            rating.value = round(value * (scale_max - scale_min) + scale_min)
Example #6
0
 def _migrate_review_settings(self):
     try:
         old_settings = self.conf._confAbstractReview
     except AttributeError:
         return
     self.old_scale = (int(old_settings._scaleLower), int(old_settings._scaleHigher))
     if self.old_scale[1] - self.old_scale[0] <= 20:
         self.new_scale = self.old_scale
     else:
         self.new_scale = (0, 10)
     abstracts_reviewing_settings.set_multi(self.event, {
         'scale_lower': self.new_scale[0],
         'scale_upper': self.new_scale[1],
         'allow_convener_judgment': bool(getattr(old_settings, '_canReviewerAccept', False))
     })
     for pos, old_question in enumerate(old_settings._reviewingQuestions, 1):
         self._migrate_question(old_question, pos=pos)
Example #7
0
 def _migrate_review_settings(self):
     try:
         old_settings = self.conf._confAbstractReview
     except AttributeError:
         return
     self.old_scale = (int(old_settings._scaleLower), int(old_settings._scaleHigher))
     if self.old_scale[1] - self.old_scale[0] <= 20:
         self.new_scale = self.old_scale
     else:
         self.new_scale = (0, 10)
     abstracts_reviewing_settings.set_multi(self.event, {
         'scale_lower': self.new_scale[0],
         'scale_upper': self.new_scale[1],
         'allow_convener_judgment': bool(getattr(old_settings, '_canReviewerAccept', False))
     })
     for pos, old_question in enumerate(old_settings._reviewingQuestions, 1):
         self._migrate_question(old_question, pos=pos)
Example #8
0
 def _process(self):
     has_ratings = (AbstractReviewRating.query
                    .join(AbstractReviewRating.review)
                    .join(AbstractReview.abstract)
                    .join(AbstractReviewRating.question)
                    .filter(~Abstract.is_deleted, Abstract.event == self.event,
                            AbstractReviewQuestion.field_type == 'rating')
                    .has_rows())
     defaults = FormDefaults(**abstracts_reviewing_settings.get_all(self.event))
     form = AbstractReviewingSettingsForm(event=self.event, obj=defaults, has_ratings=has_ratings)
     if form.validate_on_submit():
         data = form.data
         abstracts_reviewing_settings.set_multi(self.event, data)
         flash(_('Abstract reviewing settings have been saved'), 'success')
         return jsonify_data()
     self.commit = False
     disabled_fields = form.RATING_FIELDS if has_ratings else ()
     return jsonify_form(form, disabled_fields=disabled_fields)
Example #9
0
 def _process(self):
     has_ratings = (AbstractReviewRating.query
                    .join(AbstractReviewRating.review)
                    .join(AbstractReview.abstract)
                    .join(AbstractReviewRating.question)
                    .filter(~Abstract.is_deleted, Abstract.event == self.event,
                            AbstractReviewQuestion.field_type == 'rating')
                    .has_rows())
     defaults = FormDefaults(**abstracts_reviewing_settings.get_all(self.event))
     form = AbstractReviewingSettingsForm(event=self.event, obj=defaults, has_ratings=has_ratings)
     if form.validate_on_submit():
         data = form.data
         abstracts_reviewing_settings.set_multi(self.event, data)
         flash(_('Abstract reviewing settings have been saved'), 'success')
         return jsonify_data()
     self.commit = False
     disabled_fields = form.RATING_FIELDS if has_ratings else ()
     return jsonify_form(form, disabled_fields=disabled_fields)
Example #10
0
 def _process(self):
     has_ratings = (AbstractReviewRating.query
                    .join(AbstractReviewRating.review)
                    .join(AbstractReview.abstract)
                    .filter(~Abstract.is_deleted, Abstract.event_new == self.event_new)
                    .has_rows())
     defaults = FormDefaults(abstract_review_questions=self.event_new.abstract_review_questions,
                             **abstracts_reviewing_settings.get_all(self.event_new))
     form = AbstractReviewingSettingsForm(event=self.event_new, obj=defaults, has_ratings=has_ratings)
     if form.validate_on_submit():
         data = form.data
         # XXX: we need to do this assignment for new questions,
         # but editing or deleting existing questions changes an
         # object that is already in the session so it's updated
         # in any case
         self.event_new.abstract_review_questions = data.pop('abstract_review_questions')
         abstracts_reviewing_settings.set_multi(self.event_new, data)
         flash(_('Abstract reviewing settings have been saved'), 'success')
         return jsonify_data()
     self.commit = False
     disabled_fields = form.RATING_FIELDS if has_ratings else ()
     return jsonify_form(form, disabled_fields=disabled_fields)