From 54c7afab71f469ca2a21a08692111f7ef2ea67da Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Mon, 12 Oct 2015 23:13:28 +0200 Subject: [PATCH] galerie | hromadne nahrani fotek --- galerie/TODO | 5 ++- galerie/admin.py | 2 +- galerie/forms.py | 1 + galerie/templates/galerie/GalerieNahled.html | 10 +++-- galerie/views.py | 40 +++++++++++++++++--- 5 files changed, 46 insertions(+), 12 deletions(-) diff --git a/galerie/TODO b/galerie/TODO index 66d2ad9c..2c39633f 100644 --- a/galerie/TODO +++ b/galerie/TODO @@ -5,6 +5,9 @@ * zvolit velikosti velke a male fotky * vycteni EXIFu * razeni podle casu -* hromadne nahravani fotek +* hromadne pridani fotek * do CSS * znovuukladani malych a strednich fotek -- spravit, aby se tak nedělo furt +* přidávání nových galerií jen když je galerie neveřejna +* zverejneni cele galerie k soustredeni i jejich podgalerii +* třízení podgalerií diff --git a/galerie/admin.py b/galerie/admin.py index 25bb7bc9..f4c7f062 100644 --- a/galerie/admin.py +++ b/galerie/admin.py @@ -11,7 +11,7 @@ class ObrazekAdmin(admin.ModelAdmin): class GalerieAdmin(admin.ModelAdmin): model = Galerie fields = ('zobrazit', 'nazev', 'titulni_obrazek', 'popis', 'galerie_up', 'soustredeni') - list_display = ('nazev', 'datum_zmeny', 'zobrazit') + list_display = ('nazev', 'pk', 'datum_zmeny', 'zobrazit') inlines = [GalerieInline] admin.site.register(Obrazek, ObrazekAdmin) diff --git a/galerie/forms.py b/galerie/forms.py index c4cbb459..3e09fe15 100644 --- a/galerie/forms.py +++ b/galerie/forms.py @@ -8,3 +8,4 @@ class KomentarForm(forms.Form): class NewGalerieForm(forms.Form): nazev = forms.CharField(label = "Název galerie", max_length = 100) + popis = forms.CharField(label = "Popis", required = False, max_length = 2000, widget = forms.Textarea) diff --git a/galerie/templates/galerie/GalerieNahled.html b/galerie/templates/galerie/GalerieNahled.html index 79ac0bfd..cba8709b 100644 --- a/galerie/templates/galerie/GalerieNahled.html +++ b/galerie/templates/galerie/GalerieNahled.html @@ -19,10 +19,12 @@
  • {{galerie}} {% endif %} {% endfor %} - {% if user.is_staff %} -
  • VYTVOŘIT NOVOU PODGALERII - {% endif %} - + + {% endif %} + {% if user.is_staff %} + {% endif %} {# obrazky v galerii #} diff --git a/galerie/views.py b/galerie/views.py index 3edbdebc..f8b1d0f5 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -5,9 +5,10 @@ import random from django.http import HttpResponse, Http404 from django.shortcuts import render, HttpResponseRedirect, get_object_or_404 from django.template import RequestContext +from datetime import datetime + from galerie.models import Obrazek, Galerie from seminar.models import Soustredeni - from galerie.forms import KomentarForm, NewGalerieForm @@ -110,20 +111,47 @@ def detail(request, pk, fotka, soustredeni): def new_galerie(request, galerie, soustredeni): + # zjistime k jakemu soustredeni se vaze nove vytvarena galerie soustredeni = get_object_or_404(Soustredeni, pk = soustredeni) + # pokud je parametr galerie 0, pak jde o hlavni galerii + # kdyz je nejaky jiny, pak je pk galerie pod kterou tu dalsi vytvarim if int(galerie) == 0: + galerie_up = False galerie_text = "Hlavní fotogalerie soustředění" else: - galerie = get_object_or_404(Galerie, pk = int(galerie)) - galerie_text = "podgalerii ke galerii " + str(galerie) + galerie_up = get_object_or_404(Galerie, pk = int(galerie)) + galerie_text = "podgalerii ke galerii " + str(galerie_up) + # obsluha formulare umoznujiciho multiple nahravani fotek if request.method == 'POST': form = NewGalerieForm(request.POST, request.FILES) if form.is_valid(): - # TODO dopsat vytvoreni fotogalerie + # vytvoreni nove galerie + gal = Galerie() + gal.nazev = form.cleaned_data['nazev'] + gal.popis = form.cleaned_data['popis'] + gal.zobrazit = 1 # galerie je v procesu vytvareni + ''' pokud je to podgalerie pridej nadrazenou galerii + a nadrazene soustredeni nechej volne, + pokud je to hlavni galerie, tak nadrazena galerie neexistuje, + ale v takovem pripade musi byt nadrazene soustredeni a ne jinak ''' + if galerie_up: + gal.galerie_up = galerie_up + else: + gal.soustredeni = soustredeni + gal.save() + + # zpracovani obrazku v galerii for obr in request.FILES.getlist('obr'): - pass # TODO dopsat ulozeni obrazku - # TODO presmerovani na nove vytvořenou galerii + o = Obrazek() + o.obrazek_velky = obr + o.nazev = str(gal) + "/" + str(obr) + o.datum = datetime.now() #TODO vycist z EXIFU + o.galerie = gal + o.save() + + # presmerovani na prave vzniklou galerii + return HttpResponseRedirect('../../' + str(gal.pk)) else: form = NewGalerieForm()