dynamic buttons
parent
121722ee3f
commit
de9a718bb0
|
|
@ -20,43 +20,43 @@ class BandAdmin(TabbedModelAdmin):
|
|||
|
||||
tab_homepage = (
|
||||
(None, {
|
||||
'fields': ('homepage', 'homepage_buttons')
|
||||
'fields': ('homepage_rename', 'homepage', 'homepage_buttons')
|
||||
}),
|
||||
)
|
||||
|
||||
tab_schedule_and_results = (
|
||||
(None, {
|
||||
'fields': ('schedule_and_results', 'schedule_and_results_enabled', 'schedule_and_results_buttons')
|
||||
'fields': ('schedule_and_results_rename', 'schedule_and_results', 'schedule_and_results_enabled', 'schedule_and_results_buttons')
|
||||
}),
|
||||
)
|
||||
|
||||
tab_registration = (
|
||||
(None, {
|
||||
'fields': ('registration', 'registration_enabled', 'registration_buttons')
|
||||
'fields': ('registration_rename', 'registration', 'registration_enabled', 'registration_buttons')
|
||||
}),
|
||||
)
|
||||
|
||||
tab_rules = (
|
||||
(None, {
|
||||
'fields': ('rules', 'rules_enabled', 'rules_buttons')
|
||||
'fields': ('rules_rename', 'rules', 'rules_enabled', 'rules_buttons')
|
||||
}),
|
||||
)
|
||||
|
||||
tab_fee_and_prizes = (
|
||||
(None, {
|
||||
'fields': ('fee_and_prizes', 'fee_and_prizes_enabled', 'fee_and_prizes_buttons')
|
||||
'fields': ('fee_and_prizes_rename', 'fee_and_prizes', 'fee_and_prizes_enabled', 'fee_and_prizes_buttons')
|
||||
}),
|
||||
)
|
||||
|
||||
tab_accomodation = (
|
||||
(None, {
|
||||
'fields': ('accomodation', 'accomodation_enabled', 'accomodation_buttons')
|
||||
'fields': ('accomodation_rename', 'accomodation', 'accomodation_enabled', 'accomodation_buttons')
|
||||
}),
|
||||
)
|
||||
|
||||
tab_contact = (
|
||||
(None, {
|
||||
'fields': ('contact', 'contact_enabled', 'contact_buttons')
|
||||
'fields': ('contact_rename', 'contact', 'contact_enabled', 'contact_buttons')
|
||||
}),
|
||||
)
|
||||
|
||||
|
|
@ -70,3 +70,20 @@ class BandAdmin(TabbedModelAdmin):
|
|||
('Noclegi', tab_accomodation),
|
||||
('Kontakt', tab_contact),
|
||||
]
|
||||
|
||||
def get_tabs(self, request, obj=None):
|
||||
tabs = self.tabs
|
||||
if obj is not None:
|
||||
|
||||
tabs = [
|
||||
('Ogólne ustawienia', self.tab_general),
|
||||
(obj.homepage_rename, self.tab_homepage),
|
||||
(obj.schedule_and_results_rename, self.tab_schedule_and_results),
|
||||
(obj.registration_rename, self.tab_registration),
|
||||
(obj.rules_rename, self.tab_rules),
|
||||
(obj.fee_and_prizes_rename, self.tab_fee_and_prizes),
|
||||
(obj.accomodation_rename, self.tab_accomodation),
|
||||
(obj.contact_rename, self.tab_contact),
|
||||
]
|
||||
self.tabs = tabs
|
||||
return super(BandAdmin, self).get_tabs(request, obj)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,83 @@
|
|||
# Generated by Django 4.1.7 on 2023-05-13 17:48
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('tournamentpages', '0003_tournamentpage_homepage_buttons'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='tournamentpage',
|
||||
name='accomodation_rename',
|
||||
field=models.CharField(default='Noclegi', max_length=250, verbose_name='Nazwa przycisku'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tournamentpage',
|
||||
name='contact_rename',
|
||||
field=models.CharField(default='Kontakt', max_length=250, verbose_name='Nazwa przycisku'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tournamentpage',
|
||||
name='fee_and_prizes_rename',
|
||||
field=models.CharField(default='Wpisowe i nagrody', max_length=250, verbose_name='Nazwa przycisku'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tournamentpage',
|
||||
name='homepage_rename',
|
||||
field=models.CharField(default='Strona główna', max_length=250, verbose_name='Nazwa przycisku'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tournamentpage',
|
||||
name='registration_rename',
|
||||
field=models.CharField(default='Rejestracja', max_length=250, verbose_name='Nazwa przycisku'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tournamentpage',
|
||||
name='rules_rename',
|
||||
field=models.CharField(default='Regulamin', max_length=250, verbose_name='Nazwa przycisku'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tournamentpage',
|
||||
name='schedule_and_results_rename',
|
||||
field=models.CharField(default='Harmonogram i wyniki', max_length=250, verbose_name='Nazwa przycisku'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tournamentpage',
|
||||
name='accomodation_buttons',
|
||||
field=models.TextField(blank=True, default='', help_text='Tutaj można wpisać dowolną ilość przycisków w następującym formacie:<br /> <code><br /> tekst1 -> link<br /> teskt2 | link<br /> ...<br /> </code><br /> Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie<br /> Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie<br /> Na przykład:<br /> <code><br /> pzbs -> https://pzbs.pl<br /> fotogaleria | https://galeria.podlaskizbs.pl<br /> cezar -> https://www.msc.com.pl/cezar<br /> </code><br /> PZBS i Cezar zostaną otwarte w nowej karcie<br /> <b>UWAGA !!</b><br /> Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:<br /> <code><br /> -> link do wyników<br /> fotogaleria -> link do fotogalerii<br /> </code><br /> Wtedy pokaże się <b>tylko przycisk fotogalerii</b><br /> ', verbose_name='Przyciski'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tournamentpage',
|
||||
name='contact_buttons',
|
||||
field=models.TextField(blank=True, default='', help_text='Tutaj można wpisać dowolną ilość przycisków w następującym formacie:<br /> <code><br /> tekst1 -> link<br /> teskt2 | link<br /> ...<br /> </code><br /> Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie<br /> Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie<br /> Na przykład:<br /> <code><br /> pzbs -> https://pzbs.pl<br /> fotogaleria | https://galeria.podlaskizbs.pl<br /> cezar -> https://www.msc.com.pl/cezar<br /> </code><br /> PZBS i Cezar zostaną otwarte w nowej karcie<br /> <b>UWAGA !!</b><br /> Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:<br /> <code><br /> -> link do wyników<br /> fotogaleria -> link do fotogalerii<br /> </code><br /> Wtedy pokaże się <b>tylko przycisk fotogalerii</b><br /> ', verbose_name='Przyciski'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tournamentpage',
|
||||
name='fee_and_prizes_buttons',
|
||||
field=models.TextField(blank=True, default='', help_text='Tutaj można wpisać dowolną ilość przycisków w następującym formacie:<br /> <code><br /> tekst1 -> link<br /> teskt2 | link<br /> ...<br /> </code><br /> Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie<br /> Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie<br /> Na przykład:<br /> <code><br /> pzbs -> https://pzbs.pl<br /> fotogaleria | https://galeria.podlaskizbs.pl<br /> cezar -> https://www.msc.com.pl/cezar<br /> </code><br /> PZBS i Cezar zostaną otwarte w nowej karcie<br /> <b>UWAGA !!</b><br /> Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:<br /> <code><br /> -> link do wyników<br /> fotogaleria -> link do fotogalerii<br /> </code><br /> Wtedy pokaże się <b>tylko przycisk fotogalerii</b><br /> ', verbose_name='Przyciski'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tournamentpage',
|
||||
name='homepage_buttons',
|
||||
field=models.TextField(blank=True, default='', help_text='Tutaj można wpisać dowolną ilość przycisków w następującym formacie:<br /> <code><br /> tekst1 -> link<br /> teskt2 | link<br /> ...<br /> </code><br /> Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie<br /> Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie<br /> Na przykład:<br /> <code><br /> pzbs -> https://pzbs.pl<br /> fotogaleria | https://galeria.podlaskizbs.pl<br /> cezar -> https://www.msc.com.pl/cezar<br /> </code><br /> PZBS i Cezar zostaną otwarte w nowej karcie<br /> <b>UWAGA !!</b><br /> Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:<br /> <code><br /> -> link do wyników<br /> fotogaleria -> link do fotogalerii<br /> </code><br /> Wtedy pokaże się <b>tylko przycisk fotogalerii</b><br /> ', verbose_name='Przyciski'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tournamentpage',
|
||||
name='registration_buttons',
|
||||
field=models.TextField(blank=True, default='', help_text='Tutaj można wpisać dowolną ilość przycisków w następującym formacie:<br /> <code><br /> tekst1 -> link<br /> teskt2 | link<br /> ...<br /> </code><br /> Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie<br /> Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie<br /> Na przykład:<br /> <code><br /> pzbs -> https://pzbs.pl<br /> fotogaleria | https://galeria.podlaskizbs.pl<br /> cezar -> https://www.msc.com.pl/cezar<br /> </code><br /> PZBS i Cezar zostaną otwarte w nowej karcie<br /> <b>UWAGA !!</b><br /> Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:<br /> <code><br /> -> link do wyników<br /> fotogaleria -> link do fotogalerii<br /> </code><br /> Wtedy pokaże się <b>tylko przycisk fotogalerii</b><br /> ', verbose_name='Przyciski'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tournamentpage',
|
||||
name='rules_buttons',
|
||||
field=models.TextField(blank=True, default='', help_text='Tutaj można wpisać dowolną ilość przycisków w następującym formacie:<br /> <code><br /> tekst1 -> link<br /> teskt2 | link<br /> ...<br /> </code><br /> Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie<br /> Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie<br /> Na przykład:<br /> <code><br /> pzbs -> https://pzbs.pl<br /> fotogaleria | https://galeria.podlaskizbs.pl<br /> cezar -> https://www.msc.com.pl/cezar<br /> </code><br /> PZBS i Cezar zostaną otwarte w nowej karcie<br /> <b>UWAGA !!</b><br /> Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:<br /> <code><br /> -> link do wyników<br /> fotogaleria -> link do fotogalerii<br /> </code><br /> Wtedy pokaże się <b>tylko przycisk fotogalerii</b><br /> ', verbose_name='Przyciski'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tournamentpage',
|
||||
name='schedule_and_results_buttons',
|
||||
field=models.TextField(blank=True, default='', help_text='Tutaj można wpisać dowolną ilość przycisków w następującym formacie:<br /> <code><br /> tekst1 -> link<br /> teskt2 | link<br /> ...<br /> </code><br /> Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie<br /> Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie<br /> Na przykład:<br /> <code><br /> pzbs -> https://pzbs.pl<br /> fotogaleria | https://galeria.podlaskizbs.pl<br /> cezar -> https://www.msc.com.pl/cezar<br /> </code><br /> PZBS i Cezar zostaną otwarte w nowej karcie<br /> <b>UWAGA !!</b><br /> Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:<br /> <code><br /> -> link do wyników<br /> fotogaleria -> link do fotogalerii<br /> </code><br /> Wtedy pokaże się <b>tylko przycisk fotogalerii</b><br /> ', verbose_name='Przyciski'),
|
||||
),
|
||||
]
|
||||
|
|
@ -2,35 +2,11 @@ from django.db import models
|
|||
from django.urls.base import reverse_lazy
|
||||
from django.utils.safestring import mark_safe
|
||||
from tinymce.models import HTMLField
|
||||
from db.help import buttons_help_text
|
||||
|
||||
|
||||
# Create your models here.
|
||||
|
||||
buttons_help_text = """Tutaj można wpisać dowolną ilość przycisków w następującym formacie:
|
||||
<code>
|
||||
tekst1 -> link
|
||||
tekst2 | link
|
||||
...
|
||||
</code>
|
||||
Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie
|
||||
Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie
|
||||
Na przykład:
|
||||
<code>
|
||||
pzbs -> https://pzbs.pl
|
||||
fotogaleria | https://galeria.podlaskizbs.pl
|
||||
cezar -> https://www.msc.com.pl/cezar
|
||||
</code>
|
||||
PZBS i Cezar zostaną otwarte w nowej karcie
|
||||
<b>UWAGA !!</b>
|
||||
Klikając na zdjęcie zawsze zostaniemy przekierowani na pierwszy podany link
|
||||
Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:
|
||||
<code>
|
||||
-> link do wyników
|
||||
fotogaleria -> link do fotogalerii
|
||||
</code>
|
||||
Wtedy pokaże się <b>tylko przycisk fotogalerii</b>, a zdjęcie przekieruje nas do wyników!
|
||||
""".replace('\n', '<br />')
|
||||
|
||||
|
||||
class TournamentPage(models.Model):
|
||||
name = models.CharField('Nazwa', max_length=250)
|
||||
|
|
@ -39,10 +15,12 @@ class TournamentPage(models.Model):
|
|||
header = HTMLField('Nagłówek', default='', blank=True)
|
||||
footer = HTMLField('Stopka', default='', blank=True)
|
||||
|
||||
homepage_rename = models.CharField('Nazwa przycisku', default='Strona główna', max_length=250)
|
||||
homepage = HTMLField('Strona główna', default='', blank=True)
|
||||
homepage_buttons = models.TextField(
|
||||
'Przyciski', default='', blank=True, help_text=buttons_help_text)
|
||||
|
||||
schedule_and_results_rename = models.CharField('Nazwa przycisku', default='Harmonogram i wyniki', max_length=250)
|
||||
schedule_and_results = HTMLField(
|
||||
'Harmonogram i wyniki', default='', blank=True)
|
||||
schedule_and_results_enabled = models.BooleanField(
|
||||
|
|
@ -50,29 +28,34 @@ class TournamentPage(models.Model):
|
|||
schedule_and_results_buttons = models.TextField(
|
||||
'Przyciski', default='', blank=True, help_text=buttons_help_text)
|
||||
|
||||
registration_rename = models.CharField('Nazwa przycisku', default='Rejestracja', max_length=250)
|
||||
registration = HTMLField('Rejestracja', default='', blank=True)
|
||||
registration_enabled = models.BooleanField(
|
||||
'Strona włączona', default=False)
|
||||
registration_buttons = models.TextField(
|
||||
'Przyciski', default='', blank=True, help_text=buttons_help_text)
|
||||
|
||||
rules_rename = models.CharField('Nazwa przycisku', default='Regulamin', max_length=250)
|
||||
rules = HTMLField('Regulamin', default='', blank=True)
|
||||
rules_enabled = models.BooleanField('Strona włączona', default=False)
|
||||
rules_buttons = models.TextField(
|
||||
'Przyciski', default='', blank=True, help_text=buttons_help_text)
|
||||
|
||||
fee_and_prizes_rename = models.CharField('Nazwa przycisku', default='Wpisowe i nagrody', max_length=250)
|
||||
fee_and_prizes = HTMLField('Wpisowe i nagrody', default='', blank=True)
|
||||
fee_and_prizes_enabled = models.BooleanField(
|
||||
'Strona włączona', default=False)
|
||||
fee_and_prizes_buttons = models.TextField(
|
||||
'Przyciski', default='', blank=True, help_text=buttons_help_text)
|
||||
|
||||
accomodation_rename = models.CharField('Nazwa przycisku', default='Noclegi', max_length=250)
|
||||
accomodation = HTMLField('Noclegi', default='', blank=True)
|
||||
accomodation_enabled = models.BooleanField(
|
||||
'Strona włączona', default=False)
|
||||
accomodation_buttons = models.TextField(
|
||||
'Przyciski', default='', blank=True, help_text=buttons_help_text)
|
||||
|
||||
contact_rename = models.CharField('Nazwa przycisku', default='Kontakt', max_length=250)
|
||||
contact = HTMLField('Kontakt', default='', blank=True)
|
||||
contact_enabled = models.BooleanField('Strona włączona', default=False)
|
||||
contact_buttons = models.TextField(
|
||||
|
|
|
|||
|
|
@ -34,36 +34,18 @@
|
|||
<header>{{ t.header | safe}}</header>
|
||||
<nav class="p-2 bg-green-100 not-prose tpage-nav">
|
||||
<ul class="flex flex-row flex-wrap gap-4 text-xl xl:max-w-screen-xl">
|
||||
<li class="{% if homepage %}active{% endif %}">
|
||||
<li class="{% if page == 'homepage' %}active{% endif %}">
|
||||
<a href="{% url 'homepage' t.id %}">Strona główna</a>
|
||||
</li>
|
||||
{% if t.schedule_and_results_enabled %}
|
||||
<li class="{% if schedule_and_results %}active{% endif %}">
|
||||
<a href="{% url 'schedule_and_results' t.id %}"
|
||||
>Harmonogram i wyniki</a
|
||||
{% for key, val in rename.items %}
|
||||
{% if val != '' %}
|
||||
<li class="{% if page == key %}active{% endif %}">
|
||||
<a href="{% url 'page' t.id val.1 %}"
|
||||
>{{ val.0 }}</a
|
||||
>
|
||||
</li>
|
||||
{% endif %} {% if t.registration_enabled %}
|
||||
<li class="{% if registration %}active{% endif %}">
|
||||
<a href="{% url 'registration' t.id %}">Rejestracja</a>
|
||||
</li>
|
||||
{% endif %} {% if t.rules_enabled %}
|
||||
<li class="{% if rules %}active{% endif %}">
|
||||
<a href="{% url 'rules' t.id %}">Regulamin</a>
|
||||
</li>
|
||||
{% endif %} {% if t.fee_and_prizes_enabled %}
|
||||
<li class="{% if fee_and_prizes %}active{% endif %}">
|
||||
<a href="{% url 'fee_and_prizes' t.id %}">Wpisowe i nagrody</a>
|
||||
</li>
|
||||
{% endif %} {% if t.accomodation_enabled %}
|
||||
<li class="{% if accomodation %}active{% endif %}">
|
||||
<a href="{% url 'accomodation' t.id %}">Noclegi</a>
|
||||
</li>
|
||||
{% endif %} {% if t.contact_enabled %}
|
||||
<li class="{% if contact %}active{% endif %}">
|
||||
<a href="{% url 'contact' t.id %}">Kontakt</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
<main class="flex flex-col">
|
||||
|
|
|
|||
|
|
@ -4,11 +4,5 @@ from .views import *
|
|||
|
||||
urlpatterns = [
|
||||
path('<int:id>', HomeView.as_view(), name='homepage'),
|
||||
path('<int:id>/wyniki', ScheduleAndResultsView.as_view(),
|
||||
name='schedule_and_results'),
|
||||
path('<int:id>/rejestracja', RegistrationView.as_view(), name='registration'),
|
||||
path('<int:id>/regulamin', RulesView.as_view(), name='rules'),
|
||||
path('<int:id>/nagrody', FeeAndPrizesView.as_view(), name='fee_and_prizes'),
|
||||
path('<int:id>/noclegi', AccomodationView.as_view(), name='accomodation'),
|
||||
path('<int:id>/kontakt', ContactView.as_view(), name='contact'),
|
||||
path('<int:id>/<str:page>', PageView.as_view(), name='page'),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,16 +1,85 @@
|
|||
from django.shortcuts import render
|
||||
from django.views.generic import TemplateView
|
||||
from django.utils.text import slugify
|
||||
|
||||
from .models import TournamentPage
|
||||
|
||||
# Create your views here.
|
||||
|
||||
|
||||
def func(id, page):
|
||||
t = TournamentPage.objects.get(
|
||||
id=id, published=True)
|
||||
|
||||
remap = {
|
||||
'wyniki': 'schedule_and_results',
|
||||
'rejestracja': 'registration',
|
||||
'regulamin': 'rules',
|
||||
'nagrody': 'fee_and_prizes',
|
||||
'noclegi': 'accomodation',
|
||||
'kontakt': 'contact',
|
||||
f'{slugify(t.schedule_and_results_rename)}': 'schedule_and_results',
|
||||
f'{slugify(t.registration_rename)}': 'registration',
|
||||
f'{slugify(t.rules_rename)}': 'rules',
|
||||
f'{slugify(t.fee_and_prizes_rename)}': 'fee_and_prizes',
|
||||
f'{slugify(t.accomodation_rename)}': 'accomodation',
|
||||
f'{slugify(t.contact_rename)}': 'contact'
|
||||
}
|
||||
|
||||
rename = {
|
||||
'schedule_and_results': (t.schedule_and_results_rename, slugify(t.schedule_and_results_rename)) if t.schedule_and_results_enabled else '',
|
||||
'registration': (t.registration_rename, slugify(t.registration_rename)) if t.registration_enabled else '',
|
||||
'rules': (t.rules_rename, slugify(t.rules_rename)) if t.rules_enabled else '',
|
||||
'fee_and_prizes': (t.fee_and_prizes_rename, slugify(t.fee_and_prizes_rename)) if t.fee_and_prizes_enabled else '',
|
||||
'accomodation': (t.accomodation_rename, slugify(t.accomodation_rename)) if t.accomodation_enabled else '',
|
||||
'contact': (t.contact_rename, slugify(t.contact_rename)) if t.contact_enabled else '',
|
||||
}
|
||||
|
||||
page = remap[page] if page in remap else page
|
||||
|
||||
return {'t': t, 'rename': rename, 'content': t.__dict__[page], 'content_buttons': t.__dict__[f'{page}_buttons'], 'page': page}
|
||||
|
||||
class HomeView(TemplateView):
|
||||
template_name = "tournament.html"
|
||||
|
||||
def get_context_data(self, id, **kwargs):
|
||||
t = TournamentPage.objects.get(id=id, published=True)
|
||||
return {'t': t, 'content': t.homepage, 'content_buttons': t.homepage_buttons, 'homepage': True}
|
||||
return func(id, 'homepage')
|
||||
|
||||
|
||||
class PageView(TemplateView):
|
||||
template_name = "tournament.html"
|
||||
|
||||
def get_context_data(self, id, page, **kwargs):
|
||||
t = TournamentPage.objects.get(
|
||||
id=id, published=True)
|
||||
|
||||
remap = {
|
||||
'wyniki': 'schedule_and_results',
|
||||
'rejestracja': 'registration',
|
||||
'regulamin': 'rules',
|
||||
'nagrody': 'fee_and_prizes',
|
||||
'noclegi': 'accomodation',
|
||||
'kontakt': 'contact',
|
||||
f'{slugify(t.schedule_and_results_rename)}': 'schedule_and_results',
|
||||
f'{slugify(t.registration_rename)}': 'registration',
|
||||
f'{slugify(t.rules_rename)}': 'rules',
|
||||
f'{slugify(t.fee_and_prizes_rename)}': 'fee_and_prizes',
|
||||
f'{slugify(t.accomodation_rename)}': 'accomodation',
|
||||
f'{slugify(t.contact_rename)}': 'contact'
|
||||
}
|
||||
|
||||
rename = {
|
||||
'schedule_and_results': (t.schedule_and_results_rename, slugify(t.schedule_and_results_rename)) if t.schedule_and_results_enabled else '',
|
||||
'registration': (t.registration_rename, slugify(t.registration_rename)) if t.registration_enabled else '',
|
||||
'rules': (t.rules_rename, slugify(t.rules_rename)) if t.rules_enabled else '',
|
||||
'fee_and_prizes': (t.fee_and_prizes_rename, slugify(t.fee_and_prizes_rename)) if t.fee_and_prizes_enabled else '',
|
||||
'accomodation': (t.accomodation_rename, slugify(t.accomodation_rename)) if t.accomodation_enabled else '',
|
||||
'contact': (t.contact_rename, slugify(t.contact_rename)) if t.contact_enabled else '',
|
||||
}
|
||||
|
||||
page = remap[page] if page in remap else page
|
||||
|
||||
return {'t': t, 'rename': rename, 'content': t.__dict__[page], 'content_buttons': t.__dict__[f'{page}_buttons'], 'page': page}
|
||||
|
||||
|
||||
class ScheduleAndResultsView(TemplateView):
|
||||
|
|
|
|||
Loading…
Reference in New Issue