def post(self, request, *args, **kwargs): new_application = True try: form = forms.ApplicationForm(request.POST, request.FILES, instance=request.user.application) new_application = False except: form = forms.ApplicationForm(request.POST, request.FILES) if form.is_valid(): application = form.save(commit=False) application.user = request.user application.save() if new_application: messages.success( request, 'We have now received your application. ' 'Processing your application will take some time, so please be patient.' ) else: messages.success(request, 'Application changes saved successfully!') return HttpResponseRedirect(reverse('root')) else: c = self.get_context_data() c.update({'form': form}) return render(request, self.template_name, c)
def post(self, request, *args, **kwargs): new_application = False try: form = forms.ApplicationForm(request.POST, request.FILES, instance=request.user.application) new_application = ('submit' in request.POST) and ( request.user.application.status == models.APP_SAVED) except: form = forms.ApplicationForm(request.POST, request.FILES) if form.is_valid(): application = form.save(commit=False) application.user = request.user if 'submit' in request.POST: application.status = models.APP_PENDING application.save() if new_application: m = emails.create_application_email(application) m.send() messages.success( request, 'We have now received your application. ' 'Processing your application will take some time, so please be patient.' ) else: messages.success(request, 'Application changes saved successfully!') return HttpResponseRedirect(reverse('application')) else: c = self.get_context_data() c.update({'form': form}) return render(request, self.template_name, c)
def get_context_data(self, **kwargs): context = super(HackerApplication, self).get_context_data(**kwargs) application = get_object_or_404(models.Application, user=self.request.user) deadline = get_deadline(application) context.update( {'invite_timeleft': deadline - timezone.now(), 'form': forms.ApplicationForm(instance=application)}) return context
def save_draft(request): d = models.DraftApplication() d.user = request.user form_keys = set(dict(forms.ApplicationForm().fields).keys()) valid_keys = set([field.name for field in models.Application()._meta.get_fields()]) d.save_dict(dict((k, v) for k, v in request.POST.items() if k in valid_keys.intersection(form_keys) and v)) d.save() return JsonResponse({'saved': True})
def post(self, request, *args, **kwargs): try: form = forms.ApplicationForm(request.POST, request.FILES, instance=request.user.application) except: form = forms.ApplicationForm(request.POST, request.FILES) if form.is_valid(): application = form.save(commit=False) application.user = request.user application.save() messages.success(request, 'Application changes saved successfully!') return HttpResponseRedirect(reverse('application')) else: c = self.get_context_data() c.update({'form': form}) return render(request, self.template_name, c)
def get_context_data(self, **kwargs): context = super(HackerDashboard, self).get_context_data(**kwargs) try: draft = models.DraftApplication.objects.get(user=self.request.user) form = forms.ApplicationForm(instance=models.Application(**draft.get_dict())) except: form = forms.ApplicationForm() context.update({'form': form}) try: application = models.Application.objects.get(user=self.request.user) deadline = get_deadline(application) context.update({'invite_timeleft': deadline - timezone.now()}) except: # We ignore this as we are okay if the user has not created an application yet pass return context