コード例 #1
0
ファイル: question.py プロジェクト: wilkerwma/codeschool
    def stats_route(self, request, **kwargs):
        """
        Shows the stats for each question.
        """

        data = """<dl>
            <dt>Name<dt><dd>{name}<dd>
            <dt>Best grade<dt><dd>{best}<dd>
            <dt>Responses<dt><dd>{n_responses}<dd>
            <dt>Response items<dt><dd>{n_response_items}<dd>
            <dt>Correct responses<dt><dd>{n_correct}<dd>
            <dt>Mean grade responses<dt><dd>{mean}<dd>
            <dt>Context id</dt><dd>{context_id}</dd>
        </dl>
        """.format(
            context_id=self.default_context.id,
            name=self.title,
            best=self.best_final_grade(),
            mean=self.mean_final_grade(),
            n_correct=self.correct_responses().count(),
            n_response_items=self.response_items().count(),
            n_responses=self.responses.count(),
        )

        # Renders content
        context = {'content_body': data,
                   'content_text': 'Stats'}
        return render(request, 'base.jinja2', context)
コード例 #2
0
ファイル: views.py プロジェクト: gutorc92/codeschool
def login(request):
    context = {
        'signin': AuthenticationForm(),
        'signup': SignupForm(),
        'signup_opt': SignupOptionalForm()
    }

    if request.method == 'POST':
        if request.POST['action-type'] == 'signup':
            form = SignupOptionalForm(request.POST)

            if not form.is_valid():
                context['signup'] = SignupOptionalForm(request.POST)
                context['signup_opt'] = form
                context['default_tab'] = 1
            else:
                context['signup_opt'] = SignupOptionalForm(request.POST)
                context['action'] = 'signup'
                context['default_tab'] = 1
                response = views.signup(
                    request,
                    signup_form=SignupForm,
                    template_name='cs_auth/login.jinja2',
                    extra_context=context,
                )

                # It redirects on success: we intercept add the extra
                # information
                if isinstance(response, http.HttpResponseRedirect):
                    # Fill extra info in signup form
                    aux = request.POST
                    success_url = '/accounts/%s' % aux['username']
                    user = User.objects.get(username=aux['username'])
                    user.first_name = aux['first_name']
                    user.last_name = aux['last_name']

                    # Fill extra profile info
                    form = SignupOptionalForm(request.POST)
                    form.is_valid()
                    aux = form.cleaned_data
                    user.profile.about_me = aux['about_me']
                    user.profile.gender = aux['gender']
                    user.profile.date_of_birth = aux['date_of_birth']

                    # Save modifications and go
                    user.save()
                    user.profile.save()

                    return redirect(success_url)
                return response
        else:
            context['action'] = 'signin'
            return views.signin(
                request,
                template_name='cs_auth/login.jinja2',
                extra_context=context,
            )

    return render(request, 'cs_auth/login.jinja2', context)
コード例 #3
0
ファイル: views.py プロジェクト: gutorc92/codeschool
def course_subscribe(request):
    context = dict(
        user=request.user,
        courses=models.Course.objects
            .filter(is_active=True)
            .exclude(pk__in=request.user.enrolled_courses.all())
    )
    return render(request, 'cs_courses/course-subscribe.jinja2', context)
コード例 #4
0
ファイル: views.py プロジェクト: gutorc92/codeschool
def login(request):
    context = {'signin': AuthenticationForm(),
               'signup': SignupForm(),
               'signup_opt': SignupOptionalForm()}

    if request.method == 'POST':
        if request.POST['action-type'] == 'signup':
            form = SignupOptionalForm(request.POST)

            if not form.is_valid():
                context['signup'] = SignupOptionalForm(request.POST)
                context['signup_opt'] = form
                context['default_tab'] = 1
            else:
                context['signup_opt'] = SignupOptionalForm(request.POST)
                context['action'] = 'signup'
                context['default_tab'] = 1
                response = views.signup(
                        request,
                        signup_form=SignupForm,
                        template_name='cs_auth/login.jinja2',
                        extra_context=context,
                )

                # It redirects on success: we intercept add the extra
                # information
                if isinstance(response, http.HttpResponseRedirect):
                    # Fill extra info in signup form
                    aux = request.POST
                    success_url = '/accounts/%s' % aux['username']
                    user = User.objects.get(username=aux['username'])
                    user.first_name = aux['first_name']
                    user.last_name = aux['last_name']

                    # Fill extra profile info
                    form = SignupOptionalForm(request.POST)
                    form.is_valid()
                    aux = form.cleaned_data
                    user.profile.about_me = aux['about_me']
                    user.profile.gender = aux['gender']
                    user.profile.date_of_birth = aux['date_of_birth']

                    # Save modifications and go
                    user.save()
                    user.profile.save()

                    return redirect(success_url)
                return response
        else:
            context['action'] = 'signin'
            return views.signin(
                    request,
                    template_name='cs_auth/login.jinja2',
                    extra_context=context,
            )

    return render(request, 'cs_auth/login.jinja2', context)
