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")
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")