Beispiel #1
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 #2
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 #3
0
 def saveGlossaryItem(self, id=None):
     self.save(id=id)
 
     # atualiza tabela de tags
     # vai para o tags.model
     data_tag = str(datetime.now())
     for tag in self.tags:
         addTag(tag, self.registry_id, self.owner, "glossary", self.id, self.term, data_tag)
Beispiel #4
0
def processa_tags (id, mblog_data):
    tag_list = list(set(re.findall(r"#\w+", mblog_data["conteudo"], re.UNICODE)))
    data_tag = str(datetime.now())
    for i in range(len(tag_list)):
        tag_list[i] = tag_list[i].lstrip('#')
        addTag(tag_list[i], mblog_data["registry_id"], mblog_data["owner"], "mblog", id, mblog_data["conteudo"], data_tag)
        
    return tag_list
Beispiel #5
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 #6
0
 def restoreVersion (self, versao):
     self.historico.append(dict(
         conteudo       = self.historico[versao]["conteudo"],
         data_alt       = self.historico[versao]["data_alt"],
         alterado_por   = self.historico[versao]["alterado_por"]
         ))
     self.save()
     
     # recria tags do documento restaurado se ele foi removido anteriormente
     if self.historico[-2]["conteudo"] == _CONTEUDO_REMOVIDO:
         for tag in self.tags:
             addTag(tag, self.registry_id, self.owner, "wiki", self.id, self.nomepag, self.historico[-1]["data_alt"])        
Beispiel #7
0
    def post(self, registry_id):
        user = self.get_current_user()
        self._blog = model.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/>"
        else:
            self._blog.post_id = remove_special_chars(remove_diacritics(self._blog.titulo.replace(" ","_")))
            if self._blog.post_id == "":
                msg += u"Título do Post inválido<br/>"
                
        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:
            self._blog.data_cri = str(datetime.now())
            self._blog.data_alt = self._blog.data_cri

            # A chave _id do documento no couchdb é nome/pagina
            doc_id = '/'.join([registry_id,self._blog.post_id])

            self._blog.registry_id = registry_id
            self._blog.owner = 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)
            
            try:
                self._blog.save(id=doc_id)
            except Exception as detail:
                self.render("modules/blog/blog-form.html", NOMEPAG="blog", REGISTRY_ID=registry_id, BLOGDATA=self._blog, \
                            MSG=u"Já existe um post com este título.")
                return
            
            data_tag = str(datetime.now())
            for tag in self._blog.tags:
                addTag(tag, registry_id, user, "blog", doc_id, self._blog.titulo, data_tag)

            log.model.log(user, u'escreveu no blog', objeto=doc_id, tipo="blog")
            self.redirect("/blog/%s" % doc_id)
Beispiel #8
0
    def post(self, registry_id):
        user = self.get_current_user()
        msg = ""
        
        _topic = model.Topic()
        _topic.titulo = self.get_argument("titulo","")
        if _topic.titulo == "":
            msg += u"O título do tópico não pode ser vazio.<br/>"
        else:
            _topic.name_id = remove_special_chars(remove_diacritics(_topic.titulo.replace(" ","_")))
            if _topic.name_id == "":
                msg += u"Título do tópico inválido<br/>"
               
        if model.Topic.exists(registry_id, _topic.name_id):
            msg += u"Já existe um tópico com este nome"
                
        _topic.tags = splitTags(self.get_argument("tags",""))
        
        _topic.conteudo = self.get_argument("conteudo","")
        if _topic.conteudo == "":
            msg += u"O conteúdo do tópico não pode ser vazio.<br/>"
        
        if msg:
            self.render("modules/forum/forum-form.html", NOMEPAG="forum", REGISTRY_ID=registry_id, TOPICO=_topic, MSG=msg)
            return
                
        else:
            _topic.receber_email = self.get_argument("receber_email", "N")
            _topic.data_cri = str(datetime.now())
            _topic.data_alt = _topic.data_cri
            _topic.service = "forum"
            _topic.type = "topic"

            doc_id = uuid4().hex

            _topic.registry_id = registry_id
            _topic.owner = user
            _topic.alterado_por = user
             
            try:
                _topic.save(id=doc_id)
            except Exception as detail:
                self.render("modules/forum/forum-form.html", NOMEPAG="forum", REGISTRY_ID=registry_id, TOPICO=_topic, \
                            MSG=u"Já existe um tópico neste forum com este título.")
                return
            
            data_tag = str(datetime.now())
            for tag in _topic.tags:
                addTag(tag, registry_id, user, "forum", registry_id+"/"+_topic.name_id, _topic.titulo, data_tag)

            log.model.log(user, u'criou um tópico no forum', objeto=registry_id, tipo="forum")
            self.redirect("/forum/%s" % registry_id)
