[func] mbkb && many youth articles

[fix] league ordering
main
yaemiku 2022-08-15 04:17:52 +02:00
parent a352ea331a
commit 46943dc359
Signed by: podlaskizbs
GPG Key ID: ADC039636B3E4AAB
19 changed files with 208 additions and 42 deletions

View File

@ -34,6 +34,7 @@ apps = [
'membership',
'youth',
'atu',
'mbkb',
'core'
]

View File

@ -9,6 +9,7 @@ from db.tournaments.models import *
from db.membership.models import *
from db.youth.models import *
from db.atu.models import *
from db.mbkb.models import *
def load_config(request):
@ -24,14 +25,15 @@ def load_config(request):
'regulaminy': Regulation.objects.all(),
'rodos': RODO.objects.all(),
'leagues': {
'Wyniki I Ligi': FirstLeague.objects.all(),
'Wyniki II Ligi': SecondLeague.objects.all(),
'Wyniki I Ligi': FirstLeague.objects.all().reverse(),
'Wyniki II Ligi': SecondLeague.objects.all().reverse(),
'Wyniki III Ligi': ThirdLeague.objects.all()
},
'calendars': Calendar.objects.all(),
'gpb': GrandPrixB.load(),
'tournaments': Tournament.objects.filter(published=True),
'memberships': Membership.objects.filter(published=True),
'youth': Youth.load(),
'youth': Youth.objects.all(),
'mbkb': MBKB.objects.all(),
'atu': Atu.load()
}

View File

@ -0,0 +1,21 @@
{% extends 'base.html' %}
<!---->
{% block title %}Miejski Białostocki Klub Brydżowy | pdlzbs{% endblock %}
<!---->
{% load static tailwind_tags tablepipe %} {% block content %}
<h1 class="text-center mb-4">Miejski Białostocki Klub Brydżowy</h1>
<div class="flex flex-col items-center gap-4">
{% for article in mbkb %}
<article class="w-full pb-4">
{% if article.show_title %}
<h2 class="font-normal">{{ article.title }}</h2>
{% endif %} {{ article.content | tablescroll | safe }}
</article>
{% if not forloop.last %}
<hr class="w-36 border-b border-stone-200" />
{% endif %} {% empty %}
<span class="py-4 text-xl">Brak artykułów</span>
{% endfor %}
</div>
{% endblock %}

View File

@ -3,5 +3,19 @@
{% block title %}Młodzież | pdlzbs{% endblock %}
<!---->
{% load static tailwind_tags tablepipe %} {% block content %}
<article class="w-full">{{ youth.content | safe }}</article>
<h1 class="text-center mb-4">Młodzież</h1>
<div class="flex flex-col items-center gap-4">
{% for article in youth %}
<article class="w-full pb-4">
{% if article.show_title %}
<h2 class="font-normal">{{ article.title }}</h2>
{% endif %} {{ article.content | tablescroll | safe }}
</article>
{% if not forloop.last %}
<hr class="w-36 border-b border-stone-200" />
{% endif %} {% empty %}
<span class="py-4 text-xl">Brak artykułów</span>
{% endfor %}
</div>
{% endblock %}

View File

@ -19,4 +19,5 @@ urlpatterns = [
path('skladki', MembershipView.as_view(), name='membership'),
path('mlodziez', YouthView.as_view(), name='youth'),
path('atu', AtuView.as_view(), name='atu'),
path('mbkb', MBKBView.as_view(), name='mbkb'),
]

View File

@ -59,3 +59,7 @@ class YouthView(TemplateView):
class AtuView(TemplateView):
template_name = 'atu.html'
class MBKBView(TemplateView):
template_name = "mbkb.html"

View File

@ -0,0 +1,25 @@
# Generated by Django 4.0.5 on 2022-08-15 02:08
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('league', '0003_firstleague_secondleague_rename_league_thirdleague_and_more'),
]
operations = [
migrations.AlterModelOptions(
name='firstleague',
options={'ordering': ['-year'], 'verbose_name': 'Wyniki I ligi', 'verbose_name_plural': 'Wyniki I ligi'},
),
migrations.AlterModelOptions(
name='secondleague',
options={'ordering': ['-year'], 'verbose_name': 'Wyniki II ligi', 'verbose_name_plural': 'Wyniki II ligi'},
),
migrations.AlterModelOptions(
name='thirdleague',
options={'ordering': ['-year'], 'verbose_name': 'Wyniki III ligi', 'verbose_name_plural': 'Wyniki III ligi'},
),
]

View File

@ -13,7 +13,6 @@ class League(models.Model):
class Meta:
abstract = True
ordering = ['-year']
class FirstLeague(League):
@ -22,6 +21,7 @@ class FirstLeague(League):
class Meta:
verbose_name = 'Wyniki I ligi'
verbose_name_plural = 'Wyniki I ligi'
ordering = ['-year']
class SecondLeague(League):
@ -30,6 +30,7 @@ class SecondLeague(League):
class Meta:
verbose_name = 'Wyniki II ligi'
verbose_name_plural = 'Wyniki II ligi'
ordering = ['-year']
class ThirdLeague(League):
@ -38,3 +39,4 @@ class ThirdLeague(League):
class Meta:
verbose_name = 'Wyniki III ligi'
verbose_name_plural = 'Wyniki III ligi'
ordering = ['-year']

View File

13
db/mbkb/admin.py 100644
View File

@ -0,0 +1,13 @@
from django.contrib import admin
from admin_ordering.admin import OrderableAdmin
from .models import *
# Register your models here.
@admin.register(MBKB)
class MBKBModelAdmin(OrderableAdmin, admin.ModelAdmin):
list_display = ['__str__', 'ordering']
list_editable = ['ordering']
ordering_field_hide_input = True
exclude = ['ordering']

