def ready(self): from pagetree.reports import ReportableInterface ReportableInterface.register(self.get_model('Quiz'))
return TestBlock.objects.create(body=d.get('body', '')) def edit_form(self): class EditForm(forms.Form): body = forms.CharField(widget=forms.widgets.Textarea(), initial=self.body) return EditForm() def edit(self, vals, files): self.body = vals.get('body', '') self.save() def as_dict(self): return dict(body=self.body) def summary_render(self): if len(self.body) < 61: return self.body else: return self.body[:61] + "..." def report_metadata(self): return [TestReportColumn()] def report_values(self): return [TestReportColumn()] ReportableInterface.register(TestBlock)
return row def user_value(self, user): response = DosageActivityResponse.objects.filter( user=user, dosage_activity__id=self.pageblock_id) if response.count() == 0: return None else: return getattr(response[0], self.field_name) class DosageActivityForm(forms.ModelForm): class Meta: model = DosageActivity class DosageActivityResponse(models.Model): dosage_activity = models.ForeignKey(DosageActivity, null=True, blank=True, related_name='dosage_resp') user = models.ForeignKey(User, null=True, blank=True) ml_nvp = models.DecimalField(default=0.0, max_digits=4, decimal_places=2) times_day = models.IntegerField() weeks = models.IntegerField() ReportableInterface.register(ConversationScenario) ReportableInterface.register(CalendarChart) ReportableInterface.register(DosageActivity)
@classmethod def create_from_dict(self, d): return TestBlock.objects.create(body=d.get('body', '')) def edit_form(self): class EditForm(forms.Form): body = forms.CharField(widget=forms.widgets.Textarea(), initial=self.body) return EditForm() def edit(self, vals, files): self.body = vals.get('body', '') self.save() def as_dict(self): return dict(body=self.body) def summary_render(self): if len(self.body) < 61: return self.body else: return self.body[:61] + "..." def report_metadata(self): return [TestReportColumn()] def report_values(self): return [TestReportColumn()] ReportableInterface.register(TestBlock)
@python_2_unicode_compatible class ActionPlanResponse(models.Model): lab = models.ForeignKey(Lab, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE) action_plan = models.CharField(max_length=256, default="") assessment = models.TextField(default="", blank=True) def __str__(self): return "ActionPlanResponse for %s" % smart_text(self.user) def correct_action_plan(self): return self.action_plan == self.lab.correct_actionplan ReportableInterface.register(Lab) class TestLevelColumn(ReportColumnInterface): def __init__(self, hierarchy, test, level=None): self.hierarchy = hierarchy self.test = test self.level = level def identifier(self): return "%s_%s_level" % (self.hierarchy.id, self.test.id) def metadata(self): return [ self.hierarchy.name, self.identifier(), "Lab Result Level", "single choice",
return [ QuizSummaryReportColumn('thermodynamics'), QuizSummaryReportColumn('reaction_classes'), QuizSummaryReportColumn('redox_chemistry'), QuizSummaryReportColumn('mechanisms'), QuizSummaryReportColumn('paper_figures') ] class QuizSummaryForm(forms.ModelForm): class Meta: model = QuizSummaryBlock exclude = [] ReportableInterface.register(QuizSummaryBlock) class YouTubeReportColumn(ReportColumnInterface): def __init__(self, hierarchy, video_id, title): self.hierarchy = hierarchy self.video_id = video_id self.title = title def identifier(self): return self.video_id def metadata(self): '''hierarchy, itemIdentifier', 'group', 'item type', 'item text' ''' return [ self.hierarchy.name,
def create_from_dict(cls, d): return cls.objects.create( video_id=d.get('video_id', ''), language=d.get('language', ''), title=d.get('title', '') ) class YouTubeForm(forms.ModelForm): class Meta: model = YouTubeBlock widgets = {'title': forms.TextInput} exclude = [] ReportableInterface.register(YouTubeBlock) @python_2_unicode_compatible class SimpleImageBlock(models.Model): pageblocks = GenericRelation(PageBlock) image = models.ImageField(upload_to="images") caption = models.TextField(blank=True) alt = models.CharField(max_length=100, null=True, blank=True) template_file = "main/simpleimageblock.html" display_name = "Simple Image Block" def pageblock(self): return self.pageblocks.all()[0] def __str__(self):
return row def user_value(self, user): response = DosageActivityResponse.objects.filter( user=user, dosage_activity__id=self.pageblock_id) if response.count() == 0: return None else: return getattr(response[0], self.field_name) class DosageActivityForm(forms.ModelForm): class Meta: model = DosageActivity exclude = [] class DosageActivityResponse(models.Model): dosage_activity = models.ForeignKey(DosageActivity, null=True, blank=True, related_name='dosage_resp') user = models.ForeignKey(User, null=True, blank=True) ml_nvp = models.DecimalField(default=0.0, max_digits=4, decimal_places=2) times_day = models.IntegerField() weeks = models.IntegerField() ReportableInterface.register(ConversationScenario) ReportableInterface.register(CalendarChart) ReportableInterface.register(DosageActivity)
class ActionPlanResponse(models.Model): lab = models.ForeignKey(Lab) user = models.ForeignKey(User) action_plan = models.CharField(max_length=256, default="") assessment = models.TextField(default="", blank=True) def __unicode__(self): return "ActionPlanResponse for %s" % unicode(self.user) def correct_action_plan(self): return self.action_plan == self.lab.correct_actionplan ReportableInterface.register(Lab) class TestLevelColumn(ReportColumnInterface): def __init__(self, hierarchy, test, level=None): self.hierarchy = hierarchy self.test = test self.level = level def identifier(self): return "%s_%s_level" % (self.hierarchy.id, self.test.id) def metadata(self): return [self.hierarchy.name, self.identifier(), "Lab Result Level",