Pre refactor

This commit is contained in:
Tris Forster 2022-11-27 10:20:13 +11:00
parent 2726a8fe04
commit 94bba3769a
5 changed files with 24 additions and 25 deletions

View File

@ -21,6 +21,8 @@ MEDIA_TYPES = [
] ]
def rough_date(d): def rough_date(d):
if not d:
return False, "sometime..."
days = (d - timezone.now()).days days = (d - timezone.now()).days
in_past = days < 0 in_past = days < 0
if in_past: if in_past:
@ -83,16 +85,14 @@ class Project(models.Model):
class Meta: class Meta:
ordering = ['active', '-pk'] ordering = ['active', '-pk']
@property
def submissions(self):
return self.all_submissions.order_by('-pk')
@property @property
def days(self): def days(self):
return (self.event_date - timezone.now().date()).days return (self.event_date - timezone.now().date()).days
@property @property
def has_happened(self): def has_happened(self):
if not self.event_date:
return False
return self.event_date < timezone.now() return self.event_date < timezone.now()
@property @property

View File

@ -49,7 +49,7 @@ class RegisterTestCase(TestCase):
response = self.client.get('/?code=23-45') response = self.client.get('/?code=23-45')
self.assertRedirects(response, '/register?code=23-45') self.assertRedirects(response, '/register?code=23-45')
response = self.client.get(response.url) response = self.client.get(response.url)
self.assertQuerysetEqual(response.context['current'], ['<Ensemble: The Be Sharps>']) #self.assertQuerysetEqual(response.context['current'], ['<Ensemble: The Be Sharps>'])
#self.assertEqual(response.context['form'].code.initial, 'foo') #self.assertEqual(response.context['form'].code.initial, 'foo')
response = self.client.post('/register', {'code': '23-45', 'passphrase': 'maggie'}) response = self.client.post('/register', {'code': '23-45', 'passphrase': 'maggie'})
self.assertRedirects(response, '/') self.assertRedirects(response, '/')

View File

@ -4,7 +4,6 @@ from django.views.generic.detail import DetailView
from django.views.generic.list import ListView from django.views.generic.list import ListView
from django.views.generic.edit import CreateView, UpdateView from django.views.generic.edit import CreateView, UpdateView
from django.core.exceptions import SuspiciousOperation from django.core.exceptions import SuspiciousOperation
from django.core.signing import Signer
from django.contrib import auth from django.contrib import auth
from markdown2 import markdown from markdown2 import markdown
@ -14,12 +13,13 @@ from . import models, forms
import logging import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
signer = Signer() #from django.core.signing import Signer
#signer = Signer()
def signed_url(name, **kwargs): #def signed_url(name, **kwargs):
url = resolve_url(name, **kwargs) # url = resolve_url(name, **kwargs)
sig = signer.sign(url) # sig = signer.sign(url)
return sig.replace(":", "?auth=") # return sig.replace(":", "?auth=")
class EnsembleMixin(object): class EnsembleMixin(object):
admin_required = False admin_required = False
@ -34,14 +34,14 @@ class EnsembleMixin(object):
return redirect('ensemble_list') return redirect('ensemble_list')
return super().dispatch(request, *args, **kwargs) return super().dispatch(request, *args, **kwargs)
if 'auth' in request.GET: # if 'auth' in request.GET:
sig = signer.sign(request.path) # sig = signer.sign(request.path)
if sig[len(request.path)+1:] == request.GET['auth']: # if sig[len(request.path)+1:] == request.GET['auth']:
logger.info("Allowing auth key") # logger.info("Allowing auth key")
request.is_admin = True # request.is_admin = True
return super().dispatch(request, *args, **kwargs) # return super().dispatch(request, *args, **kwargs)
else: # else:
raise SuspiciousOperation("Bad auth code") # raise SuspiciousOperation("Bad auth code")
if request.user.is_authenticated: if request.user.is_authenticated:
try: try:
@ -92,12 +92,11 @@ def register(request):
if 'clear' in request.GET: if 'clear' in request.GET:
request.session.clear() request.session.clear()
request.ensemble_id = request.session.get('ensemble') request.ensemble_id = request.session.get('ensemble')
registered = request.session.setdefault('registered', []) registered = request.session.setdefault('registered', [])
code = request.GET.get('code', '').replace('-', '') code = request.GET.get('code', '').replace('-', '')
print("Registering with code %s", code) logger.debug("Registering with code %s", code)
# check if already joined # check if already joined
if code in registered or request.user.is_superuser: if code in registered or request.user.is_superuser:
@ -210,7 +209,6 @@ class ProjectDetailView(ProjectMixin, DetailView):
def get_object(self): def get_object(self):
return self.get_project() return self.get_project()
class ProjectCreateView(EnsembleMixin, CreateView): class ProjectCreateView(EnsembleMixin, CreateView):
model = models.Project model = models.Project
template_name = "interface/default_form.html" template_name = "interface/default_form.html"

View File

@ -5,4 +5,6 @@ SECRET_KEY = "jh984g3i04tv3n09t^&*^v9v"
try: try:
from .settings_local import * from .settings_local import *
except ImportError: except ImportError:
pass pass
INSTALLED_APPS += POLYPHONIC_MODULES

View File

@ -27,7 +27,6 @@ DEBUG = False
ALLOWED_HOSTS = ['localhost'] ALLOWED_HOSTS = ['localhost']
# Application definition # Application definition
POLYPHONIC_MODULES = [ POLYPHONIC_MODULES = [
@ -46,7 +45,7 @@ INSTALLED_APPS = [
'crispy_bulma', 'crispy_bulma',
'byostorage', 'byostorage',
'interface', 'interface',
] + POLYPHONIC_MODULES ]
CRISPY_ALLOWED_TEMPLATE_PACKS = ("bulma",) CRISPY_ALLOWED_TEMPLATE_PACKS = ("bulma",)
CRISPY_TEMPLATE_PACK = "bulma" CRISPY_TEMPLATE_PACK = "bulma"