def save_message(user_id, message): type_name = message.get('type_name') args = message.get('args') file = message.get('file', '') conversation_id = message.get('conversation_id') mt = MessageType.select().where(MessageType.name == type_name).first() u = User.select().where(User.id == user_id).first() cps = ConversationParty.select().where(ConversationParty.conversation == conversation_id) number_of_conversationees = cps.count() if not mt or not u or not cps or not number_of_conversationees: raise InvalidMessageDataException('Couldn\'t save message: invalid message data') m = Message() with database.transaction(): m.conversation = conversation_id m.message_type = mt m.sender_id = user_id m.ts = datetime.now() m.file = file m.content, m.display_content = __save_content(args, mt, user_id, cps) m.save() update_conversation(conversation_id=conversation_id, last_message=m) mark_message_as_read(user_id=user_id, message=m, conversation_id=conversation_id) message_object = get_message_json(message=m) message_object['recipient_ids'] = [cp.user.id for cp in cps] return json.dumps(message_object)
def save_message(type_name, args, file): mt = MessageType.select().where(MessageType.name == type_name).first() if mt: m = Message() m.conversation_party = mt m.ts = datetime.now() m.file = file with models.transactions(): m.save() m.run_constructor(args) m.save() return m else: return None
def post(self, request, **kwargs): file = request.FILES.get('file') content = request.POST.get('message') sender = request.user message = Message() message.file=file # print message.file message.content=content message.receiver = kwargs['receiver'] message.sender=User.objects.get(username=sender) message.sender_full_name = message.sender.userprofile.get_full_name() print message.sender_full_name message.save() # print message # # print message.file # print (request.user) messages = Message.objects.filter(Q(sender=request.user, receiver=kwargs['receiver']) | Q(sender=User.objects.get(username=kwargs['receiver']), receiver=request.user)) messages5 = Message.objects.filter(Q(sender=request.user) | Q(receiver=request.user))[::-1] if len(messages5) <=5: message5 = messages5 else : message5 = messages5[:5] # message5=message5[::-1] # print profile profile = User.objects.filter(username=kwargs['receiver'])[0] auth_form = AuthenticateForm() return render(request, 'message.html', {'messages':messages, 'profile':profile ,'auth_form':auth_form, 'message5':message5})