Skip to content
Snippets Groups Projects
Commit bc4d2266 authored by smtw's avatar smtw
Browse files

Merge branch 'develop' into style-distract-free

parents 1ab35f7d bf611de9
Branches
No related tags found
No related merge requests found
......@@ -84,6 +84,7 @@ SESSION_COOKIE_DOMAIN = None
IS_API = True
IS_FRONTEND = True
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # "send" emails as console output
PLAINUI_CONFERENCE = '40ba6cda-1970-409f-81ef-efb87ef09d95' # change this to the id of your conference you want to display in frontend (matches the one from rc3_2020.json)
DATABASES = {
'default': {
......@@ -98,7 +99,8 @@ DATABASES = {
```
8. Lege die Datenbanktabellen an: `./manage.py migrate`
9. Richte einen Admin-Nutzer (für die Anwendung) ein: `./manage.py createsuperuser`
10. optional: Import von Demo-Daten: `./manage.py loaddata ./fixtures/36c3-and-dummy-rc3.json`
10. optional: Import von Demo-Daten: `./manage.py loaddata ./core/fixtures/rc3_2020.json`
11. optional: Für deinen Adminuser via [Admin-Seite](http://localhost:8000/c3admin/) einen `ConferenceMember` anlegen um den User für das Frontend freizuschalten
## Nutzung
......
from datetime import datetime
from pytz import utc
import uuid
from django.test import TestCase, override_settings
from django.urls import reverse
from core.models import Assembly, Conference, ConferenceMember, PlatformUser, AssemblyLink
# from https://github.com/Grollicus/unittest_patterns/blob/master/unittest_patterns/__init__.py
class Pattern(object):
def __req__(self, lhs):
return self.__eq__(lhs)
__hash__ = None
# from https://github.com/Grollicus/unittest_patterns/blob/master/unittest_patterns/__init__.py
class Any(Pattern):
""" Equals everything """
def __eq__(self, rhs):
return True
class ThingWithLength(Pattern):
def __init__(self, _len):
self.len = _len
def __eq__(self, rhs):
return len(rhs) == self.len
TEST_CONF_ID = uuid.uuid4()
@override_settings(PLAINUI_CONFERENCE=TEST_CONF_ID)
class AssemblyListViewTest(TestCase):
def setUp(self):
self.conf = Conference(
id=TEST_CONF_ID,
name='conf_asdf',
slug='slug1',
start=datetime(2020, 1, 1, 0, 0, 0, tzinfo=utc),
end=datetime(2020, 1, 3, 0, 0, 0, tzinfo=utc),
is_public=True,
)
self.conf.save()
self.user = PlatformUser(username='testuser', email='no@where.test', is_staff=True, is_superuser=True)
self.user.save()
self.conference_member = ConferenceMember(conference=self.conf, user=self.user)
self.conference_member.save()
self.assemblies = [Assembly(slug=a, name=a, is_virtual=True, conference_id=self.conf.id, state_assembly=Assembly.State.ACCEPTED)
for a in ('a1', 'a2', 'a3')]
for a in self.assemblies:
a.save()
self.assembly_links = [
AssemblyLink(a=self.assemblies[0], b=self.assemblies[1]),
AssemblyLink(a=self.assemblies[0], b=self.assemblies[2])
]
for al in self.assembly_links:
al.save()
self.client.force_login(self.user)
def test_slugname_related_assemblies(self):
resp = self.client.get(reverse('backoffice:assemblieslist', kwargs={'variant': 'slugname'}))
self.assertIn(b'<td>a2, a3</td>', resp.content)
......@@ -11,7 +11,7 @@ from django.utils.text import format_lazy
from django.utils.translation import gettext_lazy as _
from django.views.generic import ListView, View
from core.models.assemblies import Assembly, AssemblyMember
from core.models.assemblies import Assembly, AssemblyMember, AssemblyLink
from core.models.users import UserCommunicationChannel
from .mixins import ConferenceMixin
......@@ -182,10 +182,13 @@ class AssembliesListsView(AssembliesListMixin, View):
variant_fields = None
if variant == 'slugname':
# all assemblies with just slug + name
qs = self.get_queryset().values_list('slug', 'name')
# all assemblies with slug + name + related assemblies
qs = tuple(
(a.slug, a.name, ", ".join(link.b.name for link in AssemblyLink.objects.filter(a=a)))
for a in self.get_queryset()
)
variant_name = 'slug + name'
variant_fields = [_('Assembly__slug'), _('Assembly__name')]
variant_fields = [_('Assembly__slug'), _('Assembly__name'), _('assembly_links')]
elif variant == 'contactsmail':
# all assembly contacts' email addresses with duplicates removed
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment