Example #1
0
    def post(self, registry_id):
        msg = ""
        user = self.get_current_user()     
        dia = self.get_argument("dia","") 
        mes = self.get_argument("mes","") 
        ano = self.get_argument("ano","")
        hora = self.get_argument("hora","")
        duracao = self.get_argument("duracao","") 
        texto = self.get_argument("msg","")
        url = self.get_argument("url","")
        pos = int(self.get_argument("pos","0"))
                
        if texto == "":    
            msg += u"A descrição não pode ser vazia.<br>"

        if re.match(_HORA_FMT, hora) == None:
            msg += u"Hora inválida. Utilize o formato HH:MM<br>"
            
        if re.match(_HORA_FMT, duracao) == None:
            msg += u"Duração inválida. Utilize o formato HH:MM<br>"
                              
        if msg:
            evento = dict(
                          hora = hora,
                          duracao = duracao,
                          msg = texto,
                          url = url,
                          dia = dia,
                          mes = mes,
                          ano = ano,
                          pos = pos
                    )

            self.render("modules/agenda/event-edit.html", EVENTO=evento, NOMEPAG='agenda', \
                                REGISTRY_ID=registry_id, MSG=msg)            

        else:
            dia = "%02d" % int(dia)
            ano_mes = "%04d%02d" % (int(ano), int(mes))

            agenda_data = _EMPTYAGENDA()
            if registry_id in database.AGENDA:
                agenda_data.update(database.AGENDA[registry_id])
            
            if ano_mes not in agenda_data["events"]:
                agenda_data["events"][ano_mes] = {}
                
            
            event = agenda_data["events"][ano_mes][dia][pos]
            
            agenda_data["events"][ano_mes][dia].pop(pos)
            
            event["msg"] = texto
            event["hora"] = hora
            event["duracao"] = duracao
            event["owner"] = user
            event["url"] = url
            event["data_cri"] = str(datetime.now())
                   
            
            if dia not in agenda_data["events"][ano_mes]:
                agenda_data["events"][ano_mes][dia] = {}
            else:
                if len(agenda_data["events"][ano_mes][dia])==0:
                    agenda_data["events"][ano_mes][dia].append(event)
                else:
                    sort = False
                
                    for i in range(len(agenda_data["events"][ano_mes][dia])):
                        
                        if maiorHora(agenda_data["events"][ano_mes][dia][i]["hora"], event["hora"], True):
                            agenda_data["events"][ano_mes][dia].insert(i, event)
                            sort = True
                            break
                            
                    if not sort:
                            agenda_data["events"][ano_mes][dia].append(event)                    
            
            try:
                database.AGENDA[registry_id] = agenda_data
            except Exception as detail:
                self.render("home.html",NOMEPAG='agenda', MSG=u"Erro: %s" % detail)
                return
            
            log.model.log(user, u'alterou um evento na agenda de', objeto=registry_id, tipo="agenda", \
                          link="/agenda/%s?mes=%s&ano=%s"%(registry_id, mes, ano))
            self.render("popup_msg.html",MSG=u"Evento Alterado")
Example #2
0
    def post(self, registry_id):
        msg = ""
        user = self.get_current_user()
        data = self.get_argument("data","")
        hora = self.get_argument("hora","")
        duracao = self.get_argument("duracao","")
        
        if re.match(_HORA_FMT, hora) == None:
            msg += u"Hora inválida. Utilize o formato HH:MM<br>"
            
        if re.match(_HORA_FMT, duracao) == None:
            msg += u"Duração inválida. Utilize o formato HH:MM<br>"
             
        if re.match(_DATA_FMT, data) == None:
            msg += u"Data inválida. Utilize o formato DD/MM/AAAA<br>"
        else:
            (dia, mes, ano) = data.split("/")

        texto = self.get_argument("msg","")
        if texto == "":
            msg += u"A descrição não pode ser vazia.<br>"
    
        url = self.get_argument("url","")       # opcional
                    
        if msg:
            evento = dict(
                          hora = hora,
                          duracao = duracao,
                          msg = texto,
                          url = url,
                          dia = dia,
                          mes = mes,
                          ano = ano,
                          data = data
                    )
                        
            self.render("modules/agenda/event-form.html", REGISTRY_ID=registry_id,NOMEPAG='agenda', MSG=msg, EVENTO=evento)
            return
        
        else:
            ano_mes = ano+mes
            
            agenda_data = _EMPTYAGENDA()
            if registry_id in database.AGENDA:
                agenda_data.update(database.AGENDA[registry_id])
            
            if ano_mes not in agenda_data["events"]:
                agenda_data["events"][ano_mes] = {}

            event = dict(
                         msg = texto,
                         owner = user,
                         url = url,
                         duracao = duracao,
                         hora = hora,
                         data_cri = str(datetime.now())
            )

            if dia not in agenda_data["events"][ano_mes]:
                agenda_data["events"][ano_mes][dia] = [event]
            else:
                #agenda_data["events"][ano_mes][dia].append(event)
                sort = False
                
                for i in range(len(agenda_data["events"][ano_mes][dia])):
                    
                    if maiorHora(agenda_data["events"][ano_mes][dia][i]["hora"], event["hora"], True):
                        agenda_data["events"][ano_mes][dia].insert(i, event)
                        sort = True
                        break
                        
                if not sort:
                    agenda_data["events"][ano_mes][dia].append(event)
                                        
            database.AGENDA[registry_id] = agenda_data
            
            log.model.log(user, u'criou um evento na agenda de', objeto=registry_id, tipo="agenda", link="/agenda/%s?mes=%s&ano=%s"%(registry_id, mes, ano))
            self.render("popup_msg.html",MSG=u"Evento criado")