コード例 #1
0
ファイル: views.py プロジェクト: Socialsquare/Franklin
def new_user_input_details(request):
    form = None

    if request.POST:
        form = UserInfoForm(request.POST, instance=request.user)

        if form.is_valid():
            userinfo = form.save()

            request.user.has_been_welcomed = True
            request.user.save()

            # request.user.userinfo = userinfo

            # request.user.description = form.description
            # request.user.save()

            return HttpResponseRedirect(reverse('new_user_topics'))

    else:
        form = UserInfoForm(instance=request.user)

    return render(request, 'new_user_input_details.html', {
        'form': form,
        'form_action': reverse('new_user_input_details'),
    })
コード例 #2
0
ファイル: views.py プロジェクト: pawciobiel/Franklin
def new_user_input_details(request):
    form = None

    if request.POST:
        form = UserInfoForm(request.POST, instance=request.user)

        if form.is_valid():
            userinfo = form.save()

            request.user.has_been_welcomed = True
            request.user.save()

            # request.user.userinfo = userinfo

            # request.user.description = form.description
            # request.user.save()

            return HttpResponseRedirect(reverse('new_user_topics'))

    else:
        form = UserInfoForm(instance=request.user)

    return render(request, 'new_user_input_details.html', {
        'form': form,
        'form_action': reverse('new_user_input_details'),
    })
コード例 #3
0
ファイル: views.py プロジェクト: Socialsquare/Franklin
def profile(request, user_id=None):

    form = None

    if request.POST:
        form = UserInfoForm(request.POST, instance=request.user)
        if form.is_valid():
            userinfo = form.save()
            # Update the primary email if changed!
            primary_emailaddress = EmailAddress.objects.get_primary(userinfo)
            if primary_emailaddress and primary_emailaddress.email != userinfo.email:
                primary_emailaddress.change(request, userinfo.email)

    if user_id is None:
        profile_user = request.user
        form = UserInfoForm(instance=request.user)
    else:
        profile_user = get_object_or_404(User, pk=user_id)

    newest_skills = profile_user.skills_completed.all()[:3]
    other_skills_count = profile_user.skills_completed.count() - 3

    if request.user == profile_user:
        own_profile = True

        trainingbits_completed = request.user.trainingbits_completed.values_list('pk', flat=True)

        skills_in_progress_w_percentage = []
        skills_in_progress = request.user.skills_in_progress.filter(is_draft=False).prefetch_related('trainingbits')
        for skill in skills_in_progress:
            tbs = skill.trainingbits.all()
            incompleted_count = len(set([t.pk for t in tbs]) - set(trainingbits_completed))
            total_count = len(tbs)
            if total_count == 0:
                percentage = 0
            else:
                percentage = 1.0 - (incompleted_count / total_count)
                percentage *= 100
            skill.percentage = percentage
            skills_in_progress_w_percentage.append((skill, int(percentage)))

        trainingbits_in_progress = request.user.trainingbits_in_progress.filter(is_draft=False)

        in_progress_dict = {
            'skills_in_progress_w_percentage': skills_in_progress_w_percentage,
            'skills_in_progress': skills_in_progress,
            'trainingbits_in_progress': trainingbits_in_progress,
        }
    else:
        own_profile = False
        in_progress_dict = {}

    projects = list(profile_user.project_set.filter(is_deleted=False, trainingbit__is_draft=False) \
                   .order_by('-created_at').select_related('trainingbit').prefetch_related('comment_set')[:12])
    project_list0 = projects[0::3]
    project_list1 = projects[1::3]
    project_list2 = projects[2::3]

    template_dict = {
        'own_profile': own_profile,
        'profile_user': profile_user,
        'newest_skills': newest_skills,
        'other_skills_count': other_skills_count,
        'project_list0': project_list0,
        'project_list1': project_list1,
        'project_list2': project_list2,
        'hide_comments': True,
        'form': form,
        'form_action': reverse('profile'),
    }
    template_dict.update(in_progress_dict)

    return render(request, 'profile.html', template_dict)
コード例 #4
0
ファイル: views.py プロジェクト: pawciobiel/Franklin
def profile(request, user_id=None):

    form = None

    if request.POST:
        form = UserInfoForm(request.POST, instance=request.user)
        if form.is_valid():
            userinfo = form.save()
            # Update the primary email if changed!
            primary_emailaddress = EmailAddress.objects.get_primary(userinfo)
            if primary_emailaddress and primary_emailaddress.email != userinfo.email:
                primary_emailaddress.change(request, userinfo.email)

    if user_id is None:
        profile_user = request.user
        form = UserInfoForm(instance=request.user)
    else:
        profile_user = get_object_or_404(User, pk=user_id)

    newest_skills = profile_user.skills_completed.all()[:3]
    other_skills_count = profile_user.skills_completed.count() - 3

    if request.user == profile_user:
        own_profile = True

        trainingbits_completed = request.user.trainingbits_completed.values_list(
            'pk', flat=True)

        skills_in_progress_w_percentage = []
        skills_in_progress = request.user.skills_in_progress.filter(
            is_draft=False).prefetch_related('trainingbits')
        for skill in skills_in_progress:
            tbs = skill.trainingbits.all()
            incompleted_count = len(
                set([t.pk for t in tbs]) - set(trainingbits_completed))
            total_count = len(tbs)
            if total_count == 0:
                percentage = 0
            else:
                percentage = 1.0 - (incompleted_count / total_count)
                percentage *= 100
            skill.percentage = percentage
            skills_in_progress_w_percentage.append((skill, int(percentage)))

        trainingbits_in_progress = request.user.trainingbits_in_progress.filter(
            is_draft=False)

        in_progress_dict = {
            'skills_in_progress_w_percentage': skills_in_progress_w_percentage,
            'skills_in_progress': skills_in_progress,
            'trainingbits_in_progress': trainingbits_in_progress,
        }
    else:
        own_profile = False
        in_progress_dict = {}

    projects = list(profile_user.project_set.filter(is_deleted=False, trainingbit__is_draft=False) \
                   .order_by('-created_at').select_related('trainingbit').prefetch_related('comment_set')[:12])
    project_list0 = projects[0::3]
    project_list1 = projects[1::3]
    project_list2 = projects[2::3]

    template_dict = {
        'own_profile': own_profile,
        'profile_user': profile_user,
        'newest_skills': newest_skills,
        'other_skills_count': other_skills_count,
        'project_list0': project_list0,
        'project_list1': project_list1,
        'project_list2': project_list2,
        'hide_comments': True,
        'form': form,
        'form_action': reverse('profile'),
    }
    template_dict.update(in_progress_dict)

    return render(request, 'profile.html', template_dict)