UPD: change grace period for purging registration and participant data.
This commit is contained in:
@@ -9,7 +9,6 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from dav_base.validators import DAVNumberValidator
|
||||
|
||||
midnight = datetime.time(00, 00, 00)
|
||||
one_day = datetime.timedelta(1)
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
@@ -54,7 +53,8 @@ class Participant(models.Model):
|
||||
ordering = ['event', 'position']
|
||||
|
||||
def __str__(self):
|
||||
return '{position}. {name}'.format(
|
||||
return '{eventnumber} - {position}. {name}'.format(
|
||||
eventnumber=self.event.get_number(),
|
||||
position=self.position,
|
||||
name=self.get_full_name(),
|
||||
)
|
||||
@@ -78,4 +78,18 @@ class Participant(models.Model):
|
||||
last_day = event.alt_first_day
|
||||
else:
|
||||
last_day = event.first_day
|
||||
return timezone.make_aware(datetime.datetime.combine(last_day + one_day * 7, midnight))
|
||||
|
||||
april = datetime.date(last_day.year, 4, 1)
|
||||
july = datetime.date(last_day.year, 7, 1)
|
||||
july_nextyear = datetime.date(last_day.year + 1, 7, 1)
|
||||
october = datetime.date(last_day.year, 10, 1)
|
||||
january_nextyear = datetime.date(last_day.year + 1, 1, 1)
|
||||
|
||||
if last_day < april:
|
||||
purge_date = july
|
||||
elif last_day < october:
|
||||
purge_date = january_nextyear
|
||||
else:
|
||||
purge_date = july_nextyear
|
||||
|
||||
return timezone.make_aware(datetime.datetime.combine(purge_date, midnight))
|
||||
|
||||
@@ -2,11 +2,21 @@ import logging
|
||||
from django.apps import apps
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
from django.db.models import Q
|
||||
from django.utils import timezone
|
||||
|
||||
# from .models import Participant
|
||||
|
||||
app_config = apps.get_containing_app_config(__package__)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
# def purge_participants():
|
||||
# now = timezone.now()
|
||||
# for p in Participant.objects.filter(purge_at__lte=now):
|
||||
# logger.info('Purge participant \'%s\'', p)
|
||||
# p.delete()
|
||||
|
||||
|
||||
# TODO: most of the functions here are auth stuff.
|
||||
|
||||
|
||||
@@ -65,14 +75,3 @@ def has_role(user, role):
|
||||
if group_names and user.groups.filter(name__in=group_names).count():
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def get_users_by_permission(permission_name, include_superusers=False):
|
||||
appname, codename = permission_name.split('.')
|
||||
|
||||
query = Q(user_permissions__codename=codename, user_permissions__content_type__app_label=appname)
|
||||
query |= Q(groups__permissions__codename=codename, groups__permissions__content_type__app_label=appname)
|
||||
if include_superusers:
|
||||
query |= Q(is_superuser=True)
|
||||
|
||||
return get_user_model().objects.filter(query).distinct()
|
||||
|
||||
@@ -3,6 +3,7 @@ import datetime
|
||||
import logging
|
||||
import re
|
||||
from django.apps import apps
|
||||
from django.db.models.functions import Length
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
@@ -286,8 +287,8 @@ class BasicWorkflow(object):
|
||||
qs = event.__class__.objects.filter(number__isnull=False,
|
||||
sport=event.sport,
|
||||
first_day__gte=year_begin,
|
||||
first_day__lte=year_end).order_by('number')
|
||||
last = qs.last()
|
||||
first_day__lte=year_end).annotate(number_length=Length('number'))
|
||||
last = qs.order_by('number_length', 'number').last()
|
||||
if last:
|
||||
match = re.match(r'^(?P<sport>[A-Z])(?P<count>[0-9][0-9]*)/(?P<year>[0-9][0-9]*)', last.number)
|
||||
if match:
|
||||
|
||||
Reference in New Issue
Block a user