7
db/mbkb/apps.py 100644
View File

@ -0,0 +1,7 @@
from django.apps import AppConfig
class MbkbConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'db.mbkb'
verbose_name = 'Miejski Białostocki Klub Brydżowy'

View File

@ -0,0 +1,32 @@
# Generated by Django 4.0.5 on 2022-08-15 01:54
from django.db import migrations, models
import tinymce.models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='MBKB',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('ordering', models.IntegerField(default=0, verbose_name='Kolejność')),
('published', models.BooleanField(default=True, verbose_name='Wpis opublikowany')),
('show_title', models.BooleanField(default=True, verbose_name='Pokaż tytuł')),
('title', models.CharField(blank=True, default='', max_length=250, verbose_name='Tytuł')),
('content', tinymce.models.HTMLField(blank=True, default='', verbose_name='Tekst')),
],
options={
'verbose_name': 'Artykuł MBKB',
'verbose_name_plural': 'Artykuły MBKB',
'ordering': ['ordering'],
'abstract': False,
},
),
]

View File

19
db/mbkb/models.py 100644
View File

@ -0,0 +1,19 @@
from django.db import models
from tinymce.models import HTMLField
from admin_ordering.models import OrderableModel
# Create your models here.
class MBKB(OrderableModel):
published = models.BooleanField('Wpis opublikowany', default=True)
show_title = models.BooleanField('Pokaż tytuł', default=True)
title = models.CharField('Tytuł', default='', blank=True, max_length=250)
content = HTMLField('Tekst', default='', blank=True)
def __str__(self):
return self.title or '(brak tytułu)'
class Meta(OrderableModel.Meta):
verbose_name = 'Artykuł MBKB'
verbose_name_plural = 'Artykuły MBKB'

13
db/youth/admin.py 100644
View File

@ -0,0 +1,13 @@
from django.contrib import admin
from admin_ordering.admin import OrderableAdmin
from .models import *
# Register your models here.
@admin.register(Youth)
class YouthModelAdmin(OrderableAdmin, admin.ModelAdmin):
list_display = ['__str__', 'ordering']
list_editable = ['ordering']
ordering_field_hide_input = True
exclude = ['ordering']

View File

@ -0,0 +1,37 @@
# Generated by Django 4.0.5 on 2022-08-15 01:54
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('youth', '0001_initial'),
]
operations = [
migrations.AlterModelOptions(
name='youth',
options={'ordering': ['ordering'], 'verbose_name': 'Młodzież', 'verbose_name_plural': 'Młodzież'},
),
migrations.AddField(
model_name='youth',
name='ordering',
field=models.IntegerField(default=0, verbose_name='Kolejność'),
),
migrations.AddField(
model_name='youth',
name='published',
field=models.BooleanField(default=True, verbose_name='Wpis opublikowany'),
),
migrations.AddField(
model_name='youth',
name='show_title',
field=models.BooleanField(default=True, verbose_name='Pokaż tytuł'),
),
migrations.AddField(
model_name='youth',
name='title',
field=models.CharField(blank=True, default='', max_length=250, verbose_name='Tytuł'),
),
]

View File

@ -1,16 +1,19 @@
from django.db import models
from tinymce.models import HTMLField
from core.utils import SingletonModel
from admin_ordering.models import OrderableModel
# Create your models here.
class Youth(SingletonModel):
class Youth(OrderableModel):
published = models.BooleanField('Wpis opublikowany', default=True)
show_title = models.BooleanField('Pokaż tytuł', default=True)
title = models.CharField('Tytuł', default='', blank=True, max_length=250)
content = HTMLField('Tekst', default='', blank=True)
def __str__(self):
return 'Młodzież'
return self.title or '(brak tytułu)'
class Meta:
class Meta(OrderableModel.Meta):
verbose_name = 'Młodzież'
verbose_name_plural = 'Młodzież'

View File

@ -52,6 +52,7 @@ INSTALLED_APPS = [
'db.membership',
'db.youth',
'db.atu',
'db.mbkb',
'theme',
'core'
] + [

View File

@ -1300,10 +1300,6 @@ select {
margin-bottom: 1rem;
}
.mt-8 {
margin-top: 2rem;
}
.mb-auto {
margin-bottom: auto;
}
@ -1336,14 +1332,6 @@ select {
display: none;
}
.h-\[40px\] {
height: 40px;
}
.h-full {
height: 100%;
}
.h-screen {
height: 100vh;
}
@ -1364,10 +1352,6 @@ select {
width: 100%;
}
.w-\[48px\] {
width: 48px;
}
.w-36 {
width: 9rem;
}
@ -1388,10 +1372,6 @@ select {
max-width: 768px;
}
.shrink-0 {
flex-shrink: 0;
}
.basis-1\/2 {
flex-basis: 50%;
}
@ -1593,10 +1573,6 @@ select {
font-size: 15px;
}
.text-\[13px\] {
font-size: 13px;
}
.text-\[2\.25rem\] {
font-size: 2.25rem;
}
@ -1614,14 +1590,14 @@ select {
font-weight: 300;
}
.font-bold {
font-weight: 700;
}
.font-semibold {
font-weight: 600;
}
.font-normal {
font-weight: 400;
}
.lowercase {
text-transform: lowercase;
}
@ -1642,11 +1618,6 @@ select {
letter-spacing: 0em;
}
.text-white {
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity));
}
.antialiased {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;