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 create_draft_application(sender, instance, *args, **kwargs): dict = model_to_dict(instance) for key in ['user', 'invited_by', 'submission_date', 'status_update_date', 'status', 'resume']: dict.pop(key, None) d = models.DraftApplication() d.user = instance.user d.save_dict(dict) d.save()
def callback(request, provider=None): if not provider: messages.error(request, 'Invalid URL') return HttpResponseRedirect(reverse('root')) if request.user.is_authenticated: return HttpResponseRedirect(reverse('root')) code = request.GET.get('code', '') if not code: messages.error(request, 'Invalid URL') return HttpResponseRedirect(reverse('root')) try: access_token = providers.auth_mlh(code, request) mlhuser = providers.get_mlh_user(access_token) except ValueError as e: messages.error(request, str(e)) return HttpResponseRedirect(reverse('root')) user = User.objects.filter(mlh_id=mlhuser.get('id', -1)).first() if user: auth.login(request, user) elif User.objects.filter(email=mlhuser.get('email', None)).first(): messages.error( request, 'An account with this email already exists. Sign in using your password.' ) else: user = User.objects.create_mlhuser( email=mlhuser.get('email', None), name=mlhuser.get('first_name', '') + ' ' + mlhuser.get('last_name', None), mlh_id=mlhuser.get('id', None), ) auth.login(request, user) # Save extra info draft = a_models.DraftApplication() draft.user = user mlhdiet = mlhuser.get('dietary_restrictions', '') diet = mlhdiet if mlhdiet in dict(a_models.DIETS).keys() else 'Others' draft.save_dict({ 'degree': mlhuser.get('major', ''), 'university': mlhuser.get('school', {}).get('name', ''), 'phone_number': mlhuser.get('phone_number', ''), 'tshirt_size': [ k for k, v in a_models.TSHIRT_SIZES if v == mlhuser.get('shirt_size', '') ][0], 'diet': mlhdiet, 'other_diet': mlhdiet if diet == 'Others' else '', }) draft.save() return HttpResponseRedirect(reverse('root'))
def save_draft(request): Application = VIEW_APPLICATION_TYPE.get(request.user.type, models.HackerApplication) ApplicationForm = VIEW_APPLICATION_FORM_TYPE.get(request.user.type, forms.HackerApplicationForm) d = models.DraftApplication() d.user = request.user form_keys = set(dict(ApplicationForm().fields).keys()) valid_keys = set([field.name for field in 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})