|
|
|
|
@ -20,43 +20,11 @@ class ContactUsFormView(SuccessMessageMixin, FormView): |
|
|
|
|
success_message = _('Request has been sent successfully!') |
|
|
|
|
error_message = _('Some errors occurred during sending the request. Check the input fields or try latter.') |
|
|
|
|
|
|
|
|
|
def get_initial(self): |
|
|
|
|
initial = super().get_initial() |
|
|
|
|
if self.request.method == "GET": |
|
|
|
|
initial['type'] = RequestType.objects.order_by('order').first() |
|
|
|
|
if self.request.user.is_authenticated(): |
|
|
|
|
initial['name'] = self.request.user.profile.get_full_name(self.request, self.request.user.profile) |
|
|
|
|
initial['email'] = self.request.user.email |
|
|
|
|
return initial |
|
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
|
try: |
|
|
|
|
with transaction.atomic(): |
|
|
|
|
if self.request.user.is_authenticated(): |
|
|
|
|
form.instance.user = self.request.user |
|
|
|
|
form.save() |
|
|
|
|
files = [] |
|
|
|
|
if len(self.request.FILES) > 0: |
|
|
|
|
attachments = AttachmentFormSet(self.request.POST, self.request.FILES, form_kwargs={'request': form.instance}) |
|
|
|
|
if attachments.is_valid(): |
|
|
|
|
attachments.save() |
|
|
|
|
files = attachments.get_file_absolute_urls(self.request) |
|
|
|
|
form.send_email(self.request, files) |
|
|
|
|
return super().form_valid(form) |
|
|
|
|
except ValueError as ve: |
|
|
|
|
logger.critical(ve) |
|
|
|
|
messages.error(self.request, self.error_message, 'danger') |
|
|
|
|
except Exception as e: |
|
|
|
|
logger.critical(e) |
|
|
|
|
messages.error(self.request, self.error_message, 'danger') |
|
|
|
|
|
|
|
|
|
return self.form_invalid(form) |
|
|
|
|
return super().form_valid(form) |
|
|
|
|
|
|
|
|
|
def form_invalid(self, form): |
|
|
|
|
context = self.get_context_data() |
|
|
|
|
if len(form.errors) > 0: |
|
|
|
|
context['form_show_errors'] = True |
|
|
|
|
return self.render_to_response(context) |
|
|
|
|
|
|
|
|
|
def get_success_url(self): |
|
|
|
|
return super().get_success_url() |
|
|
|
|
|