From 02fd0a8e06c36dbedc03dcbb03a57ddaacde6436 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Thu, 27 Oct 2016 08:18:29 +0200 Subject: [PATCH] Add GlobalSetting model --- .../base/migrations/0043_globalsetting.py | 22 ++++++++++++ src/pretix/base/models/event.py | 11 +----- src/pretix/base/models/organizer.py | 11 +----- src/pretix/base/models/settings.py | 34 +++++++++++++++++++ 4 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 src/pretix/base/migrations/0043_globalsetting.py create mode 100644 src/pretix/base/models/settings.py diff --git a/src/pretix/base/migrations/0043_globalsetting.py b/src/pretix/base/migrations/0043_globalsetting.py new file mode 100644 index 0000000000..bd22b99263 --- /dev/null +++ b/src/pretix/base/migrations/0043_globalsetting.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.2 on 2016-10-27 06:15 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0042_order_expires'), + ] + + operations = [ + migrations.CreateModel( + name='GlobalSetting', + fields=[ + ('key', models.CharField(max_length=255, primary_key=True, serialize=False)), + ('value', models.TextField()), + ], + ), + ] diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index db2f995935..85873731f7 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -17,6 +17,7 @@ from pretix.base.settings import SettingsProxy from .auth import User from .organizer import Organizer +from .settings import EventSetting class Event(LoggedModel): @@ -263,16 +264,6 @@ class EventPermission(models.Model): } -class EventSetting(models.Model): - """ - An event settings is a key-value setting which can be set for a - specific event - """ - object = models.ForeignKey(Event, related_name='setting_objects', on_delete=models.CASCADE) - key = models.CharField(max_length=255) - value = models.TextField() - - class EventLock(models.Model): event = models.CharField(max_length=36, primary_key=True) date = models.DateTimeField(auto_now=True) diff --git a/src/pretix/base/models/organizer.py b/src/pretix/base/models/organizer.py index 4842407be1..b2330e61c2 100644 --- a/src/pretix/base/models/organizer.py +++ b/src/pretix/base/models/organizer.py @@ -7,6 +7,7 @@ from pretix.base.models.base import LoggedModel from pretix.base.settings import SettingsProxy from .auth import User +from .settings import OrganizerSetting class Organizer(LoggedModel): @@ -101,13 +102,3 @@ class OrganizerPermission(models.Model): 'name': str(self.user), 'object': str(self.organizer), } - - -class OrganizerSetting(models.Model): - """ - An event option is a key-value setting which can be set for an - organizer. It will be inherited by the events of this organizer - """ - object = models.ForeignKey(Organizer, related_name='setting_objects', on_delete=models.CASCADE) - key = models.CharField(max_length=255) - value = models.TextField() diff --git a/src/pretix/base/models/settings.py b/src/pretix/base/models/settings.py new file mode 100644 index 0000000000..dbddabce17 --- /dev/null +++ b/src/pretix/base/models/settings.py @@ -0,0 +1,34 @@ +from django.db import models + + +class GlobalSetting(models.Model): + """ + A global setting is a key-value setting which can be set for a + pretix instance. It will be inherited by all events and organizers. + It is filled via the register_global_settings signal. + """ + key = models.CharField(max_length=255, primary_key=True) + value = models.TextField() + + def __init__(self, *args, object=None, **kwargs): + super().__init__(*args, **kwargs) + + +class OrganizerSetting(models.Model): + """ + An organizer setting is a key-value setting which can be set for an + organizer. It will be inherited by the events of this organizer + """ + object = models.ForeignKey('Organizer', related_name='setting_objects', on_delete=models.CASCADE) + key = models.CharField(max_length=255) + value = models.TextField() + + +class EventSetting(models.Model): + """ + An event setting is a key-value setting which can be set for a + specific event + """ + object = models.ForeignKey('Event', related_name='setting_objects', on_delete=models.CASCADE) + key = models.CharField(max_length=255) + value = models.TextField()