Add settings page and basic settings #20

Merged
Jaculabilis merged 8 commits from tvb/settings-page into develop 2021-09-10 03:39:07 +00:00
2 changed files with 0 additions and 83 deletions
Showing only changes of commit 4d1c579e3c - Show all commits

View File

@ -45,47 +45,21 @@
<h3>General</h3> <h3>General</h3>
<p> <p>
{{ form.title.label }}:<br>
{{ form.title(autocomplete="off", size=32, style="width:100%") }}<br>
{{ form.editor.label }}: {{ form.editor(autocomplete="off") }}<br> {{ form.editor.label }}: {{ form.editor(autocomplete="off") }}<br>
{% for error in form.editor.errors %} {% for error in form.editor.errors %}
<span style="color: #ff0000">{{ error }}</span><br> <span style="color: #ff0000">{{ error }}</span><br>
{% endfor %} {% endfor %}
{{ form.prompt.label }}: {{ form.prompt(class_="fullwidth") }}
{% for error in form.prompt.errors %}
<span style="color: #ff0000">{{ error }}</span><br>
{% endfor %}
</p> </p>
<h3>Game Progress</h3> <h3>Game Progress</h3>
<p> <p>
{{ number_setting(form.turnCurrent) }} {{ number_setting(form.turnCurrent) }}
{{ number_setting(form.turnMax) }}
{{ form.articleIndexList.label }}:<br>
{{ form.articleIndexList(class_="fullwidth", rows=10) }}
{% for error in form.articleIndexList.errors %}
<span style="color: #ff0000">{{ error }}</span><br>
{% endfor %}
{{ number_setting(form.articleIndexCapacity) }}
{{ form.turnAssignment.label }}:<br> {{ form.turnAssignment.label }}:<br>
{{ form.turnAssignment(class_="fullwidth", rows=10) }} {{ form.turnAssignment(class_="fullwidth", rows=10) }}
</p> </p>
<h3>Visibility and Joining</h3>
<p>
{{ flag_setting(form.joinPublic) }}
{{ flag_setting(form.joinOpen) }}
{{ form.joinPassword(autocomplete="off") }}
{{ form.joinPassword.label }}<br>
{{ number_setting(form.joinMaxPlayers) }}
{{ number_setting(form.joinCharsPerPlayer) }}
</p>
<h3>Turn Publishing</h3> <h3>Turn Publishing</h3>
<p> <p>
{{ flag_setting(form.publishNotifyEditorOnReady) }}
{{ flag_setting(form.publishNotifyPlayerOnReject) }}
{{ flag_setting(form.publishNotifyPlayerOnAccept) }}
{{ form.publishDeadlines(autocomplete="off") }} {{ form.publishDeadlines(autocomplete="off") }}
{{ form.publishDeadlines.label }}<br> {{ form.publishDeadlines.label }}<br>
{{ flag_setting(form.publishAsap) }} {{ flag_setting(form.publishAsap) }}

View File

@ -158,65 +158,20 @@ class Settings():
if name.startswith('s_'): if name.startswith('s_'):
yield name, setting yield name, setting
s_title = Setting('title',
StringField('Title override', validators=[Optional()]))
s_editor = Setting('editor', s_editor = Setting('editor',
SelectField('Editor', validators=[DataRequired(), User(True)]), SelectField('Editor', validators=[DataRequired(), User(True)]),
translator=UsernameTranslator()) translator=UsernameTranslator())
s_prompt = Setting('prompt',
TextAreaField('Prompt', validators=[DataRequired()]))
s_turnCurrent = Setting('turn.current', s_turnCurrent = Setting('turn.current',
IntegerField( IntegerField(
'Current turn', 'Current turn',
widget=NumberInput(), widget=NumberInput(),
validators=[Optional()])) validators=[Optional()]))
s_turnMax = Setting('turn.max',
IntegerField(
'Number of turns',
widget=NumberInput(),
validators=[DataRequired()]))
s_turnAssignment = Setting('turn.assignment', s_turnAssignment = Setting('turn.assignment',
TextAreaField('index assignment raw'), TextAreaField('index assignment raw'),
translator=TmpAsgnTranslator()) translator=TmpAsgnTranslator())
s_joinPublic = Setting('join.public',
BooleanField('Show game on public pages'))
s_joinOpen = Setting('join.open',
BooleanField('Allow players to join game'))
s_joinPassword = Setting('join.password',
StringField('Password to join game', validators=[Optional()]))
s_joinMaxPlayers = Setting('join.max_players',
IntegerField(
'Maximum number of players',
widget=NumberInput(),
validators=[DataRequired()]))
s_joinCharsPerPlayer = Setting('join.chars_per_player',
IntegerField(
'Characters per player',
widget=NumberInput(),
validators=[DataRequired()]))
s_publishNotifyEditorOnReady = Setting('publish.notify_editor_on_ready',
BooleanField(
'Notify the editor when a player marks an article as ready'))
s_publishNotifyPlayerOnReject = Setting('publish.notify_player_on_reject',
BooleanField(
'Notify a player when their article is rejected by the editor'))
s_publishNotifyPlayerOnAccept = Setting('publish.notify_player_on_accept',
BooleanField(
'Notify a player when their article is accepted by the editor'))
s_publishDeadlines = Setting('publish.deadlines', s_publishDeadlines = Setting('publish.deadlines',
StringField( StringField(
'Turn deadline, as a crontab specification', 'Turn deadline, as a crontab specification',
@ -236,18 +191,6 @@ class Settings():
BooleanField( BooleanField(
'Block turn publish if any articles are awaiting editor review')) 'Block turn publish if any articles are awaiting editor review'))
s_articleIndexList = Setting('article.index.list',
TextAreaField(
'Index specifications',
validators=[IndexList]),
translator=IndexListTranslator())
s_articleIndexCapacity = Setting('article.index.capacity',
IntegerField(
'Index capacity override',
widget=NumberInput(),
validators=[Optional()]))
s_articleCitationAllowSelf = Setting('article.citation.allow_self', s_articleCitationAllowSelf = Setting('article.citation.allow_self',
BooleanField('Allow players to cite themselves')) BooleanField('Allow players to cite themselves'))