def editBookmark(self, user, newtitle, newdesc, newtags): # preserva tags anteriores old_tags = self.tags self.title = newtitle self.description = newdesc self.tags = newtags self.alterado_por = user self.data_alt = str(datetime.now()) self.save() # compara as tags anteriores com as modificadas, atualizando a lista de tags no BD data_tag = str(datetime.now()) if self.title: nome = self.title else: url = self.url url = remove_special_chars(remove_diacritics(url.replace(" ","_"))) nome = url for tag in self.tags: if tag not in old_tags: addTag(tag, self.registry_id, user, "bookmarks", self.id, nome, data_tag) for tag in old_tags: if tag not in self.tags: removeTag(remove_diacritics(tag.lower()), "bookmarks", self.id)
def post(self, registry_id, name_id): user = self.get_current_user() _va = model.Videoaula().retrieve_by_name_id(registry_id, name_id) if _va: old_tags = _va.tags _va.tags = splitTags(self.get_argument("tags","")) data_tag = str(datetime.now()) for tag in _va.tags: if tag not in old_tags: addTag(tag, registry_id, user, "videoaula", registry_id+"/"+name_id, str_limit(remove_html_tags(_va.titulo), 50), data_tag) for tag in old_tags: if tag not in _va.tags: removeTag(remove_diacritics(tag.lower()), "videoaula", id) _va.data_alt = str(datetime.now()) _va.alterado_por = user _va.save() log.model.log(user, u'alterou uma videoaula de', objeto=registry_id, tipo="videoaula") self.redirect(r"/videoaula/edit/%s/%s" % (registry_id, name_id)) else: raise HTTPError(404)
def deletePost(self, user, permanently=False): registry_id = self.registry_id post_id = self.post_id tags = self.tags if permanently: # se permanentemente, deleta self.delete() #remove os comentários deste post for row in database.COMMENT.view('blog/all_comments',startkey=[self.id],endkey=[self.id, {}]): (doc_id, comment_id) = row.key _comment = BlogComment(comment_id) _comment.delete() else: # se não, cria entrada no histórico marcando a página como removida self.historico.append(dict( conteudo=_CONTEUDO_REMOVIDO, alterado_por=user, data_alt=str(datetime.now()) )) self.save() #remove as tags #TODO? Mover tags para historico for tag in tags: removeTag(remove_diacritics(tag.lower()), "blog", self.id)
def get(self): user = self.get_current_user() mblog_id = self.get_argument("id","") self._mblog = model.Mblog().retrieve(mblog_id) if not self._mblog: raise HTTPError(404) return registry_id = self._mblog.registry_id owner = self._mblog.owner if user != owner: raise HTTPError(403) return # remove o post try: tags = self._mblog.tags self._mblog.delete() for tag in tags: removeTag(remove_diacritics(tag.lower()), "mblog", mblog_id) except Exception as detail: self.render("home.html", MSG=u"Erro: %s" % detail, REGISTRY_ID=registry_id, NOMEPAG="microblog") return log.model.log(user, u'removeu uma mensagem do mblog de', objeto=registry_id, tipo="none") self.redirect("/mblog/%s" % registry_id)
def deleteWiki(self, user, permanently=False): registry_id = self.registry_id nomepag_id = self.nomepag_id parent = self.parent_folder tags = self.tags if permanently or self.is_folder=="S": # se é um folder, remove-o self.delete() else: # se é uma página, cria entrada no histórico marcando a página como removida self.historico.append(dict( conteudo=_CONTEUDO_REMOVIDO, alterado_por=user, data_alt=str(datetime.now()) )) # toda página removida vai para a pasta raiz self.parent_folder = "" self.save() #remove as tags for tag in tags: removeTag(remove_diacritics(tag.lower()), "wiki", self.id) # remove da lista de filhos do pai if parent: parent_obj = Wiki().retrieve(registry_id+"/"+parent) parent_obj.removeItemFromParent(user, nomepag_id)
def deleteFile(self, user): #print "self.filename=", self.filename filename = self.filename filename = filename.replace("%20"," ") #Corrigindo problema de upload de arquivo com espaço em branco filesize = self.filesize(unquote(filename)) #print "self.filename=", self.filename #print "filesize=", filesize registry_id = self.registry_id parent = self.parent_folder filename_id = self.id.split("/")[1] try: tags = self.tags self.delete() # vai para o tags.model for tag in tags: removeTag(remove_diacritics(tag.lower()), "file", self.id) except Exception as detail: return (True, detail) # remove da lista de filhos do pai if parent: parent_obj = Files().retrieve(registry_id+"/"+parent) parent_obj.removeItemFromParent(user, filename_id) # atualiza o espaço ocupado por arquivos deste usuário/comunidade _reg = core.model.Registry().retrieve(self.registry_id) _reg.updateUploadSize(-filesize) return (False, None)
def deleteBookmark(self): tags = self.tags self.delete() # atualiza tabela de tags # vai para o tags.model for tag in tags: removeTag(remove_diacritics(tag.lower()), "bookmarks", self.id)
def deleteGlossaryItem(self): tags = self.tags self.delete() # atualiza tabela de tags # vai para o tags.model for tag in tags: removeTag(remove_diacritics(tag.lower()), "glossary", self.id)
def deleteTopic(self): registry_id = self.registry_id name_id = self.name_id tags = self.tags self.delete() #remove as tags for tag in tags: removeTag(remove_diacritics(tag.lower()), "forum", registry_id+"/"+name_id)
def post(self, registry_id, post_id): user = self.get_current_user() doc_id = '/'.join([registry_id, post_id]) self._blog = model.Blog().retrieve(doc_id) if self._blog: msg = "" self._blog.titulo = self.get_argument("titulo","") if self._blog.titulo == "": msg += u"O título do Post não pode ser vazio.<br/>" old_tags = self._blog.tags self._blog.tags = splitTags(self.get_argument("tags","")) self._blog.conteudo = self.get_argument("conteudo","") if self._blog.conteudo == "": msg += u"O conteúdo do Post não pode ser vazio.<br/>" if msg: self.render("modules/blog/blog-form.html", NOMEPAG="blog", REGISTRY_ID=registry_id, BLOGDATA=self._blog, MSG=msg) return else: data_tag = str(datetime.now()) for tag in self._blog.tags: if tag not in old_tags: addTag(tag, registry_id, user, "blog", doc_id, self._blog.titulo, data_tag) for tag in old_tags: if tag not in self._blog.tags: removeTag(remove_diacritics(tag.lower()), "blog", doc_id) # registro da atualização self._blog.data_alt = str(datetime.now()) self._blog.alterado_por = user historico_inicial = dict() historico_inicial["data_alt"] = self._blog.data_alt historico_inicial["alterado_por"] = user historico_inicial["conteudo"] = self._blog.conteudo self._blog.historico.append(historico_inicial) # limita o número de versões no histórico em BLOG_HISTORY_SIZE history_len = len(self._blog.historico) if history_len > BLOG_HISTORY_SIZE: inicio = history_len - BLOG_HISTORY_SIZE self._blog.historico = self._blog.historico[inicio:history_len] self._blog.save() log.model.log(user, u'alterou o blog', objeto=doc_id, tipo="blog") self.redirect("/blog/%s" % doc_id) else: self.render("home.html", MSG=u"Post não encontrado: ele pode ter sido removido por outro usuário enquanto você editava-o", REGISTRY_ID=registry_id, NOMEPAG="blog") return
def saveTopic(self, id=None, old_tags=None): if id==None: self.save() else: self.save(id=id) # compara as tags anteriores com as modificadas, atualizando a lista de tags no BD data_tag = str(datetime.now()) for tag in self.tags: if old_tags==None or tag not in old_tags: addTag(tag, self.registry_id, self.owner, "forum", self.registry_id+"/"+self.name_id, self.titulo, data_tag) if old_tags != None: for tag in old_tags: if tag not in self.tags: removeTag(remove_diacritics(tag.lower()), "forum", registry_id+"/"+name_id)
def saveWiki(self, id=None, old_tags=None): if id==None: self.save() else: self.save(id=id) # folders não possuem tags if self.is_folder!="S": # compara as tags anteriores com as modificadas, atualizando a lista de tags no BD data_tag = str(datetime.now()) for tag in self.tags: if old_tags==None or tag not in old_tags: addTag(tag, self.registry_id, self.owner, "wiki", self.id, self.nomepag, data_tag) if old_tags != None: for tag in old_tags: if tag not in self.tags: removeTag(remove_diacritics(tag.lower()), "wiki", self.id)
def editGlossaryItem(self, user, newdef, newtags): # preserva tags anteriores old_tags = self.tags self.definition = newdef self.tags = newtags self.alterado_por = user self.data_alt = str(datetime.now()) self.save() # compara as tags anteriores com as modificadas, atualizando a lista de tags no BD data_tag = str(datetime.now()) for tag in self.tags: if tag not in old_tags: addTag(tag, self.registry_id, user, "glossary", self.id, self.term, data_tag) for tag in old_tags: if tag not in self.tags: removeTag(remove_diacritics(tag.lower()), "glossary", self.id)
def editFile(self, user, newdesc, newtags): # preserva tags anteriores old_tags = self.tags self.description = newdesc self.tags = newtags self.alterado_por = user self.data_alt = str(datetime.now()) self.save() # compara as tags anteriores com as modificadas, atualizando a lista de tags no BD data_tag = str(datetime.now()) nome = self.description if self.description else self.filename for tag in self.tags: if tag not in old_tags: addTag(tag, self.registry_id, user, "file", self.id, nome, data_tag) for tag in old_tags: if tag not in self.tags: removeTag(remove_diacritics(tag.lower()), "file", self.id)
def deleteFile(self): #filename = self.filename #filename = filename.replace("%20"," ") #Corrigindo problema de upload de arquivo com espaço em branco #filesize = self.filesize(unquote(filename)) registry_id = self.registry_id try: tags = self.tags self.delete() # vai para o tags.model for tag in tags: removeTag(remove_diacritics(tag.lower()), "studio", self.id) except Exception as detail: return (True, detail) # atualiza o espaço ocupado por arquivos deste usuário/comunidade #_reg = core.model.Registry().retrieve(self.registry_id) #_reg.updateUploadSize(-filesize) return (False, None)