No date for perpetual projects
This commit is contained in:
parent
f49ff0fd0e
commit
dbbfa79f10
@ -33,7 +33,8 @@ class AccessTestCase(TestCase):
|
|||||||
for details in cls.PROJECTS:
|
for details in cls.PROJECTS:
|
||||||
when = details.pop('when', 0)
|
when = details.pop('when', 0)
|
||||||
ensemble = details.pop('ensemble')
|
ensemble = details.pop('ensemble')
|
||||||
obj = cls.ensembles[ensemble].projects.create(event_date=now+timedelta(days=when), **details)
|
details['event_date'] = now + timedelta(days=when) if when else None
|
||||||
|
obj = cls.ensembles[ensemble].projects.create(**details)
|
||||||
cls.projects[details['name']] = obj
|
cls.projects[details['name']] = obj
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@ -23,19 +23,20 @@ class InterfaceAccessTestCase(AccessTestCase):
|
|||||||
{'name': 'Navy Recruitment Day', 'ensemble': 'party-posse', 'when': 6},
|
{'name': 'Navy Recruitment Day', 'ensemble': 'party-posse', 'when': 6},
|
||||||
{'name': 'Barbershop Contest', 'ensemble': 'be-sharps', 'when': 28},
|
{'name': 'Barbershop Contest', 'ensemble': 'be-sharps', 'when': 28},
|
||||||
{'name': 'Open Mic Night', 'ensemble': 'bleeding-gums', 'when': 1 },
|
{'name': 'Open Mic Night', 'ensemble': 'bleeding-gums', 'when': 1 },
|
||||||
|
{'name': 'Current Repertoire', 'ensemble': 'be-sharps'},
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_bad_login(self):
|
def test_bad_login(self):
|
||||||
with self.assertRaisesMessage(self.failureException, 'Failed to login as admin'):
|
with self.assertRaisesMessage(self.failureException, 'Failed to login as admin'):
|
||||||
self.login('admin', 'admin')
|
self.login('admin', 'admin')
|
||||||
|
|
||||||
def test_admin_ensembles(self):
|
def test_superuser_ensembles(self):
|
||||||
self.login('admin', 'secret')
|
self.login('admin', 'secret')
|
||||||
response = self.client.get('/ensembles')
|
response = self.client.get('/ensembles')
|
||||||
self.assertObjectList(response, ['The Be Sharps', 'Lisa & the Bleeding Gums', 'Party Posse'])
|
self.assertObjectList(response, ['The Be Sharps', 'Lisa & the Bleeding Gums', 'Party Posse'])
|
||||||
self.assertContains(response, 'Django Admin')
|
self.assertContains(response, 'Django Admin')
|
||||||
|
|
||||||
def test_admin_ensemble_permissions(self):
|
def test_superuser_ensemble_permissions(self):
|
||||||
self.login('admin', 'secret')
|
self.login('admin', 'secret')
|
||||||
response = self.client.get('/ensembles/party-posse')
|
response = self.client.get('/ensembles/party-posse')
|
||||||
self.assertTrue(response.context['request'].is_admin)
|
self.assertTrue(response.context['request'].is_admin)
|
||||||
@ -48,10 +49,10 @@ class InterfaceAccessTestCase(AccessTestCase):
|
|||||||
'/ensembles/be-sharps/new-project': True,
|
'/ensembles/be-sharps/new-project': True,
|
||||||
})
|
})
|
||||||
|
|
||||||
def test_admin_projects(self):
|
def test_superuser_projects(self):
|
||||||
self.login('admin', 'secret')
|
self.login('admin', 'secret')
|
||||||
response = self.client.get('/projects')
|
response = self.client.get('/projects')
|
||||||
self.assertObjectList(response, ['Open Mic Night', 'Navy Recruitment Day', 'Barbershop Contest'])
|
self.assertObjectList(response, ['Current Repertoire', 'Open Mic Night', 'Navy Recruitment Day', 'Barbershop Contest'])
|
||||||
|
|
||||||
self.assertObjectList(self.client.get('/ensembles/bleeding-gums'), ['Open Mic Night'])
|
self.assertObjectList(self.client.get('/ensembles/bleeding-gums'), ['Open Mic Night'])
|
||||||
self.assertObjectList(self.client.get('/ensembles/bleeding-gums?inactive'), ['Open Mic Night', 'Baker St'])
|
self.assertObjectList(self.client.get('/ensembles/bleeding-gums?inactive'), ['Open Mic Night', 'Baker St'])
|
||||||
@ -94,7 +95,7 @@ class InterfaceAccessTestCase(AccessTestCase):
|
|||||||
def test_user_projects(self):
|
def test_user_projects(self):
|
||||||
self.login('homer', 'maggie')
|
self.login('homer', 'maggie')
|
||||||
response = self.client.get('/projects')
|
response = self.client.get('/projects')
|
||||||
self.assertObjectList(response, ['Barbershop Contest'])
|
self.assertObjectList(response, ['Current Repertoire', 'Barbershop Contest'])
|
||||||
response = self.client.get('/projects/3')
|
response = self.client.get('/projects/3')
|
||||||
self.assertTrue(response.context['request'].is_admin)
|
self.assertTrue(response.context['request'].is_admin)
|
||||||
|
|
||||||
@ -110,7 +111,7 @@ class InterfaceAccessTestCase(AccessTestCase):
|
|||||||
|
|
||||||
self.authorize(models.Project, pk=4)
|
self.authorize(models.Project, pk=4)
|
||||||
response = self.client.get('/projects')
|
response = self.client.get('/projects')
|
||||||
self.assertObjectList(response, ['Open Mic Night', 'Barbershop Contest'])
|
self.assertObjectList(response, ['Current Repertoire', 'Open Mic Night', 'Barbershop Contest'])
|
||||||
response = self.client.get('/projects/4')
|
response = self.client.get('/projects/4')
|
||||||
self.assertFalse(response.context['request'].is_admin)
|
self.assertFalse(response.context['request'].is_admin)
|
||||||
|
|
||||||
|
|||||||
@ -260,7 +260,8 @@ class ProjectListView(ProjectMixin, ListView):
|
|||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
qs = self.get_project_queryset()
|
qs = self.get_project_queryset()
|
||||||
return qs.filter(active=True, event_date__gte=timezone.now()-timezone.timedelta(7))
|
f = Q(event_date__gte=(timezone.now()-timezone.timedelta(7))) | Q(event_date=None)
|
||||||
|
return qs.filter(f, active=True)
|
||||||
|
|
||||||
class ProjectCreateView(EnsembleMixin, CreateView):
|
class ProjectCreateView(EnsembleMixin, CreateView):
|
||||||
admin_required = True
|
admin_required = True
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user