Example #1
0
    def _sendRemove(self, method_name, to_mail, 
                    host, port, corpo, assunto, from_mail=None, user_mail=None, 
                    user_cpf=None):
        """
        Send mail to get to remove comment
        """
        site = getDadosSite(id_site=self.id_site,
                            request=self.request)
        url = "{0}{1}{2},{3}/{4}?email={5}&cpf={6}".format(site['url_adm'],
                                                           "da_vrumopiniao/",
                                                           self.schema,
                                                           self.id_site,
                                                           method_name,
                                                           user_email,
                                                           user_cpf)

       


        if not from_mail:
            from_mail = to_mail
        email = Email()
        email.enviarEmail(subject=assunto,
                          to=who_mail.encode("latin1"),
                          fro=from_mail,
                          text=corpo.encode("latin1"),
                          returnpath=from_mail,
                          host=host,
                          port=port,
                          type="text/plain")
        return {"ok": "Email com link de remoção enviado"}
Example #2
0
def action():
    request = FakeRequest()
    request.request["bases"] = getDadosSite(ID_SITE,
                                            request=request)

    app = App(id_site=ID_SITE,
              schema=SCHEMA,
              request=request)
    out = app._autoSort(mk=MAGIC_KEY)
    closeConnections()
    print out
Example #3
0
    def _getUltimasNoticiasComentadas(self, hash, limit=20, offset=0,
                                            d1=None, d2=None, qw=None,
                                            exportar=1, render=None):
        """
        """
        if type(hash) is not list:
            hash = [hash]

        portal = Portal(id_site=self.id_site,
                        request=self.request)
        site = getDadosSite(id_site=self.id_site,
                            request=self.request)
        base = site["base_html"]

        items = portal._listarConteudoApp(id_site=self.id_site,
                                          hash=hash,
                                          comentario=1,
                                          acesso=None,
                                          acesso24h=None,
                                          voto=None,
                                          keywords=qw,
                                          de=d1,
                                          ate=d2,
                                          limit=limit,
                                          offset=offset,
                                          rendeer=render)

        itens = []
        idcs = []
        idcsd = {}
        items_ = [i for i in items["itens"] 
                                if idcs.append(str(i["id_conteudo"])) or 1]
        if idcs:
            for i in self.execSql("select_svgs",
                                  id_conteudos=buffer(",".join(idcs))):
                idcsd[i["id_conteudo"]] = i

        for i in items_:

            if idcsd.get(i["id_conteudo"]):
                i["audio"] = idcsd.get(i["id_conteudo"])["audio"]
                i["video"] = idcsd.get(i["id_conteudo"])["video"]
                i["galeria"] = idcsd.get(i["id_conteudo"])["galeria"]
            else:
                i["audio"] = None
                i["video"] = None
                i["galeria"] = None

            itens.append(i)

        return {"res":itens, "qtde":items["qtde"]}
