Refs #39 -- New concept of "teams" (#478)

* New models

* CRUD UI

* UI for adding/removing team members

* Log display for teams

* Fix invitations, move frontend

* Drop old models (incomplete)

* Drop more old stuff

* Drop even more old stuff

* Fix tests

* Fix permission test

* flake8 fix

* Add tests fore the new code

* Rebase migrations
This commit is contained in:
Raphael Michel
2017-05-03 16:55:37 +02:00
committed by GitHub
parent 8294391ebc
commit d08a0bdb00
62 changed files with 1960 additions and 867 deletions

View File

@@ -5,7 +5,7 @@ import pytest
from django.utils.timezone import now
from pretix.base.models import (
Event, EventPermission, Item, Order, OrderPosition, Organizer, Quota, User,
Event, Item, Order, OrderPosition, Organizer, Quota, Team, User,
)
from pretix.plugins.banktransfer.models import BankImportJob, BankTransaction
@@ -18,7 +18,9 @@ def env():
date_from=now(), plugins='pretix.plugins.banktransfer'
)
user = User.objects.create_user('dummy@dummy.dummy', 'dummy')
EventPermission.objects.create(user=user, event=event)
t = Team.objects.create(organizer=event.organizer, can_view_orders=True, can_change_orders=True)
t.members.add(user)
t.limit_events.add(event)
o1 = Order.objects.create(
code='1Z3AS', event=event,
status=Order.STATUS_PENDING,

View File

@@ -7,7 +7,7 @@ from django.core.files.uploadedfile import SimpleUploadedFile
from django.utils.timezone import now
from pretix.base.models import (
Event, EventPermission, Item, Order, OrderPosition, Organizer, Quota, User,
Event, Item, Order, OrderPosition, Organizer, Quota, Team, User,
)
from pretix.plugins.banktransfer.models import BankImportJob
from pretix.plugins.banktransfer.tasks import process_banktransfers
@@ -21,7 +21,9 @@ def env():
date_from=now(), plugins='pretix.plugins.banktransfer'
)
user = User.objects.create_user('dummy@dummy.dummy', 'dummy')
EventPermission.objects.create(user=user, event=event)
t = Team.objects.create(organizer=event.organizer, can_view_orders=True, can_change_orders=True)
t.members.add(user)
t.limit_events.add(event)
o1 = Order.objects.create(
code='1Z3AS', event=event,
status=Order.STATUS_PENDING,

View File

@@ -2,7 +2,7 @@ import datetime
import pytest
from pretix.base.models import Event, EventPermission, Organizer, User
from pretix.base.models import Event, Organizer, Team, User
@pytest.fixture
@@ -17,7 +17,9 @@ def env(client):
event.settings.set('attendee_names_asked', False)
event.settings.set('payment_paypal__enabled', True)
user = User.objects.create_user('dummy@dummy.dummy', 'dummy')
EventPermission.objects.create(user=user, event=event, can_change_settings=True)
t = Team.objects.create(organizer=event.organizer, can_change_event_settings=True)
t.members.add(user)
t.limit_events.add(event)
client.force_login(user)
return client, event

View File

@@ -6,7 +6,7 @@ import pytest
from django.utils.timezone import now
from pretix.base.models import (
Event, EventPermission, Order, Organizer, RequiredAction, User,
Event, Order, Organizer, RequiredAction, Team, User,
)
@@ -18,7 +18,9 @@ def env():
organizer=o, name='Dummy', slug='dummy',
date_from=now(), live=True
)
EventPermission.objects.create(event=event, user=user)
t = Team.objects.create(organizer=event.organizer, can_view_orders=True, can_change_orders=True)
t.members.add(user)
t.limit_events.add(event)
o1 = Order.objects.create(
code='FOOBAR', event=event, email='dummy@dummy.test',
status=Order.STATUS_PAID,

View File

@@ -2,7 +2,7 @@ import datetime
import pytest
from pretix.base.models import Event, EventPermission, Organizer, User
from pretix.base.models import Event, Organizer, Team, User
@pytest.fixture
@@ -17,7 +17,9 @@ def env(client):
event.settings.set('attendee_names_asked', False)
event.settings.set('payment_stripe__enabled', True)
user = User.objects.create_user('dummy@dummy.dummy', 'dummy')
EventPermission.objects.create(user=user, event=event, can_change_settings=True)
t = Team.objects.create(organizer=event.organizer, can_change_event_settings=True)
t.members.add(user)
t.limit_events.add(event)
client.force_login(user)
return client, event

View File

@@ -6,7 +6,7 @@ import pytest
from django.utils.timezone import now
from pretix.base.models import (
Event, EventPermission, Order, Organizer, RequiredAction, User,
Event, Order, Organizer, RequiredAction, Team, User,
)
@@ -18,7 +18,9 @@ def env():
organizer=o, name='Dummy', slug='dummy',
date_from=now(), live=True
)
EventPermission.objects.create(event=event, user=user)
t = Team.objects.create(organizer=event.organizer, can_view_orders=True, can_change_orders=True)
t.members.add(user)
t.limit_events.add(event)
o1 = Order.objects.create(
code='FOOBAR', event=event, email='dummy@dummy.test',
status=Order.STATUS_PAID,

View File

@@ -5,8 +5,8 @@ import pytest
from django.utils.timezone import now
from pretix.base.models import (
Checkin, Event, EventPermission, Item, ItemVariation, Order, OrderPosition,
Organizer, User,
Checkin, Event, Item, ItemVariation, Order, OrderPosition, Organizer, Team,
User,
)
@@ -18,7 +18,11 @@ def env():
date_from=now(), plugins='pretix.plugins.banktransfer,pretix.plugins.pretixdroid'
)
user = User.objects.create_user('dummy@dummy.dummy', 'dummy')
EventPermission.objects.create(user=user, event=event)
t = Team.objects.create(organizer=o, can_change_event_settings=True, can_change_items=True)
t.members.add(user)
t.limit_events.add(event)
shirt = Item.objects.create(event=event, name='T-Shirt', default_price=12)
shirt_red = ItemVariation.objects.create(item=shirt, default_price=14, value="Red")
ItemVariation.objects.create(item=shirt, value="Blue")

View File

@@ -5,8 +5,7 @@ from django.core import mail as djmail
from django.utils.timezone import now
from pretix.base.models import (
Event, EventPermission, Item, ItemCategory, Order, OrderPosition,
Organizer, OrganizerPermission, User,
Event, Item, ItemCategory, Order, OrderPosition, Organizer, Team, User,
)
@@ -49,9 +48,9 @@ def order(item):
def logged_in_client(client, event):
"""Returns a logged client"""
user = User.objects.create_superuser('dummy@dummy.dummy', 'dummy')
OrganizerPermission.objects.create(organizer=event.organizer, user=user, can_create_events=True)
EventPermission.objects.create(event=event, user=user, can_change_items=True,
can_change_settings=True, can_change_orders=True, can_view_orders=True)
t = Team.objects.create(organizer=event.organizer, can_view_orders=True, can_change_orders=True)
t.members.add(user)
t.limit_events.add(event)
client.force_login(user)
return client