from __future__ import unicode_literals from django.conf import settings from django.db import models from django.utils import timezone from django.utils.encoding import python_2_unicode_compatible from . import get_ghost_user, get_system_user def get_system_user_id(): return get_system_user().id @python_2_unicode_compatible class EventFlag(models.Model): event = models.ForeignKey('dav_events.Event', related_name='flags') status = models.ForeignKey('dav_events.EventStatus', on_delete=models.PROTECT, related_name='+') timestamp = models.DateTimeField(default=timezone.now) user = models.ForeignKey(settings.AUTH_USER_MODEL, default=get_system_user_id, on_delete=models.SET(get_ghost_user), related_name='+') class Meta: ordering = ['event', 'timestamp', 'status'] def __str__(self): s = '{status} - {timestamp}' if self.user: s += ' by user {user}' return s.format(status=self.status, timestamp=self.timestamp.strftime('%d.%m.%Y %H:%M:%S'), user=self.user)