Example #4
0
File: adm.py Project: intip/da-apps
    def makeXLS(self, id_relatorio, id_promocao=None):
        """
        cria o arquivo xls
        a var index é utilizada para
        controlar em qual linha entrara o conteudo
        """
        timename = str(util.dtnow('%d/%m/%Y %H:%M%S')).replace("/", "")
        timename = timename.replace(":", "")
        timename = "_" + timename.replace(" ", "")
        site = getDadosSite(id_site=self.id_site,
                            request=self.request)
        base = site["base_app"]
        if not base.endswith("/"):
            base = base + "/"
        if int(id_relatorio) == 1:
            titulo = 'Relacao_usuario_participacao'
        elif int(id_relatorio) == 2:
            titulo = 'Relacao_participantes_contemplados'
        elif int(id_relatorio) == 4:
            titulo = 'Dados_usuarios_por_promocao'
        else:
            titulo = 'Relacao_participantes_promocao'
        saveplace = ("{0}/ns{1}/arquivos/tmp/"
                     "{2}{3}.xls").format(str(settings.PATH_FILES),
                                          str(self.id_site),
                                          titulo,
                                          timename)
        saveurl = "{0}tmp/{1}{2}.xls".format(
            base, titulo, timename)
        book = Workbook()
        font = Font()
        font.bold = True
        style = XFStyle()
        style.font = font
        style0 = XFStyle()
        style0.font = font

        alignment = Alignment()
        alignment.horz = Alignment.HORZ_CENTER
        style0.alignment = alignment

        pattern = Pattern()
        pattern.pattern = Pattern.SOLID_PATTERN
        pattern.pattern_fore_colour = 22
        style0.pattern = pattern
        index = 0
        sheet = book.add_sheet('promocoes')
        # sheet 
        if int(id_relatorio) == 1 or int(id_relatorio) == 3:
            promocoes = self._getConteudo()
            if int(id_relatorio) == 1:
                campos_s1 = [{"nome": "Nome"},
                             {"email": "email"},
                             {"cpf": "CPF"},
                             {"quantidade de participacoes": u"Quantidade de participações"},
                             {"status":"status"},
                             {"bloqueio":"bloqueado"}]
                sheet.write_merge(0, 0, 0, 5, u"Relação usuário participação por promoção", style0)
            else:
                campos_s1 = [{"nome":"Nome"},
                             {"email":"email"},
                             {"cpf":"CPF"},
                             {"telefone":"Telefone"},
                             {"endereco":u"Endereço"},
                             {"data_hora":u"Hora participação"}]
                sheet.write_merge(0, 0, 0, 5, u"Dados de usuários por promoção", style0)
            total_geral = 0
            count = 0
            for i in promocoes:
                count_participacoes = self._getCountParticipacoes(i['id_conteudo'])
                count += count_participacoes
                index += 1
                titulo = i['titulo']
                sheet.write_merge(index, index, 0, 5, titulo.decode("latin1"), style0)
                index += 1
                for j in range(len(campos_s1)):
                    sheet.write(index, j, campos_s1[j].values()[0], style)
                    sheet.col(j).width = 30 * 256

                cont = 0
                if int(id_relatorio) == 1:
                    for y in self.execSql("select_usuarios_promocoes_all",
                                           id_conteudo=int(i['id_conteudo'])):
                        sheet.write(index + 1,
                                    0,
                                    self.dec(y['nome']))
                        sheet.write(index + 1,
                                    1,
                                    self.dec(y['email']))
                        sheet.write(index + 1,
                                    2,
                                    self.dec(y['cpf']))
                        sheet.write(index + 1,
                                    3,
                                    self.dec(y['total']))
                        sheet.write(index + 1,
                                     4,
                                     self.dec(y['status']))
                        if y['bloqueio']:
                            bloqueio = 'Sim'
                        else:
                            bloqueio = 'Não'
                        sheet.write(index + 1,
                                    5,
                                    self.dec(bloqueio))
                        index += 1
                        cont += 1
                if int(id_relatorio) == 3:
                    for y in self.execSql("select_usuarios_promocoes_all2",
                                          id_conteudo=int(i['id_conteudo'])):
                        endereco = "{0}, {1}, {2}, {3}, {4}". format(y['endereco'],
                                                                     y['numero'],
                                                                     y['bairro'],
                                                                     y['estado'],
                                                                     y['cep'])
                        sheet.write(index + 1,
                                    0,
                                    self.dec(y['nome']))
                        sheet.write(index + 1,
                                    1,
                                    self.dec(y['email']))
                        sheet.write(index + 1,
                                    2,
                                    self.dec(y['cpf']))
                        sheet.write(index + 1,
                                    3,
                                    self.dec(y['telefone']))
                        sheet.write(index + 1,
                                     4,
                                     self.dec(endereco))
                        sheet.write(index + 1,
                                    5,
                                    y['dhora_participacao'])
                        index += 1
                        cont += 1

                if cont:
                    index += 2
                    sheet.write(index, 0, 'Total', style)
                    sheet.write(index,
                                1,
                                cont)
                    total_geral += cont
                    index += 1
                    sheet.write(index, 0, u'Total Participações', style)
                    sheet.write(index,
                                1,
                                count_participacoes)

                else:
                    index += 2
                    sheet.write(index, 0, 'Total', style)
                    sheet.write(index,
                                1,
                                cont)
                    index += 2


      
            index += 6
            sheet.write_merge(index, index, 0, 1, "Total Geral", style0) 
            index += 1   
            sheet.write(index, 0, "Total de Participantes", style)
            sheet.write(index, 1, self.dec(total_geral), style)
            index += 1
            sheet.write(index, 0, u"Total de Participações Geral", style)
            sheet.write(index, 1, self.dec(count), style)

        else:
            if int(id_relatorio) == 4:
                cont = 0
                titulo_promo = self._getConteudo(id_promocao)['titulo']
                sheet.write_merge(0, 0, 0, 5, u"Relação de partcipantes da promoção " + titulo_promo.decode('latin1'), style0)
                campos_s1 = [{"nome":"Nome"},
                             {"email":"email"},
                             {"cpf":"CPF"},
                             {"telefone":"Telefone"},                             
                             {"endereco":u"Endereço"},
                             {"status":"Status"}                            
                             ]
                saveplace = ("{0}/ns{1}/arquivos/tmp/{2}{3}.xls").format(str(settings.PATH_FILES),
                                                str(self.id_site),
                                                unicode(titulo + '_' + titulo_promo, errors='ignore'),
                                                timename)
                saveurl = "{0}tmp/{1}{2}.xls".format(base, unicode(titulo + '_' + titulo_promo, errors='ignore'), timename)                           
                index += 1
                for j in range(len(campos_s1)):
                        sheet.write(index, j, campos_s1[j].values()[0], style)
                        sheet.col(j).width = 30 * 256
                for i in self.execSql("select_usuarios_promocoes_all2",
                                      id_conteudo=int(id_promocao)):
                    endereco = "{0}, {1}, {2}, {3}, {4}". format(i['endereco'],
                                                                 i['numero'],
                                                                 i['bairro'],
                                                                 i['estado'],
                                                                 i['cep'])
                    sheet.write(index + 1,
                                        0,
                                        self.dec(i['nome']))
                    sheet.write(index + 1,
                                        1,
                                        self.dec(i['email']))
                    sheet.write(index + 1,
                                        2,
                                        self.dec(i['cpf']))
                    sheet.write(index + 1,
                                        3,
                                        self.dec(i['telefone']))
                    sheet.write(index + 1,
                                        4,
                                        self.dec(endereco))
                    sheet.write(index + 1,
                                        5,                                        
                                        self.dec(i['status']))    
                    index += 1
                    cont += 1
            else:
                cont = 0
                sheet.write_merge(0, 0, 0, 5, u"Relação de usuários contemplados", style0)
                campos_s1 = [{"nome":"Nome"},
                             {"email":"email"},
                             {"cpf":"CPF"},
                             {"telefone":"Telefone"},
                             {"endereco":u"Endereço"},
                             {"Contemplações":u"Contemplações"}]
                index += 1
                for j in range(len(campos_s1)):
                        sheet.write(index, j, campos_s1[j].values()[0], style)
                        sheet.col(j).width = 30 * 256
                for i in self.execSql("select_contemplados"):
                    endereco = "{0}, {1}, {2}, {3}, {4}". format(i['endereco'],
                                                                 i['numero'],
                                                                 i['bairro'],
                                                                 i['estado'],
                                                                 i['cep'])
                    sheet.write(index + 1,
                                        0,
                                        self.dec(i['nome']))
                    sheet.write(index + 1,
                                        1,
                                        self.dec(i['email']))
                    sheet.write(index + 1,
                                        2,
                                        self.dec(i['cpf']))
                    sheet.write(index + 1,
                                        3,
                                        self.dec(i['telefone']))
                    sheet.write(index + 1,
                                        4,
                                        self.dec(endereco))    

                    sheet.write(index + 1,
                                        5,
                                        self.dec(i['total']))
                    index += 1
                    cont += 1

            index += 6
            sheet.write(index, 0, u"Total de usuários", style)
            sheet.write(index, 1, self.dec(cont), style)

        book.save(saveplace)
        return saveurl
