@ -21,18 +21,21 @@
import calendar
import calendar
import datetime
import datetime
import locale
import locale
import csv
from django import template
from django . http import HttpResponse , HttpResponseRedirect , HttpResponseForbidden
from django . http import HttpResponse , HttpResponseRedirect , HttpResponseForbidden
from django . core . paginator import Paginator , InvalidPage , EmptyPage
from django . core . paginator import Paginator , InvalidPage , EmptyPage
from django . contrib import messages
from django . contrib import messages
from django . contrib . auth . decorators import login_required
from django . contrib . auth . decorators import login_required
from django . shortcuts import render
from django . shortcuts import get_object_or_404 , render
from django . utils import translation
from django . utils import translation
from django . utils . translation import ungettext , ugettext as _
from django . utils . translation import ungettext , ugettext as _
from django . http . response import JsonResponse , HttpResponse
from django . template import Template , Context
from sigi . apps . eventos . models import Evento , Equipe , Convite
from sigi . apps . eventos . models import Evento , Equipe , Convite
from sigi . apps . eventos . forms import SelecionaModeloForm
from sigi . apps . servidores . models import Servidor
from sigi . apps . servidores . models import Servidor
from sigi . shortcuts import render_to_pdf
from sigi . shortcuts import render_to_pdf , pdf_renderer
import csv
from django . http . response import JsonResponse , HttpResponse
@login_required
@login_required
def calendario ( request ) :
def calendario ( request ) :
@ -84,10 +87,10 @@ def calendario(request):
for linha in linhas :
for linha in linhas :
sobrepoe = False
sobrepoe = False
for e in linha :
for e in linha :
if ( ( ( evento [ ' evento ' ] . data_inicio > = e [ ' evento ' ] . data_inicio ) and
if ( ( ( evento [ ' evento ' ] . data_inicio . date ( ) > = e [ ' evento ' ] . data_inicio . date ( ) ) and
( evento [ ' evento ' ] . data_inicio < = e [ ' evento ' ] . data_termino ) ) or
( evento [ ' evento ' ] . data_inicio . date ( ) < = e [ ' evento ' ] . data_termino . date ( ) ) ) or
( ( evento [ ' evento ' ] . data_termino > = e [ ' evento ' ] . data_inicio ) and
( ( evento [ ' evento ' ] . data_termino . date ( ) > = e [ ' evento ' ] . data_inicio . date ( ) ) and
( evento [ ' evento ' ] . data_termino < = e [ ' evento ' ] . data_termino ) ) ) :
( evento [ ' evento ' ] . data_termino . date ( ) < = e [ ' evento ' ] . data_termino . date ( ) ) ) ) :
sobrepoe = True
sobrepoe = True
break
break
if not sobrepoe :
if not sobrepoe :
@ -106,7 +109,7 @@ def calendario(request):
if anterior is None :
if anterior is None :
anterior = evento
anterior = evento
continue
continue
anterior [ ' close ' ] = ( evento [ ' evento ' ] . data_inicio - anterior [ ' evento ' ] . data_termino ) . days - 1
anterior [ ' close ' ] = ( evento [ ' evento ' ] . data_inicio . date ( ) - anterior [ ' evento ' ] . data_termino . date ( ) ) . days - 1
evento [ ' start ' ] = 0
evento [ ' start ' ] = 0
anterior = evento
anterior = evento
@ -376,3 +379,36 @@ def export_csv(request):
return response
return response
@login_required
def declaracao ( request , id ) :
if request . method == ' POST ' :
form = SelecionaModeloForm ( request . POST )
if form . is_valid ( ) :
evento = get_object_or_404 ( Evento , id = id )
modelo = form . cleaned_data [ ' modelo ' ]
template_string = (
"""
{ % extends " eventos/declaracao_pdf.html " % }
{ % block text_body % } """ +
modelo . texto + """
{ % endblock % }
"""
)
context = Context (
{ ' pagesize ' : modelo . formato ,
' pagemargin ' : modelo . margem ,
' evento ' : evento ,
' data ' : datetime . date . today ( ) ,
}
)
template = Template ( template_string )
# return HttpResponse(template.render(context))
return pdf_renderer ( template , context , ' declaracao.pdf ' )
else :
form = SelecionaModeloForm ( )
return render (
request ,
' eventos/seleciona_modelo.html ' ,
{ ' form ' : form , ' evento_id ' : id }
)