Browse Source

Merge pull request 'Výroční sraz M&M' (!32) from vyroci into master

Reviewed-on: #32
upgrade_dokumentace
Jonas Havelka 1 year ago
parent
commit
b14395f91a
  1. 1
      mamweb/settings_common.py
  2. 3
      mamweb/urls.py
  3. 0
      vyroci/__init__.py
  4. 7
      vyroci/admin.py
  5. 5
      vyroci/apps.py
  6. 14
      vyroci/forms.py
  7. 27
      vyroci/migrations/0001_initial.py
  8. 0
      vyroci/migrations/__init__.py
  9. 40
      vyroci/models.py
  10. 62
      vyroci/templates/vyroci/vyroci.html
  11. 31
      vyroci/templates/vyroci/vyroci_list.html
  12. 17
      vyroci/urls.py
  13. 36
      vyroci/views.py

1
mamweb/settings_common.py

@ -150,6 +150,7 @@ INSTALLED_APPS = (
'personalni', 'personalni',
'soustredeni', 'soustredeni',
'treenode', 'treenode',
'vyroci',
# Admin upravy: # Admin upravy:

3
mamweb/urls.py

@ -68,6 +68,9 @@ urlpatterns = [
# REST API # REST API
# path('api/', include(router.urls)), # path('api/', include(router.urls)),
# Výroční sraz
path('sraz/30-let/', include('vyroci.urls')),
] ]
# This is only needed when using runserver. # This is only needed when using runserver.

0
vyroci/__init__.py

7
vyroci/admin.py

@ -0,0 +1,7 @@
from django.contrib import admin
from .models import UcastnikVyroci
# Register your models here.
admin.site.register(UcastnikVyroci)

5
vyroci/apps.py

@ -0,0 +1,5 @@
from django.apps import AppConfig
class VyrociConfig(AppConfig):
name = 'vyroci'

14
vyroci/forms.py

@ -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

@ -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říjmení')),
('prezdivka', models.CharField(help_text='Zveřejňovaná identifikace účastníka víkendovky', max_length=256, verbose_name='Přezdívka (do seznamu účastníků, například Bětka N.)')),
('email', models.EmailField(help_text='Kontakt na účastníka víkendovky', max_length=256, verbose_name='E-mail')),
('kdy', models.TextField(verbose_name='Řešil nebo organizoval jsi M&M? Kdy?')),
('cojemam', models.TextField(verbose_name='Co znamená M&M (a proč)?')),
('cislo', models.TextField(verbose_name='Co v M&Mí historii značí číslo 265252859812191058636308480000000?')),
('dodat', models.TextField(blank=True, null=True, verbose_name='Co chci ještě dodat?')),
],
),
]

0
vyroci/migrations/__init__.py

40
vyroci/models.py

@ -0,0 +1,40 @@
from django.db import models
# Create your models here.
class UcastnikVyroci(models.Model):
jmeno = models.CharField(
"Jméno a příjmení", max_length=256, blank=False, null=False,
help_text="Občanská identifikace účastníka víkendovky"
)
prezdivka = models.CharField(
"Přezdívka (do seznamu účastníků, například Bětka N.)", max_length=256, blank=False, null=False,
help_text="Zveřejňovaná 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?", blank=False,
null=False,
)
cojemam = models.TextField(
"Co znamená M&M (a proč)?", blank=False, null=False,
)
cislo = models.TextField(
"Co v M&Mí historii značí číslo 265252859812191058636308480000000?",
blank=False, null=False,
)
dodat = models.TextField(
"Co chci ještě dodat?", blank=True, null=True,
)

62
vyroci/templates/vyroci/vyroci.html

@ -0,0 +1,62 @@
{% extends "base.html" %}
{% block content %}
<br>
<h1>{% block nadpis1a %}M&Mí 30!*{% endblock nadpis1a %}</h1>
<br>
<h4>*plným názvem M&Mí 265252859812191058636308480000000.</h4>
<br>
<p>Rádi bychom Tě pozvali na plánovaný M&Mí sraz, kde nalezneš možnost se setkat se současnými organizátory, minulými organizátory a&nbsp;účastníky, předminulými organizátory a&nbsp;účastníky, předpředminulými organizátory a&nbsp;účastníky a&nbsp;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&nbsp;vyplň přihlašovací formulář níže (pokud plánuješ přijet jen na část víkendu nebo s&nbsp;sebou někoho vzít&nbsp;&nbsp;třeba děti, tak to napiš do poznámky). Podrobnější informace o&nbsp;akci budeme rozesílat přibližně dva týdny před akcí.</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: {% for ucastnik in ucastnici %}{% if not forloop.first %}, {% endif %}{{ 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">
{{form.non_field_errors}}
{% 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 %}
<input type="submit" value="Přihlásit se!">
</form>
{% endblock content %}

31
vyroci/templates/vyroci/vyroci_list.html

@ -0,0 +1,31 @@
{% extends "base.html" %}
{% block content %}
<h1>{% block nadpis1a %}M&Mí 30! odpovědi{% endblock nadpis1a %}</h1>
<table class="dosla_reseni">
<tr>
<th>Jméno</th>
<th>Přezdívka</th>
<th>E-mail</th>
<th>Kdy účastník/org</th>
<th>Co znamená M&M?</th>
<th>Co znamená číslo?</th>
<th>Něco dodat?</th>
</tr>
{% for u in object_list %}
<tr>
<td>{{ u.jmeno }}</td>
<td>{{ u.prezdivka }}</td>
<td>{{ u.email }}</td>
<td style="word-break: break-all">{{ u.kdy }}</td>
<td style="word-break: break-all">{{ u.cojemam }}</td>
<td style="word-break: break-all">{{ u.cislo }}</td>
<td style="word-break: break-all">{{ u.dodat }}</td>
</tr>
{% endfor %}
</table>
{% endblock content %}

17
vyroci/urls.py

@ -0,0 +1,17 @@
from django.urls import path
from seminar.utils import org_required
from .views import VyrociView, VyrociListView
urlpatterns = [
path(
'',
VyrociView.as_view(),
name='vyrocni_sraz'
),
path(
'ucastnici/',
org_required(VyrociListView.as_view()),
name='vyrocni_sraz_ucastnici'
),
]

36
vyroci/views.py

@ -0,0 +1,36 @@
from django.views.generic import FormView, ListView
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):
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ě ses přihlásil na sraz")
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
class VyrociListView(ListView):
template_name = 'vyroci/vyroci_list.html'
model = UcastnikVyroci
Loading…
Cancel
Save