Example #5
0
    def _getUltimasNoticias(self, hash, limit=20, offset=0,
                                  d1=None, d2=None, qw=None,
                                  exportar=None, render=None,
                                  tags=[], corpo=None):
        """
        """
        if type(hash) is not list:
            hash = [hash]

        portal = Portal(id_site=self.id_site,
                        request=self.request)

        site = getDadosSite(id_site=self.id_site,
                            request=self.request)
        base = site["base_html"]
        base_img = site["base_img"]

        items = portal._listarConteudoApp(id_site=self.id_site,
                                          hash=hash,
                                          comentario=False,
                                          acesso=False,
                                          acesso24h=None,
                                          voto=False,
                                          keywords=qw,
                                          de=d1,
                                          ate=d2,
                                          tags=tags,
                                          limit=limit,
                                          offset=offset,
                                          render=render)
        itens = []
        idcs = []
        idcsd = {}
        items_ = [i for i in items["itens"] 
                                if idcs.append(str(i["id_conteudo"])) or 1]
        if idcs:
            for i in self.execSql("select_svgs",
                                  id_conteudos=buffer(",".join(idcs))):
                idcsd[i["id_conteudo"]] = i

        for i in items_:

            if idcsd.get(i["id_conteudo"]):
                i["audio"] = idcsd.get(i["id_conteudo"])["audio"]
                i["video"] = idcsd.get(i["id_conteudo"])["video"]
                i["galeria"] = idcsd.get(i["id_conteudo"])["galeria"]
            else:
                i["audio"] = None
                i["video"] = None
                i["galeria"] = None

            if corpo:
                res = i["serialized"]()
                if res:
                    corpo = self._formatarCorpo(corpo=res["dados"]["corpo"],
                                                fotos=res["dados"]["foto"],
                                                editor=res["dados"]["editor"],
                                                base_img=base_img)
                    i["corpo"] = corpo
                    i["titulo_categoria"] = res["dados"]["titulo_categoria"]
                    i["autor_nome"] = None
                    i["autor_email"] = None
                    i["autor_grupo"] = None

                    if res["dados"]["autor"]:
                        for x in self.execSql("select_autor_noticia",
                                             id_conteudo=i["id_conteudo"]):
                            i["autor_nome"] = x["nome"]
                            i["autor_email"] = x["email"]
                            i["autor_grupo"] = x["grupo"]
                            break

                    i["serialized"] = res

            itens.append(i)

        return {"res":itens, "qtde":items["qtde"]}
