Пример #1
0
    def post(self, id_community):
        user = self.get_current_user()
        _comu = core.model.Community().retrieve(id_community)            
        
        if _comu:
            emails = self.get_argument("emails", "").lower()
            #print emails
            #re.split(',|\s', emails)
            #print emails
            email_array = list(set(emails.split()))
            
            users_list = []
            not_users_list = []
            error_list = []
            
            form_convidar = False
            form_chamar = False
                          
            if not email_array:
                self.render("modules/community/searchgroup-form.html", REGISTRY_ID=id_community, TABS=self.setTabs(_comu), \
                            NOMEPAG='participantes', MSG=u"Informe a lista de emails que deseja convidar.")  
                
            else:
                for email in email_array:
                    if not validateEmail(email):
                        error_list.append(email)
                    else:
                        member_list = usersByEmail(email)
                        if member_list:
                            for member in member_list:
                                _member = core.model.Member().retrieve(member)   
                                status = ""
                                if member in _comu.participantes:
                                    status = u"já participa desta comunidade"
                                elif member in _comu.participantes_pendentes:
                                    status = u"já foi convidado"
                                else:
                                    status = "convidar"
                                    form_convidar = True
    
                                users_list.append((member,_member.getFullName(), status, email))
                                users_list = sorted(users_list, key=itemgetter(2), reverse=True)
                        else: 
                            status = ""
                            if email in _comu.participantes_chamados:
                                status = u"já foi chamado"
                            else:
                                status = "chamar"
                                form_chamar = True
    
                            not_users_list.append((email, status))
                            not_users_list = sorted(not_users_list, key=itemgetter(1), reverse=True)

                self.render("modules/community/invitegroup-form.html", REGISTRY_ID=id_community, TABS=self.setTabs(_comu), \
                            EMAILS=emails, \
                            USERSLIST=users_list, NOTUSERSLIST=not_users_list, ERRORLIST=error_list, \
                            FORMCONVIDAR=form_convidar, FORMCHAMAR=form_chamar, \
                            NOMEPAG='participantes', MSG=u"")                            


        else:
            raise HTTPError(404)
Пример #2
0
def showInvitesPage (cls, user, msg, email_list="", community_list=""):
    
    magic_keys = dict()
    forms = dict()

    # processa lista de convidados de um usuário
    for key in core.database.REGISTRY[user]['mykeys']:
        if key in model.MAGKEYS:
            key_data = _EMPTYKEYS()
            key_data.update(model.MAGKEYS[key])
            key_data["datafmt"] = short_datetime (key_data["data_convite"])
            magic_keys[key] = key_data
            

    # para cada formulário...
    for form in model.REQUESTINVITEFORM.view('requestinviteform/all_data',startkey=[user],endkey=[user, {}]):
        form_id = form.key[1]           # registry_id/nome_form
        forms[form_id] = dict(titulo=form.value["titulo"], \
                                      data_inicio=form.value["data_inicio"], \
                                      data_encerramento=form.value["data_encerramento"],
                                      pendentes=[],
                                      recusados=[],
                                      aprovados=[])
        
        # processa suas inscrições pendentes...
        for rqst in model.REQUESTINVITE.view('requestinvitespendentes/all_data',startkey=[user,form_id],endkey=[user,form_id, {}]):
            request_dict = dict(request_id=rqst.value["_id"], 
                                nome=rqst.value["nome"], 
                                email=rqst.value["email"], 
                                campo_livre=rqst.value["campolivre"], 
                                data_cri=short_datetime(rqst.value["data_cri"]))
            forms[form_id]["pendentes"].append(request_dict)
    
        # processa suas inscrições recusadas...
        for rqst in model.REQUESTINVITE.view('requestinvitesrecusados/all_data',startkey=[user,form_id],endkey=[user,form_id, {}]):
            request_dict = dict(request_id=rqst.value["_id"], 
                                nome=rqst.value["nome"], 
                                email=rqst.value["email"], 
                                campo_livre=rqst.value["campolivre"], 
                                data_cri=short_datetime(rqst.value["data_cri"]))
            forms[form_id]["recusados"].append(request_dict)
    
        # processa suas inscrições aprovadas...
        for rqst in model.REQUESTINVITE.view('requestinvitesaprovados/all_data',startkey=[user,form_id],endkey=[user,form_id, {}]):
            # verifica se este email já existe no registry
            usuarios = usersByEmail(rqst.value["email"])
            if usuarios:
                # se encontrar mais de um usuário cadastrado com este email, assume o primeiro encontrado.
                msgUsuario = u"<input type='checkbox' name='users' value='%s'> Usuário já cadastrado: %s" % (usuarios[0], usuarios[0])
            else:
                msgUsuario = u"Convite enviado: aguardando registro do usuário."

            request_dict = dict(request_id=rqst.value["_id"], 
                                nome=rqst.value["nome"], 
                                email=rqst.value["email"], 
                                campo_livre=rqst.value["campolivre"], 
                                msg=msgUsuario,
                                data_cri=short_datetime(rqst.value["data_cri"]))
            forms[form_id]["aprovados"].append(request_dict)
    
    links = []
    if isMember(user, PRIV_CONVIDAR_USUARIOS):
        links.append((u"Novo formulário", "/static/imagens/icones/new32.png", "/invites/createform"))

    cls.render("modules/invites/invites.html", REGISTRY_ID=user, MAGICKEYS=magic_keys, \
                    EMAIL_LIST=email_list, COMMUNITY_LIST=community_list, \
                    REQUESTINVITEFORMS=forms, \
                    IS_ADMIN= isMember(user, PRIV_GLOBAL_ADMIN), \
                    IS_ALLOWED_TO_INVITE= isMember(user, PRIV_CONVIDAR_USUARIOS), \
                    LINKS=links, \
                    MSG=msg, \
                    NOMEPAG="convites")