[func] added posts

main
yaemiku 2022-06-15 21:34:51 +02:00
parent 597d7ce7aa
commit 58187c18f6
Signed by: podlaskizbs
GPG Key ID: ADC039636B3E4AAB
8 changed files with 168 additions and 45 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
venv/
__pycache__/
media/**/*
db.sqlite3

View File

@ -1,3 +1,18 @@
from django.contrib import admin
from django_summernote.admin import SummernoteModelAdmin
from .models import *
# Register your models here.
class PostModelAdmin(SummernoteModelAdmin):
summernote_fields = ['content']
admin.site.register(Post, PostModelAdmin)
admin.site.site_header = 'pdlzbs'
admin.site.site_title = 'pdlzbs'
admin.site.index_title = 'Panel administracyjny'
admin.site.site_url = '/'
admin.site.enable_nav_sidebar = False

View File

@ -4,3 +4,4 @@ from django.apps import AppConfig
class CoreConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'core'
verbose_name = 'Baza danych'

View File

@ -0,0 +1,28 @@
# Generated by Django 4.0.5 on 2022-06-15 18:35
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Post',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=250, verbose_name='Tytuł')),
('content', models.TextField(verbose_name='Treść')),
('created_at', models.DateTimeField(auto_now_add=True)),
],
options={
'verbose_name': 'Ogłoszenie',
'verbose_name_plural': 'Ogłoszenia',
'ordering': ['-created_at'],
},
),
]

View File

@ -1,3 +1,17 @@
from django.db import models
# Create your models here.
class Post(models.Model):
title = models.CharField('Tytuł', max_length=250)
content = models.TextField('Treść')
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
class Meta:
verbose_name = 'Ogłoszenie'
verbose_name_plural = 'Ogłoszenia'
ordering = ['-created_at']

View File