Example #6
0
    def cadastrar(self, e, nome, ultimo, apelido, sexo, nascimento, 
                cpf_cnpj, senha, confirma, rua, numero, complemento, 
                bairro, cidade, estado, cep, ddd, fone, captcha,
                timefutebol=None, ddi="", ramal="", codigo="", tipo_tel="1",
                tipo_end="1", rg="", pais="Brasil", 
                master="", expiracao="", pessoa="F", id_servico=None):
        """
         erros:
          1 - ja existe o email
          2 - dados incorretos
          3 - erro nao definido
          4 - codigo incorreto
          5 - ja existe login
        sucesso:
          1 - cadastro efetuado

        """
        session = self._getAppSession()
        capt = captcha.lower()
        captcha = session.getCaptchaSession(captcha.upper())
        validacao = self.vercad(e)
        if validacao:
            res = {"type":"error",
                   "description":"email ja existente",
                   "id":"1"}
        else:
            if captcha:
                errs = 0
                try:
                    numero = numero
                except:
                    numero = None
                try:
                   fone = fone.replace("-", "")
                except:
                   fone = None
                try:
                   ddd = ddd
                except:
                   ddd = None
                try:
                   cep = cep.replace("-", "")
                except:
                   cep = None
                from publica.utils.cpf import CPF
                er = ""
                if e.find("@") < 0 or (len(e) > 64 or len(e) == 0):
                    errs = 1
                    er+="email "
                elif len(nome) > 64 or len(nome) == 0:
                    errs = 1
                    er+="nome "
                elif len(ultimo) > 64 or len(ultimo) == 0:
                    errs = 1
                    er+="sobrenome "
                elif len(apelido) > 32 or len(apelido) == 0:
                    errs = 1
                    er+="apelido "
                elif sexo not in ("F", "M"):
                    errs = 1
                    er+=" sexo "
                elif nascimento == None:
                    errs = 1
                    er+="nascimento "
                elif not CPF(cpf_cnpj).isValid():
                    errs = 1
                    er+="cpf "
                elif not (len(senha) >= 6 and len(senha) < 32) or (senha != confirma):
                    errs = 1
                    er+="senha "
                elif len(rua) > 64 or len(rua) == 0:
                    errs = 1
                    er+"rua "
                elif numero == None:
                    errs = 1
                    er+="numero "
                elif len(complemento) > 32:
                    errs = 1
                    er+="complemento "
                elif len(bairro) > 64 or len(bairro) == 0:
                    errs = 1
                    er+="bairro "
                elif len(cidade) > 64 or len(cidade) == 0:
                    errs = 1
                    er+="cidade "
                elif len(estado) > 32 or len(estado) == 0:
                    errs = 1
                    er+="estado "
                elif cep == None:
                    errs = 1
                    er+="cep "
                elif ddd == None:
                    errs = 1
                    er+="ddd "
                elif fone == None:
                    errs = 1
                    er+="fone "
                if errs:
                    res = {"type":"error",
                           "description":"dados incorretos "+er,
                           "id":"2"}
                
                else:                   
                    nome = nome + " " + ultimo
                    nlogin = e.find('@')
                    login = e[ :nlogin]
                    verlogin = self.verLogin(login)
                    if verlogin:
                        res = {"type": "error",
                                "description": "Login existe",
                                "id":"5"}
                    elif not verlogin:
                        tempHash = session.cadastrarUser(login=login,
                                                        master=master,
                                                        email=e,
                                                        nome=nome,
                                                        apelido=apelido,
                                                        sexo=sexo,
                                                        dt_expiracao=expiracao,
                                                        dt_nascimento=nascimento,
                                                        cpfcnpj=cpf_cnpj,
                                                        pessoa= pessoa,
                                                        contato=fone,
                                                        rg=rg,
                                                        senha=senha,
                                                        rua=rua,
                                                        numero=numero,
                                                        complemento=complemento,
                                                        bairro=bairro,
                                                        cidade=cidade,
                                                        estado=estado,
                                                        cep=cep,
                                                        pais=pais,
                                                        tipo_end=tipo_end,
                                                        ddi=ddi,
                                                        ddd=ddd,
                                                        telefone=fone.replace('-',''),
                                                        tipo_tel=tipo_tel,
                                                        ramal=ramal,
                                                        codigo_externo=codigo)
                        site = getDadosSite(id_site=self.id_site,
                                             request=self.request)
                        if not id_servico:
                            link = ("%splug/da_centrallogin/%s,%s/validaCad?codigo=%s"
                                                % (site["base_dinamico"],
                                                   self.id_plugin,
                                                   self.id_site,
                                                   tempHash))
                        else:
                            link = ("%splug/da_centrallogin/%s,%s/validaCad?codigo=%s&serv=%s"
                                                % (site["base_dinamico"],
                                                   self.id_plugin,
                                                   self.id_site,
                                                   tempHash,
                                                   id_servico))    
                        msg = msg3 % {"link":link,
                                      "title":self.dados["titulo"]}
                        email = Email()
                        email.enviarEmail(subject=msg12 % self.dados["titulo"],
                                              to=e,
                                              fro=self.dados["from_host"],
                                              text=msg,
                                              returnpath=self.dados["return_path"],
                                              host=self.dados["smtp_host"],
                                              port=self.dados["smtp_port"],
                                              type="text/html")
                        res = {"type": "ok",
                                "description": "cadastro efetuado com sucesso",
                                "id":"1"}
                    else:
                        res = {"type":"error",
                               "description":"erro nao definido",
                               "id":"3"}
            else:
                res = {"type": "error",
                       "description": "codigo incorreto",
                       "id": "4"}  
        return res
