def setUp(self): self.user1 = User.objects.create_user('user3', '*****@*****.**', '123456') self.user2 = User.objects.create_user('user4', '*****@*****.**', '123456') self.msg1 = Message(sender=self.user1, recipient=self.user2, subject='Subject Text 1', body='Body Text 1') self.msg2 = Message(sender=self.user1, recipient=self.user2, subject='Subject Text 2', body='Body Text 2') self.msg1.sender_deleted_at = datetime.datetime.now() self.msg2.recipient_deleted_at = datetime.datetime.now() self.msg1.save() self.msg2.save()
def view(request, message_id, template_name='dashboard/messages/view_message.html'): user = request.user now = timezone.now() message = get_object_or_404(Message, id=message_id) subject = "Re: {0}".format(message.subject) inbox_list = Message.objects.inbox_for(request.user) if (message.sender != user) and (message.recipient != user): raise Http404 if message.read_at is None and message.recipient == user: message.read_at = now message.save() context = { 'message': message, 'current_page_title': 'View Message', 'inbox_list': inbox_list } if request.method == "POST": sender = request.user form_response = request.POST.dict() form_response.pop('csrfmiddlewaretoken') Message(sender=sender, parent_msg=message, subject=subject, replied_at=now, recipient_id=message.sender.id, **form_response).save() return HttpResponseRedirect(reverse('dashboard:message_inbox')) return render(request, template_name, context)
def save(self, sender, parent_msg=None): recipients = self.cleaned_data['recipient'] subject = self.cleaned_data['subject'] body = self.cleaned_data['body'] message_list = [] for r in recipients: msg = Message( sender=sender, recipient=r, subject=subject, body=body, ) if parent_msg is not None: msg.parent_msg = parent_msg parent_msg.replied_at = datetime.datetime.now() parent_msg.save() msg.save() message_list.append(msg) if notification: if parent_msg is not None: notification.send([sender], "messages_replied", { 'message': msg, }) notification.send([r], "messages_reply_received", { 'message': msg, }) else: notification.send([sender], "messages_sent", { 'message': msg, }) notification.send([r], "messages_received", { 'message': msg, }) return message_list
def save(self, sender, parent_msg=None): recipients = self.cleaned_data['recipient'] subject = self.cleaned_data['subject'] body = self.cleaned_data['body'] message_list = [] msg = Message( sender=sender, recipient=recipients, subject=subject, body=body, ) if parent_msg is not None: msg.parent_msg = parent_msg parent_msg.replied_at = timezone.now() parent_msg.save() msg.save() message_list.append(msg) mail_subject = '{}님이 쪽지를 보냈습니다'.format(sender.nickname) mail_content = '{}님의 쪽지 : {}'.format(sender.nickname, body) # send_mail(mail_subject, mail_content, '*****@*****.**', [recipients.email]) send_email_message_notification.delay(mail_subject, mail_content, user_pk=recipients.pk) if notification: if parent_msg is not None: notification.send([sender], "messages_replied", {'message': msg,}) notification.send([r], "messages_reply_received", {'message': msg,}) else: notification.send([sender], "messages_sent", {'message': msg,}) notification.send([r], "messages_received", {'message': msg,}) return message_list
def save(self, sender, parent_msg=None): if sender is None: raise ValidationError(self.error_messages['empty_sender'], code='empty_sender') recipients = self.cleaned_data['recipient'] subject = self.cleaned_data['subject'] body = self.cleaned_data['body'] message_list = [] for r in recipients: msg = Message( sender = sender, recipient = r, subject = subject, body = body, ) if parent_msg is not None: msg.parent_msg = parent_msg parent_msg.replied_at = timezone.now() parent_msg.save() msg.save() message_list.append(msg) if notification: if parent_msg is not None: notification.send([sender], "messages_replied", {'message': msg,}) notification.send([r], "messages_reply_received", {'message': msg,}) else: notification.send([sender], "messages_sent", {'message': msg,}) notification.send([r], "messages_received", {'message': msg,}) return message_list
def send_message(request, msg_body, msg_subject, msg_receiver): ''' JSON-RPC view : meow.sendMsg Returns True, if the currently authenticated user is successful in sending the message. Inbound parameters: test string 'msg_body' & 'msg_subject'. text string 'msg_receiver' shld be username of MEOW user. Requires authentication to call this function. ''' try: logging.debug('start meow.sendMsg with %s %s %s ' % (msg_body, msg_subject, msg_receiver)) msg_receiver_user = User.objects.all().filter(username=msg_receiver) if len(msg_receiver_user) != 1: return False msg_receiver_user = msg_receiver_user[0] logging.debug(" MSG %s %s %s %s " % (request.user, msg_receiver_user, msg_subject, msg_body)) msg = Message( sender=request.user, recipient=msg_receiver_user, subject=msg_subject, body=msg_body, ) msg.save() return True except: logging.error('meow.sendMsg got exception') return False
def parish_message(request, parish_id): """ Panel edycji parafii dla opiekuna """ data = {} parish = Parish.objects.get(pk=parish_id) saved = False form = ParishMessageForm( initial={'title': '%s, %s' % (parish.name, parish.place)}) if request.method == 'POST': form = ParishMessageForm(request.POST) if form.is_valid(): manager_exists = None try: manager_exists = ParishUser.objects.filter( parish=parish, manager=True)[0].user except: pass from django_messages.models import Message message = Message() message.subject = form.cleaned_data['title'] message.body = form.cleaned_data['body'] message.sender = request.user message.recipient = manager_exists message.sent_at = datetime.utcnow() message.save() saved = True data.update({'parish': parish, 'form': form, 'saved': saved}) return render(request, 'core/parish_message.html', data)
def setUp(self): self.user1 = User.objects.create_user( 'user1', '*****@*****.**', '123456') self.user2 = User.objects.create_user( 'user2', '*****@*****.**', '123456') self.msg1 = Message(sender=self.user1, recipient=self.user2, subject='Subject Text', body='Body Text') self.msg1.save()
def create_recipient_message(self, recipient, message): return Message( owner = recipient, sender = self.sender, to = recipient.username, recipient = recipient, subject = message.subject, body = message.body, thread = message.thread, sent_at = message.sent_at, )
def test_site_filter(self): # ok case msg1 = Message(sender=self.user1, recipient=self.user2, subject='test of site filter', body="test site") msg1.save() self.assertEquals(msg1.recipient, self.user2) # ko case user_uk = Patron(username="******", password="******", email="*****@*****.**") user_uk.save() user_uk.sites.clear() msg2 = Message(sender=self.user1, recipient=user_uk, subject='test of site filter', body="test site") msg2.save() self.assertEquals(msg2.recipient, None)
def test_content_filter(self): body_before = """this is my phone number: 0678987890, +33687898765, 06 87 98 54 67 this is my email: [email protected], [email protected], [email protected]""" msg1 = Message(sender=self.user1, recipient=self.user2, subject='test of content filter', body=body_before) msg1.save() body_after = """this is my phone number: %(rs)s, %(rs)s, %(rs)s this is my email: %(rs)s, %(rs)s, %(rs)s""" % { 'rs': settings.REPLACE_STRING } self.assertEquals(msg1.body, body_after)
def save(self, sender, parent_msg=None): groupname = self.cleaned_data['recipient'] subject = self.cleaned_data['subject'] body = self.cleaned_data['body'] message_list = [] # Added by SFH - Process group messages if present # Group identifiers are in the form "group-offering-12345" or "group-world-3434" if groupname.startswith("group-"): grouptype = groupname.split('-')[1] groupid = groupname.split('-')[2] if grouptype == "offering": offering = Offering.objects.get(course_sec_id=groupid) recipients = [ profile.user for profile in offering.students.all() ] for r in recipients: msg = Message( sender=sender, recipient=r, subject=subject, body=body, ) if parent_msg is not None: msg.parent_msg = parent_msg parent_msg.replied_at = timezone.now() parent_msg.save() msg.save() message_list.append(msg) if notification: if parent_msg is not None: notification.send([sender], "messages_replied", { 'message': msg, }) notification.send([r], "messages_reply_received", { 'message': msg, }) else: notification.send([sender], "messages_sent", { 'message': msg, }) notification.send([r], "messages_received", { 'message': msg, }) return message_list
def save(self, sender, parent_msg=None): recipients = self.cleaned_data['recipient'] subject = self.cleaned_data['subject'] body = self.cleaned_data['body'] message_list = [] for r in recipients: msg = Message( sender=sender, recipient=r, subject=subject, body=body, ) if parent_msg is not None: msg.parent_msg = parent_msg parent_msg.replied_at = datetime.datetime.now() parent_msg.save() msg.save() message_list.append(msg) return message_list
def compose(request, recipient=None): template_name = 'dashboard/messages/compose_message.html' context = {} if request.method == "POST": sender = request.user form_response = request.POST.dict() form_response['recipient'] = HealthierUser.objects.get( id=form_response.get('recipient')) form_response.pop('csrfmiddlewaretoken') message_obj = Message(sender=sender, **form_response) message_obj.save() response_obj = HttpResponseRedirect( reverse('dashboard:message_outbox')) response_obj.set_cookie('status', True) response_obj.set_cookie('message', "Your message has been successfully sent.") return response_obj context['current_page_title'] = "Message Composer" context['recipient'] = Consumer.objects.all( ) if request.user.account_type == "PRO" else Provider.objects.all() return render(request, template_name, context)
def votar(request, perfil_id,caract_id,valorVoto):#falta enviar la notificacion, lo del anonimo miperfil=Perfil.objects.get(usuario=request.user, esActivo=True) pdestino=Perfil.objects.get(pk=perfil_id) tipov=TipoVotacion.objects.get(pk=caract_id) try: verifica = Votacion.objects.get(perfilDestino=pdestino, perfilOrigen=miperfil, tipoVotacion = tipov)#perfil print "Ya has votado" except ObjectDoesNotExist, e: votos=Votacion.objects.filter(perfilDestino=pdestino) print miperfil form = Votacion(perfilOrigen=miperfil,puntuacion=valorVoto) if miperfil.votoAnonimo == True: form.esAnonima=True else: form.esAnonima=False mensaje = Message()#perfilDestino=user Poner destinatario. mensaje.subject=miperfil.alias + " te ha puntuado en " + tipov.nombre mensaje.body=miperfil.alias + " te ha puntuado en " + tipov.nombre + " con una puntuacion de " + valorVoto try: administrador = User.objects.get(username="******")#perfil mensaje.sender=administrador print administrador print request.user except ObjectDoesNotExist, e: mensaje.sender=request.user mensaje.recipient=pdestino.usuario mensaje.sent_at=datetime.datetime.now() mensaje.save()
def comentarios(request): perfildestino = get_object_or_404(Perfil,usuario=request.user, esActivo=True) comentario = Comentario.objects.filter(esChat=False).order_by('-fecha') print perfildestino list = Comentario.objects.filter(perfilDestino=perfildestino, esChat=False, esPrivado=True, estaLeido=False) print list for comentPriv in list: print comentPriv comentPriv2=Comentario.objects.get(pk=comentPriv.id) print comentPriv2 #form = ComentarioLeidoForm(request.POST.get('estaLeido'), request.FILES, instance=comentPriv) #print form #form.estaLeido=True #print form comentPriv2.estaLeido=True comentPriv2.save() mensaje = Message()#perfilDestino=user Poner destinatario. mensaje.subject="Comentario privado al perfil " + comentPriv.perfilDestino.alias + " ha sido leido" mensaje.body="Comentario privado al perfil " + comentPriv.perfilDestino.alias + " enviado desde tu perfil " + comentPriv.perfilOrigen.alias + " ha sido leido. Texto del mensaje: " + comentPriv2.texto try: administrador = User.objects.get(username="******")#perfil mensaje.sender=administrador print administrador print request.user except ObjectDoesNotExist, e: mensaje.sender=request.user mensaje.recipient=comentPriv.perfilOrigen.usuario mensaje.sent_at=datetime.datetime.now() mensaje.save() print True #form.save() print "guardado"
def send_reply(request, msg_body, msg_subject, msg_receiver, parent_id): ''' JSON-RPC view : meow.sendMsgReply Returns True, if the currently authenticated user is successful in sending the reply message. Inbound parameters: test string 'msg_body' & 'msg_subject'. text string 'msg_receiver' shld be username of MEOW user, 'parent_id' shld be the msg id of an existing mesage. Requires authentication to call this function. ''' try: logging.debug('start meow.sendMsgReply with %s %s %s %d ' % (msg_body, msg_subject, msg_receiver, parent_id)) msg_receiver_user = User.objects.all().filter(username=msg_receiver) if len(msg_receiver_user) != 1: return False msg_receiver_user = msg_receiver_user[0] logging.debug(" MSG %s %s %s %s %d" % (request.user, msg_receiver_user, msg_subject, msg_body, parent_id)) msg = Message( sender=request.user, recipient=msg_receiver_user, subject=msg_subject, body=msg_body, ) parent_msg_obj = Message.objects.filter(id=parent_id) if (len(parent_msg_obj) != 1): return False msg.parent_msg = parent_msg_obj[0] msg.save() return True except: logging.error('meow.sendMsgReply got exception') return False
def reply(request, message_id, form_class=ComposeForm, template_name='user/mensajes/redactar.html', success_url=None, recipient_filter=None, quote_helper=format_quote): """ Prepares the ``form_class`` form for writing a reply to a given message (specified via ``message_id``). Uses the ``format_quote`` helper from ``messages.utils`` to pre-format the quote. To change the quote format assign a different ``quote_helper`` kwarg in your url-conf. """ parent = get_object_or_404(Message, id=message_id) user = request.user now = datetime.datetime.now() esta_destinatario = False for destinatario in parent.con_copia.get_query_set(): if destinatario.grupos == None: if destinatario.usuarios.user == user: esta_destinatario = True continue elif destinatario.usuarios == None: if user in destinatario.grupos.user_set.get_query_set(): esta_destinatario = True continue for destinatario in parent.recipient.get_query_set(): if destinatario.grupos == None: if destinatario.usuarios.user == user: esta_destinatario = True continue elif destinatario.usuarios == None: if user in destinatario.grupos.user_set.get_query_set(): esta_destinatario = True continue if (parent.sender != user) and (esta_destinatario == False): raise Http404 if request.method == "POST": sender = request.user form = form_class(request.POST) if form.is_valid(): estado_memo = EstadoMemo.objects.get(nombre='En espera') mensaje = Message( sender=Destinatarios.objects.get(usuarios__user=request.user), subject=request.POST['subject'], body=request.POST['body'], status=estado_memo, parent_msg=parent, ) mensaje.save() dest = [] for i in request.POST['recipient'].split('|'): if not i == '': dest.append(int(i)) for destin in dest: sender = Destinatarios.objects.filter(id=destin) if sender.exists(): mensaje.recipient.add(sender[0]) mensaje.save() mensaje_txt = u"Mensaje enviado exitosamente." # Guardar log de envío de memo LogEntry.objects.create( user_id=request.user.pk, content_type_id=ContentType.objects.get_for_model(Message).id, object_id=mensaje.id, object_repr=repr(mensaje), change_message=mensaje_txt, action_flag=ADDITION) mensaje = mensaje_txt return inbox(request, mensaje) else: cuerpo = u"\n\n%s escribió:\n%s" % (parent.sender, parent.body) recipient = parent.recipient.add(parent.sender) destins = [] for recip in parent.recipient.get_query_set(): destins.append(recip.id) form = form_class( initial={ 'subject': _(u"Re: %(subject)s") % { 'subject': parent.subject }, 'body': cuerpo, 'recipient': destins }) return render_to_response(template_name, { 'tipo': 'Responder', 'request': request, 'form': form, }, context_instance=RequestContext(request))