def _install(self, title, url, id_usuario, hash, id_pagina=None, fast_path=None, fast_origem=None, fast_portal=None, rss_titulo=None, rss_link=None, rss_descricao=None, rss_idioma=None, rss_categoria=None, rss_copyright=None, rss_imagem_titulo=None, rss_imagem_link=None, rss_imagem=None): """Adiciona uma instancia do produto """ portal = Portal(id_site=self.id_site, request=self.request) if not portal._getTreeAppByHash(env_site=self.id_site, hash=hash): raise UserError("O hash especificado não foi encontrado.") nid = str(time()).replace(".", "") if not self.schema: self.schema = "%s_%s" % (meta_type, nid) self.execSqlu("structure") user_dinamic = portal._getUserDinamic(id_site=self.id_site) if user_dinamic: self.execSqlu("permissions", user=buffer(user_dinamic)) if settings.USER_PERMISSION: for u in settings.USER_PERMISSION: self.execSqlu("permissions_admin", user=buffer(u)) if fast_path: if not fast_path.endswith("/"): fast_path += "/" try: id_pagina = int(id_pagina) except: id_pagina = None rss = {"titulo":rss_titulo, "link":rss_link, "descricao":rss_descricao, "idioma":rss_idioma, "categoria":rss_categoria, "copyright":rss_copyright, "imagem_titulo":rss_imagem_titulo, "imagem_link":rss_imagem_link, "rss_imagem":rss_imagem} return {"rss":rss, "url":url, "id_usuario":id_usuario, "hash":hash, "id_pagina":id_pagina, "fast_path":fast_path, "fast_origem":fast_origem, "fast_portal":fast_portal}
def addavaliacao(self, op_design, op_performance, op_conforto, op_dirigibilidade, op_consumo, op_manutencao, op_custo, pontos_positivos, pontos_negativos, comentario, titulo, apelido, i=None, recomenda=None, fabricante=None, modelo=None, modelo_ext=None, ano_fabricacao=None, ano_modelo=None, codigo_fipe=None, hashtree=None): """ Chama metodo para adicionar uma nova avaliacao de um usuario logado. Retorna um dicionario, {'ok': ,'erro'} """ r = self._verify_ext(fabricante=fabricante, modelo=modelo, modelo_ext=modelo_ext, ano_fabricacao=ano_fabricacao, ano_modelo=ano_modelo, codigo_fipe=codigo_fipe, hashtree=hashtree) i = r['i'] if not hashtree: return {"error":0} if i ==" undefined" or i == -1: if fabricante and modelo and modelo_ext and ano_fabricacao and ano_modelo: 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 if not i or i == "undefined" or i == -1: return {"error":0} avaliacao = self._addavaliacao(i=i, op_design=op_design, op_performance=op_performance, op_conforto=op_conforto, op_dirigibilidade=op_dirigibilidade, op_consumo=op_consumo, op_manutencao=op_manutencao, op_custo=op_custo, pontos_positivos=pontos_positivos, pontos_negativos=pontos_negativos, comentario=comentario, titulo=titulo, apelido=apelido, recomenda=recomenda) if avaliacao['error']: return {"avaliacao":avaliacao, "url":0} agora = util.dtnow('%Y-%m-%d %H:%M') self.request["env_usuario"] = {"id_usuario":ID_USER} self.request["env.usuario"] = {"id_usuario":ID_USER} 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'] self.execSqlCommit() self._setRanking() dados = r['dados']#self._setDados(id_conteudo=i) id_aplicativo = portal._getIdAplicativo(env_site=self.id_site, schema=self.schema) """ self.editContent(id_conteudo=i, id_treeapp=id_tree, id_aplicativo=id_aplicativo, publicado_em=str(util.dtnow('%d/%m/%Y %H:%M')), expira_em="", fabricante=fabricante, modelo=modelo, modelo_extendido=modelo_ext, codigo_fipe=codigo_fipe, ano_modelo=ano_modelo, ano_fabricacao=ano_fabricacao, titulo=modelo_ext+" - "+ano_fabricacao+"/"+ano_modelo, ordem=0, publicado=1, exportar=1) """ portal._exportarFormatosConteudo(id_aplicativo=id_aplicativo, id_conteudo=i, schema=self.schema, id_treeapp=id_tree, html=1, dados=dados, subitems=None, add=1) url = "javascript:void(0)" try: url = portal.getUrlByApp(env_site=self.id_site, schema=self.schema, id_conteudo=i, exportar=1, render=1, admin=1) except: pass try: portal.exportarConteudo(id_tree, [{'id_site_conteudo':self.id_site, \ 'id_aplicativo':id_aplicativo, 'schema':self.schema,\ 'id_conteudo':i}]) except Exception, e: pass
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}
def editApp(self, title, url, id_usuario, h, id_pagina=None, fast_path=None, fast_origem=None, fast_portal=None, rss_titulo=None, rss_link=None, rss_descricao=None, rss_idioma=None, rss_categoria=None, rss_copyright=None, rss_imagem_titulo=None, rss_imagem_link=None, rss_imagem=None, delvideo=None): """Edita os atributos da instancia """ portal = Portal(id_site=self.id_site, request=self.request) if not portal._getTreeAppByHash(env_site=self.id_site, hash=h): raise UserError("O hash especificado não foi encontrado.") user_dinamic = portal._getUserDinamic(id_site=self.id_site) if user_dinamic: self.execSqlu("permissions", user=buffer(user_dinamic)) if settings.USER_PERMISSION: for u in settings.USER_PERMISSION: self.execSqlu("permissions_admin", user=buffer(u)) if fast_path: if not fast_path.endswith("/"): fast_path += "/" try: id_pagina = int(id_pagina) except: id_pagina = None rss = {"titulo":rss_titulo, "link":rss_link, "descricao":rss_descricao, "idioma":rss_idioma, "categoria":rss_categoria, "copyright":rss_copyright, "imagem_titulo":rss_imagem_titulo, "imagem_link":rss_imagem_link, "rss_imagem":rss_imagem} dados = {"rss":rss, "url":url, "id_usuario":id_usuario, "hash":h, "id_pagina":id_pagina, "fast_path":fast_path, "fast_origem":fast_origem, "fast_portal":fast_portal} portal._editApp(env_site=self.id_site, schema=self.schema, titulo=title, dados=dados) user_dinamic = portal._getUserDinamic(id_site=self.id_site) if user_dinamic: self.execSqlu("permissions", user=buffer(user_dinamic)) if settings.USER_PERMISSION: for u in settings.USER_PERMISSION: self.execSqlu("permissions_admin", user=buffer(u)) try: self.execSqlu("create_rule") except: pass if delvideo: self.execSqlu("delete_videos") return ("Aplicativo configurado com sucesso! " "Vídeos deletados!") return "Aplicativo configurado com sucesso"