def attivita_scheda_report(request, me, pk=None): """Mostra la pagina di modifica di una attivita'.""" if False: return ci_siamo_quasi(request, me) attivita = get_object_or_404(Attivita, pk=pk) if not me.permessi_almeno(attivita, MODIFICA): return redirect(ERRORE_PERMESSI) if request.POST: # pdf = redirect(pdf.download_url) return attivita.genera_report(format=Attivita.REPORT_FORMAT_EXCEL) context = { "attivita": attivita, "puo_modificare": True, } return 'attivita_scheda_report.html', context
def attivita_scheda_turni(request, me=None, pk=None, pagina=None): """ Mostra la scheda "Informazioni" di una attivita'. """ if False: return ci_siamo_quasi(request, me) attivita = get_object_or_404(Attivita, pk=pk) if pagina is None: pagina = "/attivita/scheda/%d/turni/%d/" % ( attivita.pk, attivita.pagina_turni_oggi()) return redirect(pagina) turni = attivita.turni.all() puo_modificare = me and me.permessi_almeno(attivita, MODIFICA) evidenzia_turno = Turno.objects.get( pk=request.GET['evidenzia_turno'] ) if 'evidenzia_turno' in request.GET else None pagina = int(pagina) if pagina < 0: pagina = 1 p = Paginator(turni, Turno.PER_PAGINA) pg = p.page(pagina) contesto = { 'pagina': pagina, 'pagine': p.num_pages, 'totale': p.count, 'turni': pg.object_list, 'ha_precedente': pg.has_previous(), 'ha_successivo': pg.has_next(), 'pagina_precedente': pagina - 1, 'pagina_successiva': pagina + 1, "attivita": attivita, "puo_modificare": puo_modificare, "evidenzia_turno": evidenzia_turno, } return 'attivita_scheda_turni.html', contesto
def attivita_scheda_turni(request, me=None, pk=None, pagina=None): """ Mostra la scheda "Informazioni" di una attivita'. """ if False: return ci_siamo_quasi(request, me) attivita = get_object_or_404(Attivita, pk=pk) if pagina is None: pagina = "/attivita/scheda/%d/turni/%d/" % (attivita.pk, attivita.pagina_turni_oggi()) return redirect(pagina) turni = attivita.turni.all() puo_modificare = me and me.permessi_almeno(attivita, MODIFICA) evidenzia_turno = Turno.objects.get(pk=request.GET['evidenzia_turno']) if 'evidenzia_turno' in request.GET else None pagina = int(pagina) if pagina < 0: pagina = 1 p = Paginator(turni, Turno.PER_PAGINA) pg = p.page(pagina) contesto = { 'pagina': pagina, 'pagine': p.num_pages, 'totale': p.count, 'turni': pg.object_list, 'ha_precedente': pg.has_previous(), 'ha_successivo': pg.has_next(), 'pagina_precedente': pagina-1, 'pagina_successiva': pagina+1, "attivita": attivita, "puo_modificare": puo_modificare, "evidenzia_turno": evidenzia_turno, } return 'attivita_scheda_turni.html', contesto
def attivita_scheda_report(request, me, pk=None): """ Mostra la pagina di modifica di una attivita'. """ if False: return ci_siamo_quasi(request, me) attivita = get_object_or_404(Attivita, pk=pk) if not me.permessi_almeno(attivita, MODIFICA): return redirect(ERRORE_PERMESSI) if request.POST: pdf = attivita.genera_report() return redirect(pdf.download_url) contesto = { "attivita": attivita, "puo_modificare": True, } return 'attivita_scheda_report.html', contesto
def attivita_scheda_turni_modifica(request, me, pk=None, pagina=None): """ Mostra la pagina di modifica di una attivita'. """ if False: return ci_siamo_quasi(request, me) attivita = get_object_or_404(Attivita, pk=pk) if not me.permessi_almeno(attivita, MODIFICA): return redirect(ERRORE_PERMESSI) if pagina is None: pagina = "/attivita/scheda/%d/turni/modifica/%d/" % (attivita.pk, attivita.pagina_turni_oggi()) return redirect(pagina) turni = attivita.turni.all() pagina = int(pagina) if pagina < 0: pagina = 1 p = Paginator(turni, Turno.PER_PAGINA) pg = p.page(pagina) moduli = [] moduli_aggiungi_partecipanti = [] turni = pg.object_list for turno in turni: modulo = ModuloModificaTurno(request.POST or None, instance=turno, prefix="turno_%d" % (turno.pk,)) moduli += [modulo] modulo_aggiungi_partecipanti = ModuloAggiungiPartecipanti(request.POST or None, prefix="turno_agg_%d" % (turno.pk,)) moduli_aggiungi_partecipanti += [modulo_aggiungi_partecipanti] if modulo.is_valid(): modulo.save() if modulo_aggiungi_partecipanti.is_valid(): # Aggiungi partecipante. for partecipante in modulo_aggiungi_partecipanti.cleaned_data['persone']: turno.aggiungi_partecipante(partecipante, richiedente=me) redirect(turno.url_modifica) # Salva e aggiorna le presenze. for chiave, valore in request.POST.items(): if "presenza-" in chiave: p_pk = int(chiave.replace("presenza-", "")) p_si = '1' in valore pa = Partecipazione.objects.get(pk=p_pk) pa.stato = Partecipazione.RICHIESTA if p_si else Partecipazione.NON_PRESENTATO pa.save() turni_e_moduli = zip(turni, moduli, moduli_aggiungi_partecipanti) evidenzia_turno = Turno.objects.get(pk=request.GET['evidenzia_turno']) if 'evidenzia_turno' in request.GET else None contesto = { 'pagina': pagina, 'pagine': p.num_pages, 'totale': p.count, 'turni': turni_e_moduli, 'ha_precedente': pg.has_previous(), 'ha_successivo': pg.has_next(), 'pagina_precedente': pagina-1, 'pagina_successiva': pagina+1, "attivita": attivita, "puo_modificare": True, "url_modifica": '/modifica', "evidenzia_turno": evidenzia_turno, } return 'attivita_scheda_turni_modifica.html', contesto