コード例 #5
0
 def route_gradebook(self, request):
     user = request.user
     gradebook = self.get_gradebook(user)
     gradebook.title = _('Gradebook')
     context = {
         'object': gradebook,
         'short_description': gradebook.title,
         'long_description': _('List of grades'),
         'detail_object': gradebook,
         'verbose_name': _('Gradebook'),
     }
     template = 'cs_questions/user_gradebook.jinja2'
     return render(request, template, context)
コード例 #6
0
ファイル: question_list.py プロジェクト: jonnatas/codeschool
 def route_gradebook(self, request):
     user = request.user
     gradebook = self.get_gradebook(user)
     gradebook.title = _('Gradebook')
     context = {
         'object': gradebook,
         'short_description': gradebook.title,
         'long_description': _('List of grades'),
         'detail_object': gradebook,
         'verbose_name': _('Gradebook'),
     }
     template = 'cs_questions/user_gradebook.jinja2'
     return render(request, template, context)
コード例 #7
0
ファイル: question.py プロジェクト: wilkerwma/codeschool
    def response_list_route(self, request):
        """
        Renders a list of responses
        """

        user = request.user
        context = self.get_context(request)
        items = self.response_items(user=user, context='any')
        items = (x.get_real_instance() for x in items)
        context.update(
            question=self,
            object_list=items,
        )
        return render(request, 'cs_questions/response-list.jinja2', context)
コード例 #8
0
ファイル: views.py プロジェクト: gutorc92/codeschool
    def view_edit_key(self, question, key):
        key = question.answer_keys.get(pk=key)
        self.context.update({
            'question': question,
            'language': key.language,
            'key': key,
        })

        if self.request.method == 'POST':
            form = AnswerKeyEditForm(self.request.POST, instance=key)
            if form.is_valid():
                key = form.save()
                key.update()
                return redirect('../../edit')
        else:
            form = AnswerKeyEditForm(instance=key)

        self.context['form'] = form

        return render(self.request, 'cs_questions/io/edit-key.jinja2', self.context)
コード例 #9
0
ファイル: views.py プロジェクト: gutorc92/codeschool
    def view_edit_key(self, question, key):
        key = question.answer_keys.get(pk=key)
        self.context.update({
            'question': question,
            'language': key.language,
            'key': key,
        })

        if self.request.method == 'POST':
            form = AnswerKeyEditForm(self.request.POST, instance=key)
            if form.is_valid():
                key = form.save()
                key.update()
                return redirect('../../edit')
        else:
            form = AnswerKeyEditForm(instance=key)

        self.context['form'] = form

        return render(self.request, 'cs_questions/io/edit-key.jinja2',
                      self.context)
コード例 #10
0
ファイル: views.py プロジェクト: gutorc92/codeschool
    def view_add_key(self, question):
        used_langs = question.answer_keys.select_related('language')
        languages = ProgrammingLanguage.objects.exclude(pk__in=used_langs)

        self.context.update(question=question, languages=languages)

        if self.request.method == 'POST':
            form = AnswerKeyAddForm(self.request.POST)
            if form.is_valid():
                key = question.answer_keys.create(
                        source=form.cleaned_data['source'],
                        placeholder=form.cleaned_data['placeholder'],
                        language=form.cleaned_data['language'],
                )
                key.update()
                return redirect('../edit')
        else:
            form = AnswerKeyAddForm()

        self.context['form'] = form

        return render(self.request, 'cs_questions/io/add-key.jinja2', self.context)
コード例 #11
0
ファイル: views.py プロジェクト: gutorc92/codeschool
    def view_add_key(self, question):
        used_langs = question.answer_keys.select_related('language')
        languages = ProgrammingLanguage.objects.exclude(pk__in=used_langs)

        self.context.update(question=question, languages=languages)

        if self.request.method == 'POST':
            form = AnswerKeyAddForm(self.request.POST)
            if form.is_valid():
                key = question.answer_keys.create(
                    source=form.cleaned_data['source'],
                    placeholder=form.cleaned_data['placeholder'],
                    language=form.cleaned_data['language'],
                )
                key.update()
                return redirect('../edit')
        else:
            form = AnswerKeyAddForm()

        self.context['form'] = form

        return render(self.request, 'cs_questions/io/add-key.jinja2',
                      self.context)
コード例 #12
0
ファイル: views.py プロジェクト: gutorc92/codeschool
def course_subscribe(request):
    context = dict(
        user=request.user,
        courses=models.Course.objects.filter(is_active=True).exclude(
            pk__in=request.user.enrolled_courses.all()))
    return render(request, 'cs_courses/course-subscribe.jinja2', context)