Beispiel #9
0
    def saveFile(self, id, files):
        self.save(id=id)
        
        # cria versões da imagem
        # ícone N -> thumbnail P (imagem recortada) 30X40
        imagem_n = thumbnail(files["arquivo"][0]["body"], "P") 
        if not imagem_n:
            return False

        # ícone P -> thumbnail G (imagem recortada) 120X160
        imagem_p = thumbnail(files["arquivo"][0]["body"], "G")  
        if not imagem_p:
            return False

        # ícone M -> resizeImage P (imagem reduzida) 240X180 preservando aspect ratio original
        imagem_m = resizeImage(files["arquivo"][0]["body"], "P")  
        if not imagem_m:
            return False
        
        # ícone G -> resizeImage G (imagem reduzida) 1024X768 preservando aspect ratio original
        imagem_g = resizeImage(files["arquivo"][0]["body"], "G") 
        if not imagem_g:
            return False
        
        database.STUDIO.put_attachment(database.STUDIO[id],
                                    imagem_n,
                                    "imgN.png",
                                    "image/png")
        database.STUDIO.put_attachment(database.STUDIO[id],
                                    imagem_p,
                                    "imgP.png",
                                    "image/png")
        database.STUDIO.put_attachment(database.STUDIO[id],
                                    imagem_m,
                                    "imgM.png",
                                    "image/png")
        database.STUDIO.put_attachment(database.STUDIO[id],
                                    imagem_g,
                                    "imgG.png",
                                    "image/png")
    
        # atualiza o espaço ocupado por arquivos deste usuário/comunidade
        #_reg = core.model.Registry().retrieve(self.registry_id)
        #_reg.updateUploadSize(len(files["arquivo"][0]["body"]))
        
        # atualiza tabela de tags
        # vai para o tags.model
        data_tag = str(datetime.now())
        for tag in self.tags:
            nome = self.description if self.description else self.filename
            addTag(tag, self.registry_id, self.owner, "studio", id, nome, data_tag)
        return True
Beispiel #10
0
 def saveBookmark(self, id=None):
     self.save(id=id)
 
     # atualiza tabela de tags
     # vai para o tags.model
     data_tag = str(datetime.now())
     for tag in self.tags:
         if self.title:
             nome = self.title  
         else:
             url = self.url
             url = remove_special_chars(remove_diacritics(url.replace(" ","_")))
             nome = url
         addTag(tag, self.registry_id, self.owner, "bookmarks", self.id, nome, data_tag)
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 post(self, registry_id):
        user = self.get_current_user()
        _va = model.Videoaula()
        msg = ""
        
        _va.titulo = self.get_argument("name","")
        if _va.titulo == "":
            msg += u"Nome da videoaula não preenchido.<br/>"
                
        _va.arqvideo = self.get_argument("arqvideo","")
        if _va.arqvideo == "":
            msg += u"Arquivo de vídeo não preenchido.<br/>"

        _va.tags = splitTags(self.get_argument("tags",""))

        _va.service = "videoaula"
        _va.type = "videoaula"
        _va.registry_id = registry_id
        _va.name_id = remove_special_chars(remove_diacritics(_va.titulo.replace(" ","_")))

        if model.Videoaula.exists(_va.registry_id, _va.name_id):
            msg += u"Já existe uma videoaula com este nome"

        if msg:
            self.render("modules/videoaula/videoaula-form.html",  NOMEPAG="videoaulas", VIDEODATA=_va, \
                        FOLDERS = files.model.Files.listFolders(user, registry_id, "files/all_data"), \
                        REGISTRY_ID=registry_id, MSG=msg)  
            return
                
        else:
            doc_id = uuid4().hex
            _va.owner = user
            #_va.alterado_por = user

            _va.data_cri = str(datetime.now())
            _va.data_alt = _va.data_cri
            _va.save(id=doc_id)
            
            # Adiciona tags da videoaula ao banco de tags.
            data_tag = str(datetime.now())
            for tag in _va.tags:
                addTag(tag, registry_id, user, "videoaula", registry_id+"/"+_va.name_id, str_limit(remove_html_tags(_va.titulo), 50), data_tag)
            
            log.model.log(user, u'criou videoaula em', objeto=registry_id, tipo="videoaula",link="/videoaula/%s/%s"%(registry_id,_va.name_id))
            self.redirect("/videoaula/edit/%s/%s" % (registry_id,_va.name_id))
Beispiel #13
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 #14
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 #15
0
 def saveFile(self, id, files, attachment=True):
     self.save(id=id)
     if attachment:
         database.FILES.put_attachment(database.FILES[id],
                                       files["arquivo"][0]["body"],
                                       self.filename,
                                       files["arquivo"][0]["content_type"])
 
         # atualiza o espaço ocupado por arquivos deste usuário/comunidade
         _reg = core.model.Registry().retrieve(self.registry_id)
         _reg.updateUploadSize(len(files["arquivo"][0]["body"]))
     
     # folders não possuem tags
     if self.is_folder != "S":
         # atualiza tabela de tags
         data_tag = str(datetime.now())
         for tag in self.tags:
             nome = self.description if self.description else self.filename
             addTag(tag, self.registry_id, self.owner, "file", id, nome, data_tag)
Beispiel #16
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)