From ce702bcd69bb9f37fa52618482ef5176a83aaaac Mon Sep 17 00:00:00 2001 From: Nazar Kotjuk Date: Mon, 26 Oct 2015 17:26:07 +0200 Subject: [PATCH] django messages refactor --- django_messages/expomap_views.py | 98 +++++++++++++++++--------------- proj/urls.py | 1 - 2 files changed, 53 insertions(+), 46 deletions(-) diff --git a/django_messages/expomap_views.py b/django_messages/expomap_views.py index 3f8f7736..eed66462 100644 --- a/django_messages/expomap_views.py +++ b/django_messages/expomap_views.py @@ -1,18 +1,20 @@ # -*- coding: utf-8 -*- +import json from django.http import HttpResponseRedirect, HttpResponse -from django.shortcuts import render_to_response, get_object_or_404 -from django.views.generic import ListView, DetailView, TemplateView, FormView -from accounts.models import User - +from django.shortcuts import get_object_or_404 +from django.views.generic import TemplateView, FormView from django.db.models import Q from django.utils import timezone -from forms import ComposeForm, ReplyForm, SendForm +from accounts.models import User +from forms import ReplyForm, SendForm from models import Message -import json class InboxView(TemplateView): - template_name = 'accounts/messages.html' + """ + returns template with user messages + """ + template_name = 'client/accounts/messages.html' def get_context_data(self, **kwargs): context = super(InboxView, self).get_context_data(**kwargs) @@ -20,51 +22,18 @@ class InboxView(TemplateView): context['senders'] = [{'sender': s, 'message': Message.objects.filter(recipient=self.request.user, sender=s)[0]}\ for s in senders] reply_form = ReplyForm() - context['reply_form'] = reply_form return context -def message_reply(request, message_id): - response = {'success': False} - if request.POST: - - form = ReplyForm(request.POST) - if form.is_valid(): - parent_msg =get_object_or_404(Message, id=message_id)# Message.objects.get(id=parent) - form.save(sender=request.user, parent_msg=parent_msg) - response['success'] = True - return HttpResponse(json.dumps(response), content_type='application/json') - - else: - return HttpResponse('error') - return HttpResponse('not ajax') - - -def send_message(request, url): - response = {'success': False} - try: - url = int(url) - recipient = get_object_or_404(User, id=url) - except ValueError: - - recipient = get_object_or_404(User, url=url) - if request.POST: - form = SendForm(request.POST) - if form.is_valid(): - form.save(sender=request.user, recipient=recipient) - response['success'] = True - return HttpResponse(json.dumps(response), content_type='application/json') - - else: - return HttpResponse('error') - return HttpResponse('not ajax') class MessageHistory(FormView): - template_name = 'accounts/messages_history.html' + """ + returns message history with one user and form to reply to it + """ + template_name = 'client/accounts/messages_history.html' form_class = ReplyForm success_url = '' - def get_initial(self): return {'recipient':self.kwargs.get('user_id')} @@ -84,13 +53,13 @@ class MessageHistory(FormView): def form_invalid(self, form): user_id = self.kwargs.get('user_id') return HttpResponseRedirect('/profile/messages/history/'+user_id+'/') + def form_valid(self, form): form.save(sender=self.request.user) user_id = self.kwargs.get('user_id') return HttpResponseRedirect('/profile/messages/history/'+user_id+'/') - """ class ReplyView(FormView): form_class = ComposeForm @@ -108,3 +77,42 @@ class ReplyView(FormView): context['parent_msg'] = parent_msg return context """ + + +def message_reply(request, message_id): + """ + reply to message + """ + response = {'success': False} + if request.POST: + form = ReplyForm(request.POST) + if form.is_valid(): + parent_msg = get_object_or_404(Message, id=message_id) + form.save(sender=request.user, parent_msg=parent_msg) + response['success'] = True + return HttpResponse(json.dumps(response), content_type='application/json') + else: + return HttpResponse('error') + return HttpResponse('not ajax') + + +def send_message(request, url): + """ + send message to user with url=url + """ + response = {'success': False} + try: + url = int(url) + recipient = get_object_or_404(User, id=url) + except ValueError: + + recipient = get_object_or_404(User, url=url) + if request.POST: + form = SendForm(request.POST) + if form.is_valid(): + form.save(sender=request.user, recipient=recipient) + response['success'] = True + return HttpResponse(json.dumps(response), content_type='application/json') + else: + return HttpResponse('error') + return HttpResponse('not ajax') \ No newline at end of file diff --git a/proj/urls.py b/proj/urls.py index 946cb6ca..1ba05638 100644 --- a/proj/urls.py +++ b/proj/urls.py @@ -60,7 +60,6 @@ urlpatterns = patterns('', url(r'^gallery/', include('photologue.client_urls')), url(r'^', include('file.urls')), url(r'^', include('django_messages.expomap_urls')), - url(r'^messages/', include('django_messages.urls')), url(r'^advertising/$', AdvertisingView.as_view(), {'meta_id':58}), url(r'^about/$', AboutView.as_view(), {'meta_id':56}), url(r'^partners/$', AboutView.as_view(), {'meta_id':57}),