FIX: fixed several deadline issues.
This commit is contained in:
@@ -13,7 +13,6 @@ class BasicWorkflow(object):
|
||||
#
|
||||
# Status updates
|
||||
#
|
||||
|
||||
@classmethod
|
||||
def validate_status_code_update(cls, code, event, callback=None, *args, **kwargs):
|
||||
valid = True
|
||||
@@ -124,7 +123,6 @@ class BasicWorkflow(object):
|
||||
#
|
||||
# Signal handlers
|
||||
#
|
||||
|
||||
@classmethod
|
||||
def send_emails_on_event_update(cls, sender, **kwargs):
|
||||
event = kwargs.get('event')
|
||||
@@ -205,5 +203,38 @@ class BasicWorkflow(object):
|
||||
confirm_publication_action=action)
|
||||
email.send()
|
||||
|
||||
#
|
||||
# Misc logic
|
||||
#
|
||||
@classmethod
|
||||
def plan_publication(cls, first_day, deadline=None):
|
||||
app_config = apps.get_containing_app_config(__package__)
|
||||
|
||||
if deadline:
|
||||
publication_deadline = deadline - datetime.timedelta(app_config.settings.publish_before_deadline_days)
|
||||
else:
|
||||
publication_deadline = first_day - datetime.timedelta(app_config.settings.publish_before_begin_days)
|
||||
|
||||
today = datetime.date.today()
|
||||
|
||||
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):
|
||||
logger.error('workflow.plan_publication(): invalid configured issue.')
|
||||
continue
|
||||
|
||||
issue_release = datetime.date(year, issue['release'][1], issue['release'][0])
|
||||
if issue_release < today:
|
||||
continue
|
||||
|
||||
issue_deadline = datetime.date(year, issue['deadline'][1], issue['deadline'][0])
|
||||
if issue_deadline > issue_release:
|
||||
issue_deadline = datetime.date(year - 1, issue['deadline'][1], issue['deadline'][0])
|
||||
|
||||
if publication_deadline > issue_release and today <= issue_deadline:
|
||||
return issue_release, u'%s/%s' % (issue['issue'], year)
|
||||
|
||||
return None, None
|
||||
|
||||
|
||||
workflow = BasicWorkflow
|
||||
|
||||
Reference in New Issue
Block a user