Výroční sraz M&M
This commit is contained in:
parent
4b6e82120d
commit
32141d457f
12 changed files with 196 additions and 0 deletions
|
@ -150,6 +150,7 @@ INSTALLED_APPS = (
|
|||
'personalni',
|
||||
'soustredeni',
|
||||
'treenode',
|
||||
'vyroci',
|
||||
|
||||
# Admin upravy:
|
||||
|
||||
|
|
|
@ -68,6 +68,9 @@ urlpatterns = [
|
|||
# REST API
|
||||
# path('api/', include(router.urls)),
|
||||
|
||||
# Výroční sraz
|
||||
path('', include('vyroci.urls')),
|
||||
|
||||
]
|
||||
|
||||
# This is only needed when using runserver.
|
||||
|
|
0
vyroci/__init__.py
Normal file
0
vyroci/__init__.py
Normal file
7
vyroci/admin.py
Normal file
7
vyroci/admin.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from .models import UcastnikVyroci
|
||||
|
||||
# Register your models here.
|
||||
|
||||
admin.register(UcastnikVyroci)
|
5
vyroci/apps.py
Normal file
5
vyroci/apps.py
Normal file
|
@ -0,0 +1,5 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class VyrociConfig(AppConfig):
|
||||
name = 'vyroci'
|
14
vyroci/forms.py
Normal file
14
vyroci/forms.py
Normal file
|
@ -0,0 +1,14 @@
|
|||
from django.forms import ModelForm
|
||||
from .models import UcastnikVyroci
|
||||
|
||||
|
||||
class UcastnikVyrociForm(ModelForm):
|
||||
class Meta:
|
||||
model = UcastnikVyroci
|
||||
fields = "__all__"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
for field in ["kdy", "cojemam", "cislo", "dodat"]:
|
||||
self.fields[field].widget.attrs['rows'] = 2
|
||||
self.fields[field].widget.attrs['cols'] = 22
|
27
vyroci/migrations/0001_initial.py
Normal file
27
vyroci/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Generated by Django 2.2.28 on 2023-06-02 18:55
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='UcastnikVyroci',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('jmeno', models.CharField(help_text='Občanská identifikace účastníka víkendovky', max_length=256, verbose_name='Jméno a přijmení')),
|
||||
('prezdivka', models.CharField(help_text='Veřejná identifikace účastníka víkendovky', max_length=256, verbose_name='Přezdívka')),
|
||||
('email', models.EmailField(help_text='Kontakt na účastníka víkendovky', max_length=256, verbose_name='E-mail')),
|
||||
('kdy', models.TextField(max_length=256, verbose_name='Řešil nebo organizoval jsi M&M? Kdy?')),
|
||||
('cojemam', models.TextField(max_length=256, verbose_name='Co znamená M&M (a proč)?')),
|
||||
('cislo', models.TextField(max_length=256, verbose_name='Co v M&Mí historii značí číslo 265252859812191058636308480000000?')),
|
||||
('dodat', models.TextField(blank=True, max_length=256, null=True, verbose_name='Co chci ještě dodat?')),
|
||||
],
|
||||
),
|
||||
]
|
0
vyroci/migrations/__init__.py
Normal file
0
vyroci/migrations/__init__.py
Normal file
40
vyroci/models.py
Normal file
40
vyroci/models.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
|
||||
|
||||
class UcastnikVyroci(models.Model):
|
||||
|
||||
jmeno = models.CharField(
|
||||
"Jméno a přijmení", max_length=256, blank=False, null=False,
|
||||
help_text="Občanská identifikace účastníka víkendovky"
|
||||
)
|
||||
|
||||
prezdivka = models.CharField(
|
||||
"Přezdívka", max_length=256, blank=False, null=False,
|
||||
help_text="Veřejná identifikace účastníka víkendovky"
|
||||
)
|
||||
|
||||
email = models.EmailField(
|
||||
"E-mail", max_length=256, blank=False, null=False,
|
||||
help_text="Kontakt na účastníka víkendovky"
|
||||
)
|
||||
|
||||
kdy = models.TextField(
|
||||
"Řešil nebo organizoval jsi M&M? Kdy?", max_length=256, blank=False,
|
||||
null=False,
|
||||
)
|
||||
|
||||
cojemam = models.TextField(
|
||||
"Co znamená M&M (a proč)?", max_length=256, blank=False, null=False,
|
||||
)
|
||||
|
||||
cislo = models.TextField(
|
||||
"Co v M&Mí historii značí číslo 265252859812191058636308480000000?",
|
||||
max_length=256, blank=False, null=False,
|
||||
)
|
||||
|
||||
dodat = models.TextField(
|
||||
"Co chci ještě dodat?", max_length=256, blank=True, null=True,
|
||||
)
|
||||
|
56
vyroci/templates/vyroci/vyroci.html
Normal file
56
vyroci/templates/vyroci/vyroci.html
Normal file
|
@ -0,0 +1,56 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>{% block nadpis1a %}M&Mí 30!*{% endblock nadpis1a %}</h1>
|
||||
|
||||
<h4>*plným názvem M&Mí 265252859812191058636308480000000.</h4>
|
||||
|
||||
<p>Rádi bychom Tě pozvali na plánovaný M&Mí sraz, kde nalezneš možnost se setkat se současnými organizátory a účastníky, minulými organizátory a účastníky, předminulými organizátory a účastníky, předpředminulými organizátory a účastníky a jinými M&Mími legendami.</p>
|
||||
|
||||
<p>Těšit se můžeš na zábavnou akci pro všechny věkové kategorie. Pokud máš chuť se zúčastnit, tak neváhej a vyplň přihlašovací formulář níže (pokud plánuješ přijet jen na část víkendu, nebo s sebou někoho vzít – třeba děti, tak to napiš do poznámky). Podrobnější informace o akci budeme rozesílat přibližně dva týdny před akci.</p>
|
||||
|
||||
<ul>
|
||||
<li> Kdy: pátek 22. – neděle 24. 9. 2023 </li>
|
||||
<li> Kde: <a href="https://borovice.cz/inzerat/2587-zakladna-pratel-prirody-upirci-2">Klubovna Upírků v Libčicích n.V.</a></li>
|
||||
<li> Kdo jede: Káťa, (R)adim{% for ucastnik in ucastnici %}, {{ ucastnik.prezdivka }}{% endfor %}</li>
|
||||
</ul>
|
||||
|
||||
<h2>Přihlašovací formulář</h2>
|
||||
|
||||
<p><b>Tučně</b> popsaná pole jsou povinná.</p>
|
||||
|
||||
<form action="{% url 'vyrocni_sraz' %}" method="post">
|
||||
<table class="form">
|
||||
{% for field in form %}
|
||||
<tr>
|
||||
<td>
|
||||
<label class="field-label{% if field.field.required %} field-required{% endif %}" for="{{ field.id_for_label }}">
|
||||
{{ field.label }}
|
||||
</label>
|
||||
|
||||
</td>
|
||||
|
||||
<td {% if field.help_text %} class="field-with-comment"{% endif %}>
|
||||
{{ field }}
|
||||
<span class="field-comment">{{ field.help_text|safe }}</span>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
{% if field.errors %}
|
||||
<tr>
|
||||
<td colspan="2"><span class="field-error">{{ field.errors }}</span></td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
{% csrf_token %}
|
||||
{{form.non_field_errors}}
|
||||
|
||||
<input type="submit" value="Přihlásit se!">
|
||||
</form>
|
||||
|
||||
{% endblock content %}
|
11
vyroci/urls.py
Normal file
11
vyroci/urls.py
Normal file
|
@ -0,0 +1,11 @@
|
|||
from django.urls import path
|
||||
|
||||
from .views import VyrociView
|
||||
|
||||
urlpatterns = [
|
||||
path(
|
||||
'sraz/',
|
||||
VyrociView.as_view(),
|
||||
name='vyrocni_sraz'
|
||||
),
|
||||
]
|
32
vyroci/views.py
Normal file
32
vyroci/views.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
from django.views.generic import FormView
|
||||
|
||||
from seminar.models import Osoba
|
||||
from seminar.views import formularOKView
|
||||
from .forms import UcastnikVyrociForm
|
||||
from .models import UcastnikVyroci
|
||||
|
||||
|
||||
# Create your views here.
|
||||
|
||||
class VyrociView(FormView):
|
||||
""" Zobrazí organizátorský rozcestník."""
|
||||
template_name = 'vyroci/vyroci.html'
|
||||
form_class = UcastnikVyrociForm
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['ucastnici'] = UcastnikVyroci.objects.all()
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
form.save()
|
||||
|
||||
return formularOKView(self.request, "Úspěšně jsi se přihlásil na víkendovku")
|
||||
def get_initial(self):
|
||||
initial = super().get_initial()
|
||||
if self.request.user.is_authenticated:
|
||||
osoba = Osoba.objects.filter(user=self.request.user).first()
|
||||
if osoba is not None:
|
||||
initial["jmeno"] = osoba.plne_jmeno()
|
||||
initial["email"] = osoba.email
|
||||
return initial
|
Loading…
Reference in a new issue