Preparation for publishing date.
This commit is contained in:
@@ -18,6 +18,9 @@ DEFAULT_SETTINGS = (
|
|||||||
DefaultSetting('forms_development_init', False),
|
DefaultSetting('forms_development_init', False),
|
||||||
DefaultSetting('form_initials', dict()),
|
DefaultSetting('form_initials', dict()),
|
||||||
DefaultSetting('matrix_config', ImproperlyConfigured),
|
DefaultSetting('matrix_config', ImproperlyConfigured),
|
||||||
|
DefaultSetting('publish_before_begin_days', 10),
|
||||||
|
DefaultSetting('publish_before_deadline_days', 7),
|
||||||
|
DefaultSetting('publish_issues', list()),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -274,3 +274,29 @@ MATRIX_CONFIG = {
|
|||||||
'max_participants': 4,
|
'max_participants': 4,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Publishing
|
||||||
|
# PUBLISH_BEFORE_BEGIN_DAYS = 10
|
||||||
|
# PUBLISH_BEFORE_DEADLINE_DAYS = 7
|
||||||
|
PUBLISH_ISSUES = [
|
||||||
|
{
|
||||||
|
'issue': u'Heft 1',
|
||||||
|
'release': (31, 1),
|
||||||
|
'deadline': (15, 11),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'issue': u'Heft 2',
|
||||||
|
'release': (7, 4),
|
||||||
|
'deadline': (15, 2),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'issue': u'Heft 3',
|
||||||
|
'release': (7, 7),
|
||||||
|
'deadline': (15, 5),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'issue': u'Heft 4',
|
||||||
|
'release': (7, 10),
|
||||||
|
'deadline': (15, 8),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|||||||
@@ -622,10 +622,10 @@ class RegistrationForm(EventCreateForm):
|
|||||||
widget=DateWidget(attrs={'id': 'id_deadline_other_widget',
|
widget=DateWidget(attrs={'id': 'id_deadline_other_widget',
|
||||||
'placeholder': _(u'Kann freigelassen werden'),
|
'placeholder': _(u'Kann freigelassen werden'),
|
||||||
},
|
},
|
||||||
# usel10n=True,
|
usel10n=True,
|
||||||
options={
|
options={
|
||||||
'format': 'dd.mm.yyyy',
|
# 'format': 'dd.mm.yyyy',
|
||||||
'weekStart': 1,
|
# 'weekStart': 1,
|
||||||
'pickerPosition': 'bottom-left',
|
'pickerPosition': 'bottom-left',
|
||||||
},
|
},
|
||||||
bootstrap_version=3))
|
bootstrap_version=3))
|
||||||
@@ -806,3 +806,64 @@ class ChargesForm(EventCreateForm):
|
|||||||
|
|
||||||
class SummaryForm(EventCreateForm):
|
class SummaryForm(EventCreateForm):
|
||||||
_form_title = _(u'Zusammenfassung')
|
_form_title = _(u'Zusammenfassung')
|
||||||
|
|
||||||
|
publish_date = forms.CharField(disabled=True,
|
||||||
|
initial=_(u'Unverzüglich'),
|
||||||
|
label=_(u'Voraussichtliche Veröffentlichung'),
|
||||||
|
)
|
||||||
|
|
||||||
|
def get_initial_for_field(self, field, field_name):
|
||||||
|
value = super(SummaryForm, self).get_initial_for_field(field, field_name)
|
||||||
|
if field_name == 'publish_date':
|
||||||
|
max_participants = self._session_data.get('max_participants', 0)
|
||||||
|
if max_participants:
|
||||||
|
deadline = self._session_data.get('deadline', None)
|
||||||
|
if deadline == 'OTHER':
|
||||||
|
deadline = self._session_data.get('deadline_other', None)
|
||||||
|
else:
|
||||||
|
deadline_field_name = 'deadline_%s' % deadline
|
||||||
|
if deadline_field_name in self._session_data:
|
||||||
|
deadline = self._session_data.get(deadline_field_name)
|
||||||
|
else:
|
||||||
|
raise Exception(deadline)
|
||||||
|
|
||||||
|
if deadline:
|
||||||
|
publish_deadline = deadline - datetime.timedelta(app_config.settings.publish_before_deadline_days)
|
||||||
|
else:
|
||||||
|
first_day = self._session_data.get('first_day')
|
||||||
|
publish_deadline = first_day - datetime.timedelta(app_config.settings.publish_before_begin_days)
|
||||||
|
|
||||||
|
today = datetime.date.today()
|
||||||
|
|
||||||
|
break_outer_loop = False
|
||||||
|
for year in (today.year, today.year + 1):
|
||||||
|
for issue in app_config.settings.publish_issues:
|
||||||
|
if not ('issue' in issue and 'release' in issue and 'deadline' in issue):
|
||||||
|
continue
|
||||||
|
issue_name = issue['issue']
|
||||||
|
issue_release_day = issue['release'][0]
|
||||||
|
issue_release_month = issue['release'][1]
|
||||||
|
issue_deadline_day = issue['deadline'][0]
|
||||||
|
issue_deadline_month = issue['deadline'][1]
|
||||||
|
|
||||||
|
issue_release_date = datetime.date(year, issue_release_month, issue_release_day)
|
||||||
|
if issue_release_date < today:
|
||||||
|
continue
|
||||||
|
|
||||||
|
issue_deadline_date = datetime.date(year, issue_deadline_month, issue_deadline_day)
|
||||||
|
if issue_deadline_date > issue_release_date:
|
||||||
|
issue_deadline_date = datetime.date(year - 1, issue_deadline_month, issue_deadline_day)
|
||||||
|
|
||||||
|
if publish_deadline > issue_release_date and today < issue_deadline_date:
|
||||||
|
value = u'{issue} / {year} - {date}'.format(issue=issue_name,
|
||||||
|
year=year,
|
||||||
|
date=format_date(issue_release_date,
|
||||||
|
'EEEE, d. MMMM yyyy',
|
||||||
|
locale=get_language()[0:2]))
|
||||||
|
break_outer_loop = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if break_outer_loop:
|
||||||
|
break
|
||||||
|
|
||||||
|
return value
|
||||||
|
|||||||
@@ -4,6 +4,11 @@
|
|||||||
|
|
||||||
{% block form-fields-visible %}
|
{% block form-fields-visible %}
|
||||||
{{ event.render_as_html }}
|
{{ event.render_as_html }}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
{% bootstrap_field form.publish_date %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endblock form-fields-visible %}
|
{% endblock form-fields-visible %}
|
||||||
{% block form-buttons %}
|
{% block form-buttons %}
|
||||||
{% buttons %}
|
{% buttons %}
|
||||||
|
|||||||
Reference in New Issue
Block a user