def head(self): try: report = PartReport.get_by_id(int(self.request.GET.get('id', -1))) except ValueError: report = None if not report: self.abort(404) self.abort(200)
def post_save_settings(self): user = self.personalize_page_and_get_enrolled() if not user: return form = self.SettingsForm(self.request.POST) try: report = PartReport.get_by_id(int(form.report_id.data)) except ValueError: report = None if not report: self.abort(404, "That evidence report was not found.") if not self.can_edit(user, report): self.abort(403, "You can't edit that user's report.") if report.assessment_scores: display_field_params = exam_display_choices( report.assessment_scores[0]) form.exam_display.choices = display_field_params['choices'] form.exam_display.default = display_field_params['default'] else: del form.exam_display if not form.validate(): self.redirect('/') return report.units_are_public = form.units_are_public.data report.review_is_public = form.review_is_public.data if report.assessment_scores: report.exam_display = form.exam_display.data report.put() EventEntity.record( 'set-evidence-settings', users.get_current_user(), transforms.dumps({ 'part': report.part, 'slug': report.slug, 'review_is_public': report.review_is_public, 'public': report.units_are_public, 'exam_display': report.exam_display, 'email': user.key().name() })) self.template_value['navbar'] = {} self.template_value['content'] = '''<div class="gcb-aside">OK, saved settings.<br> <a href="/student/home">Back to your account page...</a></div>''' self.render('bare.html')
def get_settings(self): user = self.personalize_page_and_get_enrolled() if not user: return try: report = PartReport.get_by_id(int(self.request.GET.get('id', -1))) except ValueError: report = None if not report: self.abort(404, "That evidence report was not found.") if not self.can_edit(user, report): self.abort(403) form = self.SettingsForm( report_id=report.key().id(), units_are_public=report.units_are_public, exam_display=report.exam_display, review_is_public=report.review_is_public) #if report.part != 4: #del form.review_is_public display_field_params = { 'choices': [('blank', '(Blank)')], 'default': 'blank' } if report.assessment_scores: if len(report.assessment_scores) > 1: logging.warning("Evidence page settings assuming there's just one exam per part, but there is more than one") display_field_params = exam_display_choices( report.assessment_scores[0]) form.exam_display.choices = display_field_params['choices'] form.exam_display.default = display_field_params['default'] self.template_value['report'] = report self.template_value['form'] = form self.template_value['xsrf_token'] = XsrfTokenManager.create_xsrf_token('save_settings') self.template_value['navbar'] = {} self.template_value['action_url'] = '/badges/evidence?action=save_settings' self.template_value['badge_name'] = report._config['name'] self.render('wf_evidence_settings.html')
def get_view(self): try: report = PartReport.get_by_id(int(self.request.GET.get('id', -1))) except ValueError: report = None if not report: self.abort(404) if not report.exam_display: if report.assessment_scores: display_info = exam_display_choices(report.assessment_scores[0]) report.exam_display = display_info['default'] else: report.exam_display = 'blank' self.report = report self.template_value['inline_save'] = lambda: '' self.template_value['navbar'] = {} self.template_value['author'] = self.report.student self.template_value['review_is_public'] = self.report.review_is_public if report.units_are_public: self.template_value['unit_link'] = self._unit_link else: self.template_value['unit_link'] = None self.template_value['no_unit_links'] = True self.template_value['unit_title'] = self._unit_title self.unit_num = None try: if report.units_are_public: self.unit_num = int(self.request.GET.get('unit', '')) except ValueError: self.unit_num = None if self.unit_num: self.unit = self.report.get_unit(self.unit_num) if self.unit: self.render_unit() return else: logging.warning('Could not find the right unit %d for PartReport %s', self.unit_num, self.report.key()) self.render_top()