Add settings page and basic settings #20
|
@ -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) }}
|
||||||
|
|
|
@ -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'))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue