diff --git a/clubhaus/homepage/admin.py b/clubhaus/homepage/admin.py index 8a1a73f..e0b01a3 100644 --- a/clubhaus/homepage/admin.py +++ b/clubhaus/homepage/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin # Register your models here. -from .models import Tobacco, TobaccoCategory, ClubhausEvent, EventDate, EventDateVotes, VotingUser +from .models import Tobacco, TobaccoCategory, ClubhausEvent, EventDate, EventDateVote, VotingUser, Setting @admin.register(Tobacco) @@ -29,7 +29,7 @@ class VotingUserAdmin(admin.ModelAdmin): ordering = ("id",) -@admin.register(EventDateVotes) +@admin.register(EventDateVote) class EventDateVotesAdmin(admin.ModelAdmin): list_display = ("id", "voter", "date", "available") list_editable = ('available',) @@ -49,3 +49,10 @@ class ClubhausEventAdmin(admin.ModelAdmin): inlines = [ EventDateInline ] + + +@admin.register(Setting) +class SettingAdmin(admin.ModelAdmin): + list_display = ("name", "active") + ordering = ("active", "id") + list_editable = ("active",) diff --git a/clubhaus/homepage/migrations/0020_rename_eventdatevotes_eventdatevote.py b/clubhaus/homepage/migrations/0020_rename_eventdatevotes_eventdatevote.py new file mode 100644 index 0000000..9b258de --- /dev/null +++ b/clubhaus/homepage/migrations/0020_rename_eventdatevotes_eventdatevote.py @@ -0,0 +1,17 @@ +# Generated by Django 4.0.5 on 2022-09-03 15:21 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('homepage', '0019_clubhausevent_voting_locked_alter_tobacco_in_stock'), + ] + + operations = [ + migrations.RenameModel( + old_name='EventDateVotes', + new_name='EventDateVote', + ), + ] diff --git a/clubhaus/homepage/migrations/0021_setting.py b/clubhaus/homepage/migrations/0021_setting.py new file mode 100644 index 0000000..8866338 --- /dev/null +++ b/clubhaus/homepage/migrations/0021_setting.py @@ -0,0 +1,22 @@ +# Generated by Django 4.0.5 on 2022-09-03 15:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('homepage', '0020_rename_eventdatevotes_eventdatevote'), + ] + + operations = [ + migrations.CreateModel( + name='Setting', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('active', models.BooleanField(default=True)), + ('intro_text', models.TextField(blank=True)), + ('intro_text_classes', models.CharField(blank=True, default='text-center fs-5', help_text='Extra CSS classes for the div for the intro text like text size', max_length=500)), + ], + ), + ] diff --git a/clubhaus/homepage/migrations/0022_setting_name.py b/clubhaus/homepage/migrations/0022_setting_name.py new file mode 100644 index 0000000..b70f450 --- /dev/null +++ b/clubhaus/homepage/migrations/0022_setting_name.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.5 on 2022-09-03 15:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('homepage', '0021_setting'), + ] + + operations = [ + migrations.AddField( + model_name='setting', + name='name', + field=models.CharField(default='Default Settings', max_length=200), + ), + ] diff --git a/clubhaus/homepage/migrations/0023_setting_unique_name.py b/clubhaus/homepage/migrations/0023_setting_unique_name.py new file mode 100644 index 0000000..22547cc --- /dev/null +++ b/clubhaus/homepage/migrations/0023_setting_unique_name.py @@ -0,0 +1,17 @@ +# Generated by Django 4.0.5 on 2022-09-03 15:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('homepage', '0022_setting_name'), + ] + + operations = [ + migrations.AddConstraint( + model_name='setting', + constraint=models.UniqueConstraint(fields=('name',), name='unique_name'), + ), + ] diff --git a/clubhaus/homepage/models.py b/clubhaus/homepage/models.py index 4d652ef..ad44196 100644 --- a/clubhaus/homepage/models.py +++ b/clubhaus/homepage/models.py @@ -43,7 +43,7 @@ class ClubhausEvent(models.Model): return f"{self.name}" -class EventDateVotes(models.Model): +class EventDateVote(models.Model): voter = models.ForeignKey(to="VotingUser", on_delete=models.CASCADE) date = models.ForeignKey(to="EventDate", to_field="date", on_delete=models.CASCADE) available = models.BooleanField() @@ -68,3 +68,19 @@ class VotingUser(models.Model): def __str__(self): return f"{self.name} ({self.id})" + + +class Setting(models.Model): + active = models.BooleanField(default=True) + name = models.CharField(max_length=200, default="Default Settings", blank=False) + intro_text = models.TextField(blank=True) + intro_text_classes = models.CharField(max_length=500, default="text-center fs-5", blank=True, + help_text="Extra CSS classes for the div for the intro text like text size") + + class Meta: + constraints = [ + models.UniqueConstraint(fields=("name",), name="unique_name") + ] + + def __str__(self): + return f"{self.id} - {self.name}" diff --git a/clubhaus/homepage/static/homepage/assets/plyr/plyr.3.7.2.svg b/clubhaus/homepage/static/homepage/assets/plyr/plyr.3.7.2.svg new file mode 100644 index 0000000..62ab257 --- /dev/null +++ b/clubhaus/homepage/static/homepage/assets/plyr/plyr.3.7.2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/clubhaus/homepage/templates/homepage/base.html b/clubhaus/homepage/templates/homepage/base.html index ede8073..10aa43f 100644 --- a/clubhaus/homepage/templates/homepage/base.html +++ b/clubhaus/homepage/templates/homepage/base.html @@ -39,8 +39,6 @@