Example #7
0
    def _action(self, id_treeapp, schema, id_conteudo, link,
                      add=None, edit=None, delete=None, dados={}):
        """
        """
        if not link:
            return
        portal = Portal(id_site=self.id_site,
                        request=self.request)
        link = "/".join( link.split("/")[:-1] )
        
        src = portal._readFile(path="htmls/%s/index.xml" % link)
        if src:
            
            fd = open("%s%s,%s,%s.xml" % (self.dados["path"],
                                         schema,
                                         self.id_site,
                                         id_conteudo), "w")
            
            soup = BeautifulSoup(src,
                                 fromEncoding=settings.GLOBAL_ENCODING)

            for item in soup.findAll("rdf:description"):
                if add:
                    site = getDadosSite(id_site=self.id_site,
                            request=self.request)
                    base = site["base_html"]
                    tit = portal._getConteudoSite(env_site=self.id_site,
                                                  id_conteudo=id_conteudo, 
                                                  schema=schema)['url']
                    item.__setitem__("rdf:about", base+tit)
                ## push para alertar usuário de uma notícia importante
                ## Neste metodo sempre envia false
                tag = Tag(soup, "dc:push", [])
                tag['rdf:enviar'] = 'false'
                item.insert(0, tag)


                if add:
                    status = "added"
                elif edit:
                    status = "edited"
                elif delete:
                    status = "deleted"
                else:
                    status = "added"
                tag = Tag(soup, "dc:status", [])
                tag.insert(0, status)
                item.insert(0, tag)


                dadosite = getDadosSite(self.id_site)

                veiculo = dadosite["titulo"]
                tag = Tag(soup, "dc:veiculo", [])
                tag.insert(0, veiculo)
                item.insert(0, tag)

                base_img = dadosite["base_app"]
                tag = Tag(soup, "dc:base_img", [])
                tag.insert(0, base_img)
                item.insert(0, tag)

                src = unicode(soup)
                src = src.replace("<?xml version='1.0' encoding='utf-8'?>",
                                  "<?xml version='1.0' encoding='latin1'?>")

            fd.write(src.encode(settings.GLOBAL_ENCODING))
            fd.close()