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)
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")