Skip to content

Commit

Permalink
[orga] Let organisers decide if review scores are mandatory
Browse files Browse the repository at this point in the history
Same goes for texts. Closes #340
  • Loading branch information
rixx committed Feb 5, 2018
1 parent 7970a98 commit 7871f16
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 4 deletions.
3 changes: 1 addition & 2 deletions CHANGELOG.rst
Expand Up @@ -16,12 +16,11 @@ Breaking Changes

Features
~~~~~~~~

- Organisers can now decide if reviewers should be required to submit a score or a text with their review. (#340)

Fixed bugs
~~~~~~~~~~~
- In the dashboard, an incorrect link was given to add new reviewers. (#344)
- The "save" button was missing on the mail settings page. (#341)


.. _releases: https://github.com/pretalx/pretalx/releases
2 changes: 2 additions & 0 deletions src/pretalx/common/models/settings.py
Expand Up @@ -19,6 +19,8 @@ class GlobalSettings(GlobalSettingsBase):
settings_hierarkey.add_default('allow_override_votes', 'False', bool)
settings_hierarkey.add_default('review_min_score', 0, int)
settings_hierarkey.add_default('review_max_score', 1, int)
settings_hierarkey.add_default('review_score_mandatory', 'False', bool)
settings_hierarkey.add_default('review_text_mandatory', 'False', bool)

settings_hierarkey.add_default('mail_from', 'noreply@example.org', str)
settings_hierarkey.add_default('smtp_use_custom', 'False', bool)
Expand Down
8 changes: 8 additions & 0 deletions src/pretalx/orga/forms/cfp.py
Expand Up @@ -13,6 +13,14 @@
class CfPSettingsForm(ReadOnlyFlag, I18nFormMixin, HierarkeyForm):
cfp_show_deadline = forms.BooleanField(label=_('Display deadline publicly'),
required=False)
review_score_mandatory = forms.BooleanField(
label=_('Require reviewers to submit a score'),
required=False,
)
review_text_mandatory = forms.BooleanField(
label=_('Require reviewers to submit a text'),
required=False,
)
mail_on_new_submission = forms.BooleanField(
label=_('Send mail on new submission'),
help_text=_('If this setting is checked, you will receive an email to the orga address for every received submission.'),
Expand Down
9 changes: 7 additions & 2 deletions src/pretalx/orga/forms/review.py
Expand Up @@ -21,7 +21,7 @@ def __init__(self, event, user, *args, instance=None, **kwargs):
instance.score = self.min_value - 1

super().__init__(*args, instance=instance, **kwargs)
choices = [(None, _('No score'))]
choices = [(None, _('No score'))] if not event.settings.review_score_mandatory else []
if self.may_override:
choices.append((self.min_value - 1, _('Negative override (Veto)')))
for counter in range(abs(self.max_value - self.min_value) + 1):
Expand All @@ -35,9 +35,14 @@ def __init__(self, event, user, *args, instance=None, **kwargs):
if self.may_override:
choices.append((self.max_value + 1, _('Positive override')))

self.fields['score'] = forms.ChoiceField(choices=choices, required=False, disabled=kwargs.get('read_only', False))
self.fields['score'] = forms.ChoiceField(
choices=choices,
required=event.settings.review_score_mandatory,
disabled=kwargs.get('read_only', False),
)
self.fields['text'].widget.attrs['rows'] = 2
self.fields['text'].widget.attrs['placeholder'] = phrases.orga.example_review
self.fields['text'].required = event.settings.review_text_mandatory

def clean_score(self):
score = self.cleaned_data.get('score')
Expand Down
2 changes: 2 additions & 0 deletions src/pretalx/orga/templates/orga/cfp/text.html
Expand Up @@ -27,6 +27,8 @@

<legend>{% trans "Review settings" %}</legend>
{% bootstrap_field sform.allow_override_votes layout='event' %}
{% bootstrap_field sform.review_score_mandatory layout='event' %}
{% bootstrap_field sform.review_text_mandatory layout='event' %}
{% bootstrap_field sform.review_min_score layout='event' %}
{% bootstrap_field sform.review_max_score layout='event' %}
{% for field in sform %}
Expand Down

0 comments on commit 7871f16

Please sign in to comment.