def addMenu(self, id_treeapp, id_aplicativo, titulo, json, exportar=None, exportar_xml=None, exportar_json=None): """ """ portal = Portal(id_site=self.id_site, request=self.request) id_conteudo = self.execSql("select_nextval_conteudo").next()["id"] self.execSqlu("insert_conteudo", id_conteudo=id_conteudo, titulo=titulo, json=unicode(json)) portal._addConteudo(env_site=self.id_site, id_pk=id_conteudo, schema=self.schema, meta_type=self.meta_type, id_aplicativo=id_aplicativo, id_treeapp=id_treeapp, titulo=titulo, publicado=True, publicado_em=strftime("%Y-%m-%d %H:%M"), expira_em=None, titulo_destaque=None, descricao_destaque=None, imagem_destaque=None, tags=None, permissao=None) if exportar_xml or exportar_json or exportar: portal._insertLog(self.id_site, "Novo DA-Menu cadastrado e publicado: '%s'" % titulo) portal._exportarFormatosConteudo(id_aplicativo=id_aplicativo, id_conteudo=id_conteudo, schema=self.schema, id_treeapp=id_treeapp, html=exportar, xml=None, json=None, dados={}, subitems=None, add=1) return "Novo DA-Menu cadastrado e publicada" self.logmsg = "Novo DA-Menu adicionado '%s'" % titulo return "Novo DA-Menu cadastrado e publicado"
def addConteudo(self, id_conteudo=None, id_treeapp=None, id_aplicativo=None, titulo_destaque=None, imagem_destaque=None, publicado=None, relacionamento=[], titulo=None, descricao=None, filiado=None, informacoes=None, imagem=None, tags=None, publicado_em=None, expira_em=None, exportar=None, id_destaque=None, exportar_xml=None, exportar_json=None, descricao_destaque=None, permissao=None, tipo=None): """ Metodo chamado ao adicionar um estabelecimento. """ portal = Portal(id_site=self.id_site, request=self.request) id_conteudo = self.execSql("select_nextval_conteudo").next()["id"] publicado = True if publicado else False tags = tags if tags else None data_publicado = publicado_em try: nova_data = strptime(publicado_em, "%d/%m/%Y %H:%M") publicado_em = strftime("%Y-%m-%d %H:%M", nova_data) except ValueError: raise UserError("Ocorreu um erro: " "Data de publicaçåo " "inválida (%s)" % publicado_em) try: novo_expira = strptime(expira_em, "%d/%m/%Y %H:%M") expira_em = strftime("%Y-%m-%d %H:%M", novo_expira) except ValueError: expira_em = None id_imagem = portal.addArquivo(arquivo=imagem, id_conteudo=id_conteudo, schema=self.schema, dt=data_publicado) self.execSqlBatch("insert_conteudo_", titulo=titulo, filiado=filiado, descricao=descricao, informacoes=informacoes, publicado=publicado, imagem=id_imagem, publicado_em=publicado_em, expira_em=expira_em, id_conteudo=int(id_conteudo)) if titulo_destaque or imagem_destaque or descricao_destaque: if not imagem_destaque: imagem_destaque = None else: imagem_destaque = portal.addArquivo(arquivo=imagem_destaque, id_conteudo=id_conteudo, schema=self.schema, dt=data_publicado) self.execSqlBatch("insert_destaque", id_conteudo=int(id_conteudo), titulo=titulo_destaque, descricao=descricao_destaque, img=imagem_destaque) self.execSqlCommit() try: for tipo_selecionado in tipo: tipo_selecionado = tipo_selecionado.strip('d') self.execSqlu("insert_tipo_conteudo", id_tipo=int(tipo_selecionado), id_conteudo=int(id_conteudo), nome=self.getNomeTipo(int(tipo_selecionado))) except TypeError: raise UserError("Selecione ao menos um tipo de estabelecimento.") dados = self._setDados(id_conteudo=id_conteudo) portal._addConteudo(env_site=self.id_site, id_pk=id_conteudo, id_aplicativo=id_aplicativo, schema=self.schema, meta_type=self.meta_type, id_treeapp=id_treeapp, titulo=titulo, publicado=publicado, publicado_em=publicado_em, expira_em=expira_em, titulo_destaque=titulo_destaque, descricao_destaque=descricao_destaque, imagem_destaque=imagem_destaque, permissao=permissao, tags=tags, relacionamento=relacionamento, dados=dados) if exportar or exportar_xml or exportar_json: portal._insertLog(self.id_site, "Estabelecimento '%s' editado" % titulo) portal._exportarFormatosConteudo(id_aplicativo=id_aplicativo, id_conteudo=id_conteudo, schema=self.schema, id_treeapp=id_treeapp, html=exportar, xml=exportar_xml, json=exportar_json, subitems=None, add=1) return ("Estabelecimento adicionado com sucesso! " "Publicação iniciada.") portal._insertLog(self.id_site, "Estabelecimento '%s' adicionado" % titulo) return "Estabelecimento adicionado com sucesso!"
def addConteudo(self, titulo, publicado_em, publicado, id_aplicativo, id_treeapp, permissao, relacionamento="", exportar="", expira_em="", imagem="", descricao="", titulo_destaque="", descricao_destaque="", imagem_destaque="", musica="", **kargs): """ Metodo chamado ao adicionar """ portal = Portal(id_site=self.id_site, request=self.request) id_conteudo = self.execSql("select_nextval_conteudo").next()["id"] publicado = True if publicado else False tags = kargs.get("tags") data_publicado = publicado_em try: nova_data = strptime(publicado_em, "%d/%m/%Y %H:%M") publicado_em = strftime("%Y-%m-%d %H:%M", nova_data) except ValueError: raise UserError("Ocorreu um erro: " "Data de publicaçåo " "inválida (%s)" % publicado_em) try: novo_expira = strptime(expira_em, "%d/%m/%Y %H:%M") expira_em = strftime("%Y-%m-%d %H:%M", novo_expira) except ValueError: expira_em = None id_imagem = portal.addArquivo(arquivo=imagem, id_conteudo=id_conteudo, schema=self.schema, dt=data_publicado) self.execSqlBatch("insert_conteudo_", titulo=titulo, descricao=descricao, publicado=publicado, imagem=id_imagem, publicado_em=publicado_em, expira_em=expira_em, id_conteudo=int(id_conteudo), musica=musica) for i in kargs.get("persona"): self.execSqlBatch("insert_persona", id_conteudo=id_conteudo, id_caracteristica=int(i)) if titulo_destaque or imagem_destaque or descricao_destaque: if not imagem_destaque: imagem_destaque = None else: imagem_destaque = portal.addArquivo(arquivo=imagem_destaque, id_conteudo=id_conteudo, schema=self.schema, dt=data_publicado) self.execSqlBatch("insert_destaque", id_conteudo=int(id_conteudo), titulo=titulo_destaque, descricao=descricao_destaque, img=imagem_destaque) self.execSqlCommit() dados = self._setDados(id_conteudo=id_conteudo) portal._addConteudo(env_site=self.id_site, id_pk=id_conteudo, id_aplicativo=id_aplicativo, schema=self.schema, meta_type=self.meta_type, id_treeapp=id_treeapp, titulo=titulo, publicado=publicado, publicado_em=publicado_em, expira_em=expira_em, titulo_destaque=titulo_destaque, descricao_destaque=descricao_destaque, imagem_destaque=imagem_destaque, permissao=permissao, tags=tags, relacionamento=relacionamento, dados=dados) exportar_xml = kargs.get("exportar_xml") != "null" exportar_json = kargs.get("exportar_xml") != "null" if exportar or exportar_xml or exportar_json: portal._insertLog(self.id_site, "Conteúdo '%s' editado" % titulo) portal._exportarFormatosConteudo(id_aplicativo=id_aplicativo, id_conteudo=id_conteudo, schema=self.schema, id_treeapp=id_treeapp, html=exportar, xml=exportar_xml, json=exportar_json, subitems=None, add=1) return ("Conteúdo adicionado com sucesso! " "Publicação iniciada.") portal._insertLog(self.id_site, "Conteúdo '%s' adicionado" % titulo) return "Conteúdo adicionado com sucesso!"
def _verify_ext(self, fabricante=None, modelo=None, modelo_ext=None, ano_fabricacao=None, ano_modelo=None, codigo_fipe=None, hashtree= None): i = -1 if not hashtree: return self.request["env.usuario"] = {"id_usuario":ID_USER} if fabricante and modelo and modelo_ext and ano_fabricacao and ano_modelo and codigo_fipe: try: fabricante = fabricante.decode("utf-8").encode("latin1") modelo= modelo.decode("utf-8").encode("latin1") modelo_ext = modelo_ext.decode("utf-8").encode("latin1") ano_fabricacao = ano_fabricacao.decode("utf-8").encode("latin1") ano_modelo=ano_modelo.decode("utf-8").encode("latin1") codigo_fipe = codigo_fipe.decode("utf-8").encode("latin1") except: pass #didn't encode params from vehicle ids = self.execSql("select_id_conteudo", fabricante=fabricante, modelo=modelo, modelo_ext=modelo_ext, ano_fabricacao=ano_fabricacao, ano_modelo=ano_modelo) if ids: for id in ids: i = id['id_conteudo'] break dados_f = '' if i == -1: id_conteudo = self.execSql("select_nextval_conteudo").next()["id"] i = id_conteudo agora = util.dtnow('%Y-%m-%d %H:%M') self.execSqlBatch("insert_conteudo", id_conteudo=id_conteudo, fabricante=fabricante, modelo=modelo, modelo_extendido=modelo_ext, ano_modelo=ano_modelo, ano_fabricacao=ano_fabricacao, titulo=modelo_ext+" - "+ano_fabricacao+"/"+ano_modelo, codigo_fipe=codigo_fipe, ordem=0, aval_design=0.0, aval_performance=0.0, aval_conforto_acabamento=0.0, aval_dirigibilidade=0.0, aval_consumo=0.0, aval_manutencao=0.0, aval_custo_beneficio=0.0, publicado=True, publicado_em=agora, expira_em=None) self.execSqlCommit() self._setRanking() dados = self._setDados(id_conteudo=id_conteudo) dados_f = dados portal = Portal(id_site=self.id_site, request=self.request) tree = portal._getTreeAppByHash(env_site=self.id_site, hash=hashtree) id_tree = tree['id_treeapp'] dados = self._setDados(id_conteudo=id_conteudo) id_aplicativo = portal._getIdAplicativo(env_site=self.id_site, schema=self.schema) portal._addConteudo(env_site=self.id_site, id_pk=id_conteudo, schema=self.schema, meta_type=self.meta_type, id_treeapp=id_tree, titulo=modelo_ext+" - "+ano_fabricacao+"/"+ano_modelo, publicado=True, publicado_em=agora, titulo_destaque='', descricao_destaque='', imagem_destaque='', dados=dados, id_aplicativo=id_aplicativo) try: portal._exportarFormatosConteudo(id_aplicativo=id_aplicativo, id_conteudo=id_conteudo, schema=self.schema, id_treeapp=id_tree, html=1, dados=dados, subitems=None, add=1) except: pass else: dados_f = self._setDados(id_conteudo=i) return {'i':i, 'dados':dados_f}