def _install(self, title, facebook_client_id, facebook_secret, facebook_redirect_url, google_client_id, google_secret, google_redirect_url, twitter_consumer_key, twitter_consumer_secret, 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): """ Método padrão de instalação da aplicação no Publica """ nid = str(time()).replace(".", "") if not self.schema: self.schema = "%s_%s" % (meta_type, nid) self.execSqlu("structure") portal = Portal(id_site=self.id_site, request=self.request) 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)) 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 { "title": title, #facebook "facebook_client_id": facebook_client_id, "facebook_secret": facebook_secret, "facebook_redirect_url": facebook_redirect_url, #google plus "google_client_id": google_client_id, "google_secret": google_secret, "google_redirect_url": google_redirect_url, #twitter "twitter_consumer_key": twitter_consumer_key, "twitter_consumer_secret": twitter_consumer_secret, "rss": rss }
def searchFields(data): # init fix tags from publica.core.portal import Portal portal = Portal(id_site=data["id_site"], request={}) tags = [i["tag"] for i in portal._getTags( id_site=data["id_site"], id_conteudo=data["id_conteudo"], schema=data["schema"], text=None)] data["dados"]["tags"] = tags # end fix tags tags = " ".join(data["dados"].get("tags", [])) tags_ascii = convertascii(tags).replace(" ", "_") return {"published": data["publicado_em"], "meta_type": meta_type, "schema": data["schema"], "id_site": data["id_site"], "id_conteudo": data["id_conteudo"], "id_content": data["id_content"], "id_treeapp": data["id_treeapp"], "id_aplicativo": data["id_aplicativo"], "comment": data["comentario"], "access": data["acesso"], "vote": data["voto"], "title": data["titulo"], "description": data["dados"]["corpo"], "tags": tags, "tags_ascii": tags_ascii, "%s_descricao" % meta_type: data["dados"]["descricao"]}
def editApp(self, title, path_base, hash, 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): """Edita os atributos da instancia """ 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, "path_base":path_base, "hash":hash} portal = Portal(id_site=self.id_site, request=self.request) 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)) portal._editApp(env_site=self.id_site, schema=self.schema, titulo=title, dados=dados) return "Aplicativo configurado com sucesso"
def atualizarDados(self, cidades=[]): """ """ log = "" dados = self._getDados() if not cidades: cidades = dados["cidades"].strip().split("\n") xml = self._getXml(dados["url_xml"]) p = BeautifulStoneSoup(xml) for cidade in cidades: cidade = cidade.strip() if cidade: log += " %s" % cidade prev = self._extrairDados(cidade, p) self._salvarDados(cidade, prev) if dados.get("hash"): portal = Portal(id_site=self.id_site, request=self.request) portal._exportarAppSubOne(env_site=self.id_site, hash=dados["hash"]) self.logmsg = "SoleChuva: Atualizado as cidades: %s" % log return self.logmsg
def getEstabelecimentosPublicados(self, limit=None, offset=None, exportar=1, admin=1): portal = Portal(id_site=self.id_site, request=self.request) res = [] for i in self.execSql("select_estabelecimento_publicado", limit=int(limit), offset=int(offset)): i['url'] = self._getUrlByApp(env_site=self.id_site, schema=self.schema, id_conteudo=i["id_conteudo"], exportar=exportar, admin=admin) i['imagem_destaque'] = portal.getUrlByFile(i['imagem_destaque'], id_site=self.id_site) i["categorias"]=[] for j in self.execSql("select_categoria_estabelecimento", id_conteudo=int(i["id_conteudo"])): categoria = {"id_categoria":j["id_categoria"], "nome":j["nome"]} i["categorias"].append(categoria) res.append(i) qtde = self.execSql("select_estabelecimento_publicado_count").next()["qtde"] return {"itens":res, "qtde": qtde}
def editApp(self, title, 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): """ Método padrão de edição dos dados da aplicação """ 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} portal = Portal(id_site=self.id_site, request=self.request) 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)) return "Aplicativo configurado com sucesso"
def _getDublinCore(self, id_pk): """ """ dados = {"title":"", "created":"", "modified":"", "description":"", "keywords":""} for i in self.execSql("select_dublin_core", id_conteudo=int(id_pk)): portal = Portal(id_site=self.id_site, request=self.request) tags = [j["tag"] for j in portal._getTags(id_site=self.id_site, id_conteudo=int(id_pk), schema=self.schema, text=None)] tags = " ".join(tags) dados["title"] = i["titulo"] dados["created"] = i["publicado_em"] dados["modified"] = i["atualizado_em"] if i["descricao"]: dados["description"] = i["descricao"][:159] else: desc = ''.join(BeautifulSoup(i["corpo"], fromEncoding=settings.GLOBAL_ENCODING).findAll(text=True)) dados["description"] = unicode(desc[:159]).encode(settings.GLOBAL_ENCODING) dados["keywords"] = tags return dados
def _getDublinCore(self, id_pk): """ """ dados = {"title":"", "created":"", "modified":"", "description":"", "keywords":""} for i in self.execSql("select_dublin_core", id_conteudo=int(id_pk)): portal = Portal(id_site=self.id_site, request=self.request) tags = [j["tag"] for j in portal._getTags(id_site=self.id_site, id_conteudo=int(id_pk), schema=self.schema, text=None)] tags = " ".join(tags) dados["title"] = i["titulo"] dados["created"] = i["publicado_em"] dados["modified"] = i["atualizado_em"] if i["descricao"]: dados["description"] = i["descricao"][:80] else: dados["description"] = i["corpo"][:80] dados["keywords"] = tags return dados
def editApp(self, title, 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): """Edita os atributos da instancia """ 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} portal = Portal(id_site=self.id_site, request=self.request) portal._editApp(env_site=self.id_site, schema=self.schema, titulo=title, dados=dados) return "Aplicativo configurado com sucesso"
def editApp(self, title, wad_sid, wad_user, wad_passwd, site, from_host, return_path, titulo, id_servico, url_wsdl, origin_wsdl): """Edita os atributos da instancia """ dados = { "wad_sid":wad_sid, "wad_user":wad_user, "wad_password":wad_passwd, "from_host":from_host, "site":site, "return_path":return_path, "titulo":titulo, "id_servico":int(id_servico), "url_wsdl":url_wsdl, "origin_wsdl":origin_wsdl} portal = Portal(id_site=self.id_site, request=self.request) 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)) return "Aplicativo configurado com sucesso"
def _install(self, title, wad_sid, wad_user, wad_password, site, from_host, return_path, titulo, id_servico, url_wsdl, origin_wsdl): """Adiciona uma instancia do produto """ nid = str(time()).replace(".", "") if not self.schema: self.schema = "%s_%s" % (meta_type, nid) self.execSqlu("structure") portal = Portal(id_site=self.id_site, request=self.request) 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)) return { "wad_sid":wad_sid, "wad_user":wad_user, "wad_password":wad_password, "from_host":from_host, "site":site, "return_path":return_path, "titulo":titulo, "id_servico":int(id_servico), "url_wsdl":url_wsdl, "origin_wsdl":origin_wsdl}
def getProgramaNoAr(self, limit): """ Retorna para o portlet os programas que estão no ar e os proximos """ portal = Portal(id_site=self.id_site, request=self.request) from datetime import datetime, date, time today = datetime.now() hora_atual = str(today.hour)+":"+str(today.minute) data_atual = str(today.date()) res = [] for i in self.execSql("select_programas_no_ar", hora_atual=hora_atual, data_atual=data_atual, limit=int(limit)): if i["link"]: the_link = portal.renderLink(dados=i["link"], exportar=1, render=1) if "[target" in the_link: i['link_target'] = the_link.split("[target")[1].replace("]", "") i['link'] = the_link.split("[target")[0] else: i["link"] = the_link res.append(i) return res
def _getDadosApp(self): """ """ portal = Portal(id_site=self.id_site, request=self.request) return portal._getApp(env_site=self.id_site, schema=self.schema)["dados"]
def editPlug(self, title, wsdl_url, wsdl_origin, id_servico, session_type, session_schema, func_type, func_schema, from_host, return_path, titulo_mail, smtp_host, smtp_port, provedor): """ Edita os atributos do plugin """ dados = {"titulo": title, "wsdl_url": wsdl_url, "wsdl_origin": wsdl_origin, "id_servico": id_servico, "session_type": session_type, "session_schema": session_schema, "func_type": func_type, "func_schema": func_schema, "from_host": from_host, "return_path": return_path, "titulo_mail":titulo_mail, "smtp_host":smtp_host, "smtp_port":smtp_port, "provedor":provedor} portal = Portal(id_site=self.id_site, request=self.request) portal._editPlug(env_site=self.id_site, id_plugin=self.id_plugin, title=title, dados=dados) return "Plugin configurado com sucesso"
def _getDublinCore(self, id_pk): """ Método padrão para a configuração das meta-tags de uma página interna de um determinado conteúdo """ dados = {"title":"", "created":"", "modified":"", "description":"", "keywords":""} for i in self.execSql("select_dublin_core", id_conteudo=int(id_pk)): portal = Portal(id_site=self.id_site, request=self.request) tags = [j["tag"] for j in portal._getTags(id_site=self.id_site, id_conteudo=int(id_pk), schema=self.schema, text=None)] tags = " ".join(tags) dados["title"] = i["titulo"] dados["created"] = i["publicado_em"] dados["modified"] = i["atualizado_em"] if i["descricao"]: dados["description"] = i["description"] return dados
def _setDados(self, id_conteudo): """ """ for conteudo in self.execSql("select_conteudo_dados", id_conteudo=int(id_conteudo)): portal = Portal(id_site=self.id_site, request=self.request) tags = "" url = portal.getUrlByApp(env_site=self.id_site, schema=self.schema, id_conteudo=id_conteudo, exportar=1, admin=1, mkattr=1) dados = {"titulo":conteudo["titulo"], "expira_em":conteudo["expira_em"], "publicado_em":conteudo["publicado_em"], "publicado":conteudo["publicado"], "imagem":conteudo["imagem"], "filiado":conteudo["filiado"], "descricao":conteudo["descricao"], "imagem_destaque":conteudo["imagem_destaque"], "titulo_destaque":conteudo["titulo_destaque"], "descricao_destaque":conteudo["descricao_destaque"], "tags":tags} return dados
def _maisUltimasApp(self, limit=50, offset=0, exportar=None, dt=1, render=None, samesite=None): """ """ portal = Portal(id_site=self.id_site, request=self.request) exportar = self.request.get("exportar") or exportar res = {"qtde":0, "res":[]} for i in self.execSql("select_ultimas_app", schema=self.schema, limit=int(limit), offset=int(offset)): i["url"] = portal.getUrlByApp(env_site=self.id_site, schema=self.schema, id_conteudo=i["id_conteudo"], exportar=exportar, admin=render, samesite=samesite) if dt: i["datetime"] = lambda t, i=i["publicado_em"]:strftime(t, strptime(i, "%Y-%m-%d %H:%M:%S")) res["res"].append(i) res["qtde"] = self.execSql("select_ultimas_app_qtde", schema=self.schema).next()["qtde"] return res
def _install(self, title, 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): """ Método padrão de instalação da aplicação no Publica """ nid = str(time()).replace(".", "") if not self.schema: self.schema = "%s_%s" % (meta_type, nid) self.execSqlu("structure") portal = Portal(id_site=self.id_site, request=self.request) 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)) 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}
def _setDados(self, id_conteudo): """ Método padrão que encapsula os dados de um conteúdo """ portal = Portal(id_site=self.id_site, request=self.request) for i in self.execSql("select_dados", id_conteudo=int(id_conteudo)): tags = [j["tag"] for j in portal._getTags(id_site=self.id_site, id_conteudo=id_conteudo, schema=self.schema, text=None)] dados = {"titulo": i["titulo"], "descricao": i["descricao"], "remuneracao_de": i["remuneracao_de"], "remuneracao_ate": i["remuneracao_ate"], "total_vagas": i["total_vagas"], "descricao_vagas": i["descricao_vagas"], "vagas_especiais": i["vagas_especiais"], "descricao_remuneracao": i["descricao_remuneracao"], "inscricoes": i["inscricoes"], "banca_organizadora": i["banca_organizadora"], "cadastro_reserva": i["cadastro_reserva"], "validade_concurso": i["validade_concurso"], "previsto": i["previsto"], "nivel_escolaridade": i["nivel_escolaridade"], "data_edital": i["data_edital"], "data_inscricao": i["data_inscricao"], "data_fim_inscricao": i["data_fim_inscricao"], "data_prova": i["data_prova"], "data_resultado": i["data_resultado"], "destaque": [], "tags": tags} dados["destaque"].append({"titulo": i["titulo_destaque"], "descricao": i["descricao_destaque"], "img": i["imagem_destaque"]}) url = portal.getUrlByApp(env_site=self.id_site, schema=self.schema, id_conteudo=id_conteudo, exportar=1, admin=1, mkattr=1) return {"titulo": i["titulo"], "meta_type": self.meta_type, "id_conteudo": id_conteudo, "publicado_em": i["publicado_em"], "expira_em": i["expira_em"], "atualizado_em": i["atualizado_em"], "url": url, "creators": [], "dados": dados } return {}
def _getAppAuth(self): """ retorna os dados do app """ portal = Portal(id_site=self.id_site, request=self.request) return portal._getPlug(env_site=self.id_site, id_plugin=self.auth)['app']
def _getPlugCaptcha(self): """ returns plugin captcha """ portal = Portal(id_site=self.id_site, request=self.request) return portal._getPlug(env_site=self.id_site, id_plugin=self.captcha)['app']
def _getAttrNoticia(self, id_noticia): """Retorna dados de relação com o portal da noticia """ portal = Portal(id_site=self.id_site, request=self.request) return portal._getAttrConteudo(id_site=self.id_site, schema=self.schema, id_conteudo=id_noticia)
def _getPlugAuth(self): """ retorna os dados do app """ portal = Portal(id_site=self.id_site, request=self.request) dados = self._getDados() return portal._getPlug(env_site=self.id_site, id_plugin=dados['auth_id'])['app']
def editApp(self, title, facebook_client_id, facebook_secret, facebook_redirect_url, google_client_id, google_secret, google_redirect_url, twitter_consumer_key, twitter_consumer_secret, 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): """ Método padrão de edição dos dados da aplicação """ 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 = { "title": title, #facebook "facebook_client_id": facebook_client_id, "facebook_secret": facebook_secret, "facebook_redirect_url": facebook_redirect_url, #google plus "google_client_id": google_client_id, "google_secret": google_secret, "google_redirect_url": google_redirect_url, #twitter "twitter_consumer_key": twitter_consumer_key, "twitter_consumer_secret": twitter_consumer_secret, "rss": rss } portal = Portal(id_site=self.id_site, request=self.request) 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)) return "Aplicativo configurado com sucesso"
def getTags(self, limit=10): """ """ portal = Portal(id_site=self.id_site, request=self.request) return portal._listarTags(id_site=self.id_site, schema=self.schema, limit=int(limit))
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 _getTags(self, id_conteudo, text=None): """ """ portal = Portal(id_site=self.id_site, request=self.request) for i in portal._getTags(id_site=self.id_site, id_conteudo=int(id_conteudo), schema=self.schema, text=None): yield i
def copyFiles2Temp(self, id_pk, id_site=None): """ """ portal = Portal(id_site=self.id_site, request=self.request) for destaque1 in self.execSql("select_destaque1", id_conteudo=int(id_pk)): if destaque1["imagem"]: portal._copyFile2Temp(arq=destaque["imagem"], id_site=id_site) for destaque2 in self.execSql("select_destaque2", id_conteudo=int(id_pk)): if destaque1["imagem"]: portal._copyFile2Temp(arq=destaque["imagem"], id_site=id_site) for conteudo in self.execSql("select_conteudo_", id_conteudo=int(id_pk)): if conteudo["imagem_destaque"]: portal._copyFile2Temp(arq=conteudo["imagem_destaque"], id_site=id_site) if conteudo["destaque_imagem"]: portal._copyFile2Temp(arq=conteudo["destaque_imagem"], id_site=id_site) return "Arquivos copiados com sucesso!"
def _getProgramasByData(self, data): """ busca todos os programas vinculados a tabela associativa """ portal = Portal(id_site=self.id_site, request=self.request) base = portal._getBases()["base_html"] try: p = strptime(data, "%d/%m/%Y") data = strftime("%Y-%m-%d", p) except ValueError, e: raise UserError(("Ocorreu um erro: " "Data de publicaçåo " "inválida (%s)") % data)
def _setDados(self, id_conteudo): """ Método padrão que encapsula os dados de um conteúdo """ portal = Portal(id_site=self.id_site, request=self.request) for i in self.execSql("select_dados", id_conteudo=int(id_conteudo)): tags = [j["tag"] for j in portal._getTags( id_site=self.id_site, id_conteudo=id_conteudo, schema=self.schema, text=None)] dados = {"titulo":i["titulo"], "editor":i["editor"], "calendario":i["calendario"], "foto_galeria":i["foto_galeria"], "foto_interna":i["foto_interna"], "legenda_foto_interna":i["legenda_foto_interna"], "destaque_capa":i["destaque_capa"], "andamento":i["andamento"], "cadastros":[], "destaque":[], "tags":tags} dados["destaque"].append({"titulo":i["titulo_destaque"], "descricao":i["descricao_destaque"], "img":i["imagem_destaque"]}) for j in self.execSql("select_conteudo_cadastros", id_conteudo=int(id_conteudo)): dados["cadastros"].append(j) url = portal.getUrlByApp(env_site=self.id_site, schema=self.schema, id_conteudo=id_conteudo, exportar=1, admin=1, mkattr=1) return {"titulo":i["titulo"], "meta_type":self.meta_type, "id_conteudo":id_conteudo, "publicado_em":i["publicado_em"], "expira_em":i["expira_em"], "atualizado_em":i["atualizado_em"], "url":url, "creators":[], "dados":dados } return {}