コード例 #1
0
ファイル: views.py プロジェクト: raquelpanapalen/registration
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})
コード例 #2
0
ファイル: signals.py プロジェクト: tarasyarema/myhackupc
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()
コード例 #3
0
ファイル: views.py プロジェクト: yananda93/registration
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'))
コード例 #4
0
ファイル: views.py プロジェクト: tarasyarema/myhackupc
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})