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