Add a kind of trashbin for registrations and participants
All checks were successful
buildbot/tox Build done.
All checks were successful
buildbot/tox Build done.
This commit is contained in:
@@ -13,12 +13,7 @@ midnight = datetime.time(00, 00, 00)
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class Participant(models.Model):
|
||||
event = models.ForeignKey('Event', related_name='participants')
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
position = models.IntegerField(verbose_name='Listennummer')
|
||||
|
||||
class AbstractParticipant(models.Model):
|
||||
personal_names = models.CharField(max_length=1024,
|
||||
verbose_name=_('Vorname(n)'))
|
||||
family_names = models.CharField(max_length=1024,
|
||||
@@ -54,17 +49,10 @@ class Participant(models.Model):
|
||||
purge_at = models.DateTimeField()
|
||||
|
||||
class Meta:
|
||||
unique_together = (('event', 'position'), )
|
||||
verbose_name = _('Teilnehmer')
|
||||
verbose_name_plural = _('Teilnehmer')
|
||||
ordering = ['event', 'position']
|
||||
abstract = True
|
||||
|
||||
def __str__(self):
|
||||
return '{eventnumber} - {position}. {name}'.format(
|
||||
eventnumber=self.event.get_number(),
|
||||
position=self.position,
|
||||
name=self.get_full_name(),
|
||||
)
|
||||
return self.get_full_name()
|
||||
|
||||
def get_full_name(self):
|
||||
return '{} {}'.format(self.personal_names, self.family_names)
|
||||
@@ -96,6 +84,12 @@ class Participant(models.Model):
|
||||
note=self.note,
|
||||
)
|
||||
|
||||
def get_data_dict(self):
|
||||
data = {}
|
||||
for field in self._meta.fields:
|
||||
data[field.name] = getattr(self, field.name)
|
||||
return data
|
||||
|
||||
def clean(self):
|
||||
if self.dav_member and not self.dav_number:
|
||||
raise ValidationError({'dav_number': _('Bei DAV Mitgliedern brauchen wir die Mitgliedsnummer.')})
|
||||
@@ -105,7 +99,7 @@ class Participant(models.Model):
|
||||
self.purge_at = self.__class__.calc_purge_at(self.event)
|
||||
|
||||
self.full_clean()
|
||||
super(Participant, self).save(**kwargs)
|
||||
super(AbstractParticipant, self).save(**kwargs)
|
||||
|
||||
@staticmethod
|
||||
def calc_purge_at(event):
|
||||
@@ -132,3 +126,23 @@ class Participant(models.Model):
|
||||
purge_date = july_nextyear
|
||||
|
||||
return timezone.make_aware(datetime.datetime.combine(purge_date, midnight))
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class Participant(AbstractParticipant):
|
||||
event = models.ForeignKey('Event', related_name='participants')
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
position = models.IntegerField(verbose_name='Listennummer')
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Teilnehmer')
|
||||
verbose_name_plural = _('Teilnehmer')
|
||||
unique_together = (('event', 'position'), )
|
||||
ordering = ['event', 'position']
|
||||
|
||||
def __str__(self):
|
||||
return '{eventnumber} - {position}. {name}'.format(
|
||||
eventnumber=self.event.get_number(),
|
||||
position=self.position,
|
||||
name=self.get_full_name(),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user