Exemplo n.º 1
0
 def _send_invites(self, email, user, comunidades):
     #Cria nova chave que sera utilizada pelo usuario convidado
     magic_data = _EMPTYKEYS()
     magic_data['user'] = user
     newKey = GenMagicKey()
     magic_data['magic'] = newKey
     magic_data['email'] = email
     magic_data['comunidades'] = comunidades
     magic_data['data_convite'] = str(datetime.now())
     model.MAGKEYS[newKey] = magic_data
     
     # Atualiza a lista de chaves emitidas pelo usuário que fez o convite
     user_data = _EMPTYMEMBER()
     user_data.update(core.database.REGISTRY[user])
     user_data["mykeys"].append(newKey)
     core.database.REGISTRY[user] = user_data
     
     # Guarda log com o convite enviado
     invite_data = _EMPTYINVITES()
     if user in model.INVITES:
         invite_data.update(model.INVITES[user])
     invite_data["convites_enviados"].append (
                      { "email": email,
                        "data_cri": magic_data['data_convite'] }
     )
     model.INVITES[user] = invite_data
     
     # envia e-mail com convite
     msg = enviaConvite(self, user, email, newKey)
Exemplo n.º 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")