Beispiel #1
0
 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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
 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)
Beispiel #5
0
    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)
Beispiel #6
0
 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)
Beispiel #7
0
 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)
Beispiel #8
0
 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)
Beispiel #9
0
    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)
Beispiel #10
0
    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
Beispiel #11
0
    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)
Beispiel #12
0
 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)
Beispiel #13
0
 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)
Beispiel #14
0
 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)
Beispiel #15
0
    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)