From c498e23d48548e8048d656677a6b7ee2a9c3fe36 Mon Sep 17 00:00:00 2001 From: Filipp Lepalaan Date: Sun, 18 Oct 2015 23:21:07 +0300 Subject: Fix issue with editing notes and multiple tabs --- servo/forms/notes.py | 6 ++++++ servo/urls/note.py | 13 +++++++++---- servo/views/note.py | 11 +++++------ 3 files changed, 20 insertions(+), 10 deletions(-) (limited to 'servo') diff --git a/servo/forms/notes.py b/servo/forms/notes.py index fb96ff6..d6ed693 100644 --- a/servo/forms/notes.py +++ b/servo/forms/notes.py @@ -3,6 +3,7 @@ import json from django import forms from gsxws import escalations +from django.core.urlresolvers import reverse from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ @@ -32,11 +33,16 @@ class NoteForm(BaseModelForm): choices=note.get_sender_choices(), widget=forms.Select(attrs={'class': 'span12'}) ) + self.fields['body'].widget = AutocompleteTextarea( rows=20, choices=Template.templates() ) + if note.order: + url = reverse('notes-render_template', args=[note.order.pk]) + self.fields['body'].widget.attrs['data-url'] = url + class NoteSearchForm(forms.Form): body = forms.CharField(required=False, label=_('Body contains')) diff --git a/servo/urls/note.py b/servo/urls/note.py index 87f3035..4057f40 100644 --- a/servo/urls/note.py +++ b/servo/urls/note.py @@ -11,10 +11,15 @@ urlpatterns = patterns( url(r'^templates/$', 'templates'), url(r'^new/$', 'edit', name="notes-create"), url(r'^templates/(\d+)/$', 'templates', name='notes-template'), - url(r'^render_template/$', 'render_template', name='notes-render_template'), - url(r'^to/customer/(?P\d+)/new/$', 'edit', name="notes-create_to_customer"), - url(r'^(?P\d+)/toggle/tag/(?P\d+)/$', 'toggle_tag', name="notes-toggle_tag"), - url(r'^(?P\d+)/toggle/(?P[a-z]+)/$', 'toggle_flag', name="notes-toggle_flag"), + url(r'^render/$', 'render_template', name='notes-render_template'), + url(r'^render/(?P\d+)/$', 'render_template', + name='notes-render_template'), + url(r'^to/customer/(?P\d+)/new/$', 'edit', + name="notes-create_to_customer"), + url(r'^(?P\d+)/toggle/tag/(?P\d+)/$', 'toggle_tag', + name="notes-toggle_tag"), + url(r'^(?P\d+)/toggle/(?P[a-z]+)/$', 'toggle_flag', + name="notes-toggle_flag"), url(r'^(?P\d+)/reply/$', 'edit', name="notes-reply"), url(r'^(?P\d+)/edit/$', 'edit', name="notes-edit"), url(r'^(?P\d+)/messages/$', 'list_messages', name="notes-messages"), diff --git a/servo/views/note.py b/servo/views/note.py index 9eb2a4a..19dba8a 100644 --- a/servo/views/note.py +++ b/servo/views/note.py @@ -256,19 +256,18 @@ def delete_note(request, pk): @csrf_exempt -def render_template(request): +def render_template(request, order_id=None): """ Renders the template with this title with the current Service Order as the context """ - content = '' title = request.POST.get('title') tpl = get_object_or_404(Template, title=title) + content = tpl.content - if request.session.get('current_order_id'): - tpl = template.Template(tpl.content) - order = Order.objects.get(pk=request.session['current_order_id']) - content = tpl.render(template.Context({'order': order})) + if order_id: + order = get_object_or_404(Order, pk=order_id) + content = tpl.render(order) return HttpResponse(content) -- cgit v1.2.3