def edit_support(request, obj_id): """TODO Add docstring.""" ctx = { 'user': request.user, 'title': "Update Support", 'support': Support.objects.get(id=obj_id) } if ctx['user'].is_staff: url = '/support/edit/admin/%s/' % str(ctx['support'].id) return HttpResponseRedirect(url) if ctx['user'] != ctx['support'].user: return render(request, 'no_edit.html', ctx) if ctx['support'].user == ctx['user']: if request.method == "POST": ctx['form'] = SupportForm(data=request.POST, files=request.FILES, instance=ctx['support']) if ctx['form'].is_valid(): ctx['support'] = ctx['form'].save(commit=False) ctx['support'].last_modified_by = ctx['user'].username ctx['support'].save() url = '/support/show/%s/' % str(ctx['support'].id) return HttpResponseRedirect(url) else: ctx['form'] = SupportForm(instance=ctx['support']) else: ctx['url'] = '/accounts/not_authorized/' return render(request, 'edit/edit.html', ctx)
def create_support(request): """TODO Add docstring.""" ctx = { 'user': request.user, 'title': "Create a New Support Issue", 'supports': Support.objects.all() } if request.method == "POST": ctx['form'] = SupportForm(data=request.POST, files=request.FILES) if ctx['form'].is_valid(): if 'files' in request.FILES: ctx['files'] = request.FILES['files'] ctx['files'].user = ctx['user'] ctx['support'] = ctx['form'].save(commit=False) ctx['support'].user = ctx['user'] ctx['support'].created_by = ctx['user'].username ctx['support'].last_modified_by = ctx['user'].username ctx['support'].save() desc = ctx['support'].the_description send_mail( 'TRACI Support Request', 'A TRACI Support Request Has Been Submitted. Here is the ' + f'description of the issue: {desc}', ctx['support'].weblink, ['*****@*****.**'], fail_silently=False) url = '/support/show/%s/' % str(ctx['support'].id) return HttpResponseRedirect(url) else: ctx['form'] = SupportForm() return render(request, 'create/create.html', ctx)
def test_invalid_form_message(self): data = { 'name': 'TestSupport', 'email': '*****@*****.**', 'telephone': '123 000 00 00', 'subject': 'Test case', 'message': '' } request = self.factory.get('/support/') request.user = None form = SupportForm(data=data, request=request) self.assertFalse(form.is_valid())
def test_invalid_form(self): data_form = { 'name': 'TestSupport', 'email': '', 'telephone': '123 000 00 00', 'subject': 'Test case', 'message': 'this is only a test' } request = self.factory.get('/support/') request.user = self.user form = SupportForm(data=data_form, request=request) self.assertFalse(form.is_valid())
def test_valid_form(self): data_form = { 'name': 'TestSupport', 'email': '*****@*****.**', 'telephone': '123 000 00 00', 'subject': 'Test case', 'message': 'this is only a test', 'unique_reference': 'mock', } request = self.factory.get('/support/') request.user = self.user form = SupportForm(data=data_form, request=request) self.assertTrue(form.is_valid())
def ajax_form(request): if not request.is_ajax(): raise Http404 json = {'success': False} if request.method == 'POST': form = SupportForm(request.POST) if form.is_valid(): try: send_support_mail(request, form) json['success'] = True except smtplib.SMTPException: pass return HttpResponse(simplejson.dumps(json), mimetype='application/json')
def form(request): # if request.is_ajax(): # return ajax_form(request) error = False if request.method == 'POST': form = SupportForm(request.user, request.POST) if form.is_valid(): try: send_support_mail(request, form) return HttpResponseRedirect(reverse('support-success')) except smtplib.SMTPException: error = True else: form = SupportForm(request.user) return render_to_response('support/form.html', { 'form': form, 'error': error, }, context_instance=RequestContext(request))
def support(request): if request.method == "POST": form = SupportForm(request.POST) if form.is_valid(): model_instance = form.save(commit=False) model_instance.save() return redirect(reverse("supportdone")) else: form = SupportForm() return render(request, 'supports/support.html', {'form': form})
# pylint: skip-file # test_data/support_forms.py (GSC_ESSENR) # !/usr/bin/env python3 # coding=utf-8 """ This file contains static, pre-filled forms for running Hatch Test Cases """ from support.forms import SupportForm SUPPORT_PASS_ONE = SupportForm() SUPPORT_PASS_ONE.id = 1 SUPPORT_PASS_ONE.subject = "subject" SUPPORT_PASS_ONE.the_description = "the_description" SUPPORT_PASS_ONE.weblink = "main/support.html"