Skip to content

Commit

Permalink
Merge pull request #10 from SDeVuyst/v2
Browse files Browse the repository at this point in the history
V2
  • Loading branch information
SDeVuyst authored Feb 23, 2025
2 parents d0b911e + c3f9031 commit 48c8010
Show file tree
Hide file tree
Showing 33 changed files with 1,094 additions and 65 deletions.
55 changes: 33 additions & 22 deletions chudartz/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,11 +222,13 @@
},

"SIDEBAR": {
"show_search": False,
"show_search": True,
"show_all_applications": True,
"navigation": [

{
"title": "Administratie",
"collapsible": True,
"items": [
{
"title": _("Financiën"),
Expand All @@ -238,11 +240,27 @@
"icon": "query_stats",
"link": "https://analytics.google.com/",
},
{
"title": _("Sponsors"),
"icon": "checkbook",
"link": "/admin/darts/sponsor/",
},
{
"title": _("Nieuws"),
"icon": "article",
"link": "/admin/darts/nieuws/"
},
{
"title": _("Navigatiebalk"),
"icon": "dropdown",
"link": "/admin/darts/toernooiheadergroep/",
},
]
},

{
"title": "Darts",
"title": "Darts Toernooien",
"collapsible": True,
"separator": True,
"items": [
{
Expand All @@ -266,6 +284,8 @@
},

{
"title": "Dartschool",
"collapsible": True,
"separator": True,
"items": [
{
Expand All @@ -281,36 +301,27 @@
},

{
"title": _("Beurtkaarten"),
"icon": "confirmation_number",
"link": "/admin/darts/beurtkaart/",
"title": _("Trainers"),
"icon": "sports",
"link": "/admin/darts/trainer/",
},
]
},

{
"separator": True,
"items": [
{
"title": _("Sponsors"),
"icon": "checkbook",
"link": "/admin/darts/sponsor/",
},
{
"title": _("Nieuws"),
"icon": "article",
"link": "/admin/darts/nieuws/"
"title": _("Locaties"),
"icon": "location_away",
"link": "/admin/darts/locatie/",
},

{
"title": _("Navigatiebalk"),
"icon": "dropdown",
"link": "/admin/darts/toernooiheadergroep/",
"title": _("Beurtkaarten"),
"icon": "confirmation_number",
"link": "/admin/darts/beurtkaart/",
},

]
},

{
"collapsible": True,
"title": "Collectibles",
"separator": True,
"items": [
Expand Down
142 changes: 139 additions & 3 deletions darts/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class ToernooiHeaderGroepAdmin(SimpleHistoryAdmin, ModelAdmin):

@admin.register(Toernooi)
class ToernooiAdmin(SimpleHistoryAdmin, ModelAdmin):
list_display = ('titel', 'participants_count', 'remaining_tickets', 'is_sold_out')
list_display = ('display_header', 'participants_count', 'remaining_tickets', 'is_sold_out')
ordering = ('id',)
exclude = ('tickets',)

Expand All @@ -56,6 +56,21 @@ class ToernooiAdmin(SimpleHistoryAdmin, ModelAdmin):

actions_detail = ["generate_qr_code",]

@display(description=_("Titel"), header=True)
def display_header(self, instance: Toernooi):
return [
instance.titel,
None,
instance.titel,
{
"path": instance.afbeelding.url,
"height": 24,
"width": 24,
"borderless": True,
"squared": True,
},
]

@display(
description=_("Uitverkocht"),
label={
Expand Down Expand Up @@ -200,11 +215,59 @@ class SponsorAdmin(SimpleHistoryAdmin, ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
export_form_class = SelectableFieldsExportForm

list_display = ('naam', 'toon_op_index', 'toon_in_footer', 'toon_op_sponsors_pagina')
list_display = ('display_header', 'toon_op_voorpagina', 'toon_in_footer_display', 'toon_op_sponsor_pg_display')
ordering = ('id',)

search_fields = ('naam', 'info', )

@display(description=_("Naam"), header=True)
def display_header(self, instance: Sponsor):
return [
instance.naam,
None,
instance.naam,
{
"path": instance.logo.url,
"height": 24,
"width": 24,
"borderless": True,
"squared": True,
},
]

@display(
description=_("Toon op voorpagina"),
label={
True: "success",
False: "danger"
}
)
def toon_op_voorpagina(self, obj: Sponsor):
label = _("Ja") if obj.toon_op_index else _("Nee")
return obj.toon_op_index, label

@display(
description=_("Toon in footer"),
label={
True: "success",
False: "danger"
}
)
def toon_in_footer_display(self, obj: Sponsor):
label = _("Ja") if obj.toon_in_footer else _("Nee")
return obj.toon_in_footer, label

@display(
description=_("Toon op sponsors pagina"),
label={
True: "success",
False: "danger"
}
)
def toon_op_sponsor_pg_display(self, obj: Sponsor):
label = _("Ja") if obj.toon_op_sponsors_pagina else _("Nee")
return obj.toon_op_sponsors_pagina, label


@admin.register(Leerling)
class LeerlingAdmin(SimpleHistoryAdmin, ModelAdmin, ImportExportModelAdmin):
Expand Down Expand Up @@ -241,6 +304,7 @@ class BeurtkaartAdmin(SimpleHistoryAdmin, ModelAdmin):

search_fields = ('naam', 'aantal_beurten', 'prijs')


@admin.register(Nieuws)
class NieuwsAdmin(SimpleHistoryAdmin, ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
Expand All @@ -259,4 +323,76 @@ class NieuwsAdmin(SimpleHistoryAdmin, ModelAdmin, ImportExportModelAdmin):
)
def is_active(self, obj):
label = _("Ja") if obj.active else _("Nee")
return obj.active, label
return obj.active, label


@admin.register(Trainer)
class TrainerAdmin(SimpleHistoryAdmin, ModelAdmin):

list_display = ('display_header', 'titel', 'is_active')
search_fields = ('naam', 'titel')

@display(description=_("Trainer"), header=True)
def display_header(self, instance: Trainer):
return [
instance.naam,
None,
instance.naam,
{
"path": instance.afbeelding.url,
"height": 24,
"width": 24,
"borderless": True,
# "squared": True,
},
]

@display(
description=_("Actief"),
label={
True: "success",
False: "danger"
}
)
def is_active(self, obj):
label = _("Ja") if obj.active else _("Nee")
return obj.active, label


@admin.register(Locatie)
class LocatieAdmin(SimpleHistoryAdmin, ModelAdmin):

list_display = ('display_header', 'is_active')
search_fields = ('titel',)

@display(description=_("Titel"), header=True)
def display_header(self, instance: Locatie):
return [
instance.titel,
None,
instance.titel,
{
"path": instance.afbeelding.url,
"height": 24,
"width": 24,
"borderless": True,
"squared": True,
},
]

@display(
description=_("Actief"),
label={
True: "success",
False: "danger"
}
)
def is_active(self, obj):
label = _("Ja") if obj.active else _("Nee")
return obj.active, label

def get_readonly_fields(self, request, obj: Locatie=None):
# Make 'slug' field read-only for non-superusers
if not request.user.is_superuser:
return ('slug',) + self.readonly_fields
return self.readonly_fields # Superusers can edit all fields
54 changes: 54 additions & 0 deletions darts/migrations/0032_trainer_historicaltrainer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Generated by Django 5.1.4 on 2025-02-07 08:07

import ckeditor.fields
import django.db.models.deletion
import simple_history.models
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('darts', '0031_alter_historicalpayment_status_alter_payment_status'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.CreateModel(
name='Trainer',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('naam', models.CharField(max_length=50, verbose_name='Naam')),
('titel', ckeditor.fields.RichTextField(verbose_name='Titel')),
('active', models.BooleanField(verbose_name='Actief')),
('afbeelding', models.ImageField(upload_to='trainers', verbose_name='Afbeelding')),
],
options={
'verbose_name': 'Trainer',
'verbose_name_plural': 'Trainers',
},
),
migrations.CreateModel(
name='HistoricalTrainer',
fields=[
('id', models.BigIntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')),
('naam', models.CharField(max_length=50, verbose_name='Naam')),
('titel', ckeditor.fields.RichTextField(verbose_name='Titel')),
('active', models.BooleanField(verbose_name='Actief')),
('afbeelding', models.TextField(max_length=100, verbose_name='Afbeelding')),
('history_id', models.AutoField(primary_key=True, serialize=False)),
('history_date', models.DateTimeField(db_index=True)),
('history_change_reason', models.CharField(max_length=100, null=True)),
('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
],
options={
'verbose_name': 'History',
'verbose_name_plural': 'historical Trainers',
'ordering': ('-history_date', '-history_id'),
'get_latest_by': ('history_date', 'history_id'),
},
bases=(simple_history.models.HistoricalChanges, models.Model),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 5.1.4 on 2025-02-07 08:10

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('darts', '0032_trainer_historicaltrainer'),
]

operations = [
migrations.AlterField(
model_name='historicaltrainer',
name='titel',
field=models.CharField(max_length=50, verbose_name='Titel'),
),
migrations.AlterField(
model_name='trainer',
name='titel',
field=models.CharField(max_length=50, verbose_name='Titel'),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 5.1.4 on 2025-02-07 14:45

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('darts', '0033_alter_historicaltrainer_titel_alter_trainer_titel'),
]

operations = [
migrations.AddField(
model_name='historicaltrainer',
name='extra_info',
field=models.CharField(default='Lorem Ipsum', max_length=256, verbose_name='Extra Info'),
preserve_default=False,
),
migrations.AddField(
model_name='trainer',
name='extra_info',
field=models.CharField(default='Lorem Ipsum', max_length=256, verbose_name='Extra Info'),
preserve_default=False,
),
]
Loading

0 comments on commit 48c8010

Please sign in to comment.