BROKEN! MIGRATE! BIG UPD: not yet complete support for publish[ed|ing]_[web|facebook]

This commit is contained in:
2019-01-23 18:36:11 +01:00
parent 7f7b596b20
commit e6a5f9818a
19 changed files with 503 additions and 210 deletions

View File

@@ -14,9 +14,8 @@ logger = logging.getLogger(__name__)
class OneClickAction(models.Model):
COMMANDS = (
('EA', 'accept event'),
('EP', 'confirm publication of an event'),
('EL', 'login and go to event list')
('EVENT_LIST', 'login and go to event list (user id)'),
('EVENT_STATUS_UPDATE', 'update event status (event id,status code,user id)'),
)
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
@@ -28,7 +27,7 @@ class OneClickAction(models.Model):
done_at = models.DateTimeField(blank=True,
null=True)
command = models.CharField(max_length=2, choices=COMMANDS)
command = models.CharField(max_length=254, choices=COMMANDS)
parameters = models.TextField(blank=True)
@@ -56,79 +55,7 @@ class OneClickAction(models.Model):
return result
logger.info('OneClickAction.run(): %s(%s)', self.command, self.parameters)
if self.command == 'EA':
text = u''
try:
event_id, user_id = self.parameters.split(',')
event = Event.objects.get(id=event_id)
user = get_user_model().objects.get(id=user_id)
flag = event.flags.filter(status__code='accepted').first()
if flag:
status = 'info'
message = (ugettext(u'Veranstaltung wurde bereits von %(fullname)s freigegeben.') %
{'fullname': flag.user.get_full_name()})
text = unicode(event)
text += u'\n'
text += (ugettext(u'Freigegeben am: %(date)s') %
{'date': flag.timestamp.strftime('%d.%m.%Y %H:%M:%S')})
else:
event.confirm_status('accepted', user)
status = 'success'
message = ugettext(u'Veranstaltung freigegeben.')
text = unicode(event)
self.done = True
self.done_at = timezone.now()
self.save()
except Exception as e:
status = 'danger'
message = str(e)
logger.error('OneClickAction.run(): %s(%s): %s', self.command, self.parameters, message)
result['context'] = {
'status': status,
'message': message,
'text': text,
}
elif self.command == 'EP':
text = u''
try:
event_id, user_id = self.parameters.split(',')
event = Event.objects.get(id=event_id)
user = get_user_model().objects.get(id=user_id)
flag = event.flags.filter(status__code__in=('publishing', 'published')).first()
if flag:
status = 'info'
message = (ugettext(u'Veröffentlichung wurde bereits von %(fullname)s bestätigt.') %
{'fullname': flag.user.get_full_name()})
text = unicode(event)
text += u'\n'
text += (ugettext(u'Bestätigt am: %(date)s') %
{'date': flag.timestamp.strftime('%d.%m.%Y %H:%M:%S')})
else:
if event.planned_publication_date:
new_state = 'publishing'
else:
new_state = 'published'
event.confirm_status(new_state, user)
status = 'success'
message = ugettext(u'Veröffentlichung registriert.')
text = unicode(event)
self.done = True
self.done_at = timezone.now()
self.save()
except Exception as e:
status = 'danger'
message = str(e)
logger.error('OneClickAction.run(): %s(%s): %s', self.command, self.parameters, message)
result['context'] = {
'status': status,
'message': message,
'text': text,
}
elif self.command == 'EL':
if self.command == 'EVENT_LIST':
try:
user_id = self.parameters
user = get_user_model().objects.get(id=user_id)
@@ -142,6 +69,42 @@ class OneClickAction(models.Model):
'status': 'danger',
'message': message,
}
elif self.command == 'EVENT_STATUS_UPDATE':
try:
event_id, status_code, user_id = self.parameters.split(',')
event = Event.objects.get(id=event_id)
user = get_user_model().objects.get(id=user_id)
flag = event.flags.filter(status__code=status_code).first()
if flag:
message = (ugettext(u'Der Status wurde bereits'
u' am %(date)s'
u' von %(user)s'
u' auf \'%(status)s\' gesetzt.') % {
'status': flag.status.label,
'date': flag.timestamp.strftime('%d.%m.%Y %H:%M:%S'),
'user': flag.user.get_full_name(),
})
else:
flag = event.confirm_status(status_code, user)
message = (ugettext(u'Der Status wurde auf \'%(status)s\' gesetzt.') %
{'status': flag.status.label})
result['context'] = {
'status': 'success',
'message': message,
}
self.done = True
self.done_at = timezone.now()
self.save()
except Exception as e:
message = str(e)
logger.error('OneClickAction.run(): %s(%s): %s', self.command, self.parameters, message)
result['context'] = {
'status': 'danger',
'message': message,
}
else:
result['context'] = {
'status': 'danger',