@ -1134,6 +1134,11 @@ select {
margin-right: auto;
}
.my-4 {
margin-top: 1rem;
margin-bottom: 1rem;
}
.mt-\[40px\] {
margin-top: 40px;
}
@ -1146,6 +1151,14 @@ select {
margin-left: -12px;
}
.mb-0 {
margin-bottom: 0px;
}
.mb-4 {
margin-bottom: 1rem;
}
.block {
display: block;
}
@ -1206,6 +1219,14 @@ select {
flex-basis: 33.333333%;
}
.basis-3\/5 {
flex-basis: 60%;
}
.basis-2\/5 {
flex-basis: 40%;
}
.border-collapse {
border-collapse: collapse;
}
@ -1254,11 +1275,29 @@ select {
border-bottom-width: 1px;
}
.border-b-2 {
border-bottom-width: 2px;
}
.border-dashed {
border-style: dashed;
}
.border-slate-400 {
--tw-border-opacity: 1;
border-color: rgb(148 163 184 / var(--tw-border-opacity));
}
.border-stone-500 {
--tw-border-opacity: 1;
border-color: rgb(120 113 108 / var(--tw-border-opacity));
}
.border-stone-400 {
--tw-border-opacity: 1;
border-color: rgb(168 162 158 / var(--tw-border-opacity));
}
.bg-white {
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
@ -1269,6 +1308,11 @@ select {
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}
.py-4 {
padding-top: 1rem;
padding-bottom: 1rem;
}
.pb-1 {
padding-bottom: 0.25rem;
}
@ -1277,6 +1321,22 @@ select {
padding-right: 50px;
}
.pb-6 {
padding-bottom: 1.5rem;
}
.pb-4 {
padding-bottom: 1rem;
}
.pt-4 {
padding-top: 1rem;
}
.pt-0 {
padding-top: 0px;
}
.text-center {
text-align: center;
}
@ -1293,11 +1353,26 @@ select {
font-size: 15px;
}
.text-2xl {
font-size: 1.5rem;
line-height: 2rem;
}
.text-5xl {
font-size: 3rem;
line-height: 1;
}
.text-4xl {
font-size: 2.25rem;
line-height: 2.5rem;
}
.text-3xl {
font-size: 1.875rem;
line-height: 2.25rem;
}
.font-bold {
font-weight: 700;
}
@ -1327,6 +1402,11 @@ select {
color: rgb(255 255 255 / var(--tw-text-opacity));
}
.underline {
-webkit-text-decoration-line: underline;
text-decoration-line: underline;
}
.antialiased {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;

View File

@ -1,47 +1,22 @@
{% extends 'base.html' %} {% block title %}Strona główna | pdlzbs{% endblock %}
{% load static tailwind_tags %} {% block content %}
<div
class="flex flex-col lg:flex-row w-full justify-around gap-4 prose-h1:font-light"
>
<div class="w-full prose basis-2/3">
<h1>Grand Prix Województwa</h1>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Arcu vitae elementum
curabitur vitae nunc sed velit dignissim sodales. Sit amet aliquam id diam
maecenas ultricies mi eget mauris. Enim ut tellus elementum sagittis vitae
et leo duis ut. Rutrum tellus pellentesque eu tincidunt tortor aliquam
nulla facilisi cras. Viverra justo nec ultrices dui sapien. Commodo
viverra maecenas accumsan lacus. Facilisis mauris sit amet massa vitae.
Orci dapibus ultrices in iaculis nunc sed augue lacus viverra.
Pellentesque nec nam aliquam sem et tortor consequat id porta. Feugiat sed
lectus vestibulum mattis ullamcorper velit sed ullamcorper. Elementum
pulvinar etiam non quam lacus suspendisse faucibus. Malesuada fames ac
turpis egestas integer eget. Fermentum posuere urna nec tincidunt praesent
semper. Odio ut sem nulla pharetra diam. Tincidunt tortor aliquam nulla
facilisi cras fermentum odio eu feugiat. Tortor aliquam nulla facilisi
cras fermentum odio eu.
</div>
</div>
<div class="w-full prose basis-1/3">
<h1>Aktualności PodlZBS</h1>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Arcu vitae elementum
curabitur vitae nunc sed velit dignissim sodales. Sit amet aliquam id diam
maecenas ultricies mi eget mauris. Enim ut tellus elementum sagittis vitae
et leo duis ut. Rutrum tellus pellentesque eu tincidunt tortor aliquam
nulla facilisi cras. Viverra justo nec ultrices dui sapien. Commodo
viverra maecenas accumsan lacus. Facilisis mauris sit amet massa vitae.
Orci dapibus ultrices in iaculis nunc sed augue lacus viverra.
Pellentesque nec nam aliquam sem et tortor consequat id porta. Feugiat sed
lectus vestibulum mattis ullamcorper velit sed ullamcorper. Elementum
pulvinar etiam non quam lacus suspendisse faucibus. Malesuada fames ac
turpis egestas integer eget. Fermentum posuere urna nec tincidunt praesent
semper. Odio ut sem nulla pharetra diam. Tincidunt tortor aliquam nulla
facilisi cras fermentum odio eu feugiat. Tortor aliquam nulla facilisi
cras fermentum odio eu.
</div>
<div class="flex flex-col lg:flex-row justify-around gap-4 prose-h1:font-light">
<article class="prose w-full basis-3/5">
<h1>{{ highlight.title }}</h1>
{{ highlight.content | safe }}
</article>
<div class="flex flex-col basis-2/5">
<h1 class="text-3xl pb-6 mb-4 border-b border-stone-500 border-dashed">
Aktualności PodlZBS
</h1>
{% for post in posts %}
<article
class="prose w-full py-4 {% if forloop.first %}pt-0{% endif %} {% if not forloop.last %}border-b border-stone-400{% endif %}"
>
<h2 class="mb-0">{{ post.title }}</h2>
{{ post.content | safe }}
</article>
{% endfor %}
</div>
</div>
{% endblock %}

View File

@ -1,11 +1,20 @@
from django.shortcuts import render
from django.views.generic import TemplateView
from .models import *
# Create your views here.
class HomeView(TemplateView):
template_name = 'home.html'
extra_context = {
'home': 'active'
}
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
posts = list(Post.objects.all())
context['home'] = 'active'
context['highlight'] = posts[0]
context['posts'] = posts[1:]
return context