# -*- coding: utf-8 -*- from django.shortcuts import render from django.shortcuts import get_object_or_404, render from django.http import HttpResponseRedirect from django.http import HttpResponse from django.core.urlresolvers import reverse from django.views import generic from django.utils.translation import ugettext as _ from django.http import Http404 from django.http import HttpResponseRedirect from .models import Oprava,Komentar,KorekturovanePDF from .forms import OpravaForm from datetime import timedelta, date, datetime from itertools import groupby import tempfile import subprocess import shutil import os from django.conf import settings import unicodedata class KorekturyHelpView(generic.TemplateView): template_name = 'korektury/help.html' class KorekturyListView(generic.ListView): model = KorekturovanePDF template_name = 'korektury/seznam.html' ### Korektury class KorekturyView(generic.TemplateView): model = Oprava template_name = 'korektury/opraf.html' form_class = OpravaForm def post(self, request, *args, **kwargs): form = self.form_class(request.POST) q = request.POST scroll = q.get('scroll') autor = q.get('au') print "autor:" + str(autor) if not autor: autor = 'anonym' if not scroll: scroll = 0 action = q.get('action') if (action == u''): # Přidej x = int(q.get('x')) y = int(q.get('y')) text = q.get('txt') strana = int(q.get('img-id')[4:]) pdf = KorekturovanePDF.objects.filter(id=q.get('pdf')).first() op = Oprava(x=x,y=y, autor=autor, text=text, strana=strana,pdf = pdf) op.save() elif (action == u'del'): id = int(q.get('id')) op = Oprava.objects.filter(id=id).first() op.delete() elif (action == u'update'): id = int(q.get('id')) op = Oprava.objects.filter(id=id).first() text = q.get('txt') op.autor = autor op.text = text op.save() elif (action == u'undone'): id = int(q.get('id')) op = Oprava.objects.filter(id=id).first() op.status = op.STATUS_K_OPRAVE op.save() elif (action == u'done'): id = int(q.get('id')) op = Oprava.objects.filter(id=id).first() op.status = op.STATUS_OPRAVENO op.save() elif (action == u'wontfix'): id = int(q.get('id')) op = Oprava.objects.filter(id=id).first() op.status = op.STATUS_NENI_CHYBA op.save() elif (action == u'comment'): id = int(q.get('id')) op = Oprava.objects.filter(id=id).first() text = q.get('txt') kom = Komentar(oprava=op,autor=autor,text=text) kom.save() elif (action == u'update-comment'): id = int(q.get('id')) kom = Komentar.objects.filter(id=id).first() text = q.get('txt') kom.text = text kom.autor = autor kom.save() elif (action == u'del-comment'): id = int(q.get('id')) kom = Komentar.objects.filter(id=id).first() kom.delete() elif (action == u'delall'): pdf = KorekturovanePDF.objects.filter(id=q.get('pdf')) checked = q.get('yes') if checked: opravy = Oprava.objects.filter(pdf=pdf) komentare = Komentar.objects.filter(oprava=opravy) opravy.delete() komentare.delete() elif (action == u'set-state'): pdf = KorekturovanePDF.objects.get(id=q.get('pdf')) if (q.get('state') == u'adding'): pdf.status = pdf.STATUS_PRIDAVANI elif (q.get('state') == u'comitting'): pdf.status = pdf.STATUS_ZANASENI elif (q.get('state') == u'deprecated'): pdf.status = pdf.STATUS_ZASTARALE pdf.save() # return HttpResponse(u'Keys: %s '%(q.iteitems())) # return HttpResponse(u'Oprav: %d, akce: %s'%( # len(Oprava.objects.all()),action)) # return HttpResponseRedirect(reverse('korektury')+"?scroll=%s"%(scroll)) context = self.get_context_data() context['scroll'] = scroll context['autor'] = autor return render(request, 'korektury/opraf.html',context) # return HttpResponse(u'Oprav: %d,x: %d y: %d, autor: %s, text: %s, strana: %d'%( # len(Oprava.objects.all()),x,y,autor,text,strana)) def get_context_data(self, **kwargs): context = super(KorekturyView,self).get_context_data(**kwargs) pdf = KorekturovanePDF.objects.filter(id=self.kwargs['pdf']).first() context['pdf'] = pdf context['img_name'] = os.path.split(pdf.pdf.path)[1].split('.')[0] context['img_path'] = settings.KOREKTURY_IMG_DIR context['img_indexes'] = range(pdf.stran) context['form_oprava'] = OpravaForm() opravy = Oprava.objects.filter(pdf=self.kwargs['pdf']) zasluhy = {} for o in opravy: if o.autor in zasluhy: zasluhy[o.autor]+=1 else: zasluhy[o.autor]=1 o.komentare = o.komentar_set.all() for k in o.komentare: if k.autor in zasluhy: zasluhy[k.autor]+=1 else: zasluhy[k.autor]=1 strany = opravy.values('strana') opravy_na_stranu = [{'strana':s['strana'],'op_id':opravy.filter(strana=s['strana'])} for s in strany] context['opravy_strany'] = opravy_na_stranu context['opravy'] = opravy context['zasluhy'] = zasluhy return context def form_valid(self,form): return super(KorekturyView,self).form_valid(form)