Exemple #1
0
    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"
Exemple #2
0
    def editMenu(self, id_aplicativo, id_treeapp, id_conteudo, titulo, json,
                       exportar=None, exportar_json=None, exportar_xml=None):
        """
        """
        self.execSqlu("update_menu",
                      id_conteudo=int(id_conteudo),
                      titulo=titulo,
                      json=unquote(json)) 

        portal = Portal(id_site=self.id_site,
                        request=self.request)
        portal._editConteudo(env_site=self.id_site,
                             id_pk=id_conteudo,
                             id_aplicativo=int(id_aplicativo),
                             schema=self.schema,
                             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,
                             permissao=None,
                             tags=None)

        if exportar_xml or exportar_json or exportar:

            portal._insertLog(self.id_site,
                              "DA-Menu '%s' editado e publicado" % 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,
                                             edit=1)

            return ("DA-Menu editado com sucesso! "
                    "Publicação iniciada.")

        self.logmsg = "DA-Menu editado '%s'" % titulo
        return "Menu editado com sucesso!"
Exemple #3
0
    def _publicaContent(self, id_conteudo, id_aplicativo=None, id_treeapp=None):
        """
            publica o conteudo
        """

        portal = Portal(id_site=self.id_site, request=self.request)
        dados = self._setDados(id_conteudo=id_conteudo)
        try:
            self.execSqlu("update_publicacao_promocao",
                           id_conteudo=int(id_conteudo))
            portal._exportarFormatosConteudo(id_aplicativo=id_aplicativo,
                                             id_conteudo=id_conteudo,
                                             schema=self.schema,
                                             id_treeapp=id_treeapp,
                                             html=1,
                                             xml=None,
                                             json=None,
                                             dados=dados,
                                             subitems=None,
                                             add=1)
            return {"ok":"Publicado com sucesso"}
        except Exception as e:
            return {"error":e}
Exemple #4
0
    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!"
Exemple #5
0
    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!"
Exemple #6
0
    def editConteudo(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,
                     musica="",**kargs):
        """
            Edita os dados 
        """
        portal = Portal(id_site=self.id_site, request=self.request)
        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("update_conteudo", titulo=titulo, filiado=filiado,
                      descricao=descricao, informacoes=informacoes,
                      imagem=id_imagem, publicado_em=publicado_em,
                      expira_em=expira_em, id_conteudo=int(id_conteudo),
                      musica=musica)

        self.execSqlBatch("delete_persona", id_conteudo=id_conteudo)

        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)

            if id_destaque:
                self.execSqlBatch("update_destaque",
                                  id_destaque=int(id_destaque),
                                  titulo=titulo_destaque,
                                  descricao=descricao_destaque,
                                  img=imagem_destaque)
            else:
                self.execSqlBatch("insert_destaque",
                                  id_conteudo=int(id_conteudo),
                                  titulo=titulo_destaque,
                                  descricao=descricao_destaque,
                                  img=imagem_destaque)
        elif id_destaque:
            self.execSqlBatch("delete_destaque",
                              id_destaque=int(id_destaque))
            titulo_destaque = None
            descricao_destaque = None
            imagem_destaque = None

        self.execSqlCommit()
        

        dados = self._setDados(id_conteudo=id_conteudo)
        portal._editConteudo(env_site=self.id_site,
                             id_pk=id_conteudo,
                             id_aplicativo=int(id_aplicativo),
                             schema=self.schema,
                             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_xml == "null":
            exportar_xml = 0
        if exportar_json == "null":
            exportar_json = 0
            
        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 editado com sucesso! "
                    "Publicação iniciada.")

        portal._insertLog(self.id_site,
                          "Conteúdo '%s' editado" % titulo)
        return "Conteúdo editado com sucesso!"
Exemple #7
0
    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
Exemple #8
0
    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}