Beispiel #1
0
    def setHelper(self):
        for fld in list(self.fields.keys()):
            widget = self.fields[fld].widget
            if type(widget) != forms.CheckboxInput:
                if fld in self.ADJUSTMENT_FIELDS or fld == "resulttags":
                    widget.attrs['class'] = 'span10'
                else:
                    widget.attrs['class'] = 'span12'
            if type(widget) == forms.Textarea:
                widget.attrs['rows'] = 3

        if self.instance.id:
            inputs = {
                "legend_text": "Update {}".format(self.instance),
                "help_text": self.HELP_TEXT_UPDATE,
                "cancel_url": self.instance.get_absolute_url()
            }
        else:
            inputs = {
                "legend_text": "Create new set of results",
                "help_text": self.HELP_TEXT_CREATE,
                "cancel_url": self.instance.outcome.get_absolute_url()
            }

        helper = BaseFormHelper(self, **inputs)
        helper.form_class = None

        helper.add_fluid_row('name', 2, "span6")
        helper.add_fluid_row('metric', 3, "span4")
        helper.add_fluid_row('data_location', 2, "span6")
        helper.add_fluid_row('dose_response', 3, "span4")
        helper.add_fluid_row('statistical_power', 4, "span3")
        helper.add_fluid_row('factors_applied', 2, "span6")
        helper.add_fluid_row('estimate_type', 3, "span4")
        helper.add_fluid_row("resulttags", 1, "span6")

        url = reverse('assessment:effect_tag_create',
                      kwargs={'pk': self.instance.outcome.assessment_id})
        helper.addBtnLayout(helper.layout[8], 0, url, "Add new result tag",
                            "span6")

        url = reverse('epi:adjustmentfactor_create',
                      kwargs={'pk': self.instance.outcome.assessment_id})
        # remove magic number 9; breaks if we change number of elements in the form. This still isn't great; what if comments went away?
        btn_target_idx = helper.find_layout_idx_for_field_name('comments') - 1
        helper.addBtnLayout(helper.layout[btn_target_idx], 0, url,
                            "Add new adjustment factor", "span6")
        helper.addBtnLayout(helper.layout[btn_target_idx], 1, url,
                            "Add new adjustment factor", "span6")

        return helper
Beispiel #2
0
    def setHelper(self):
        for fld in list(self.fields.keys()):
            widget = self.fields[fld].widget
            if type(widget) != forms.CheckboxInput:
                if fld in ["metric_units"]:
                    widget.attrs['class'] = 'span10'
                else:
                    widget.attrs['class'] = 'span12'

            if type(widget) == forms.Textarea:
                widget.attrs['rows'] = 3

        if self.instance.id:
            inputs = {
                "legend_text": "Update {}".format(self.instance),
                "help_text": self.HELP_TEXT_UPDATE,
                "cancel_url": self.instance.get_absolute_url()
            }
        else:
            inputs = {
                "legend_text": "Create new exposure",
                "help_text": self.HELP_TEXT_CREATE,
                "cancel_url":
                self.instance.study_population.get_absolute_url()
            }

        helper = BaseFormHelper(self, **inputs)
        helper.form_class = None
        helper.add_fluid_row('inhalation', 6, "span2")
        helper.add_fluid_row('measured', 3, "span4")
        helper.add_fluid_row('metric_description', 3, "span4")
        helper.add_fluid_row('age_of_exposure', 3, "span6")

        url = reverse(
            'assessment:dose_units_create',
            kwargs={'pk': self.instance.study_population.study.assessment_id})
        helper.addBtnLayout(helper.layout[4], 2, url, "Create units", "span4")

        # we want a single "help text" that spans the chemical exposure route checkboxes (inhalation, dermal, oral, etc.)
        # if we just attach help_text attribute in the model, it will appear grouped with inhalation. Doing it this way gives
        # a little more layout control; just need to find the right spot to do it
        inhalation_idx = helper.find_layout_idx_for_field_name('inhalation')
        if inhalation_idx is not None:
            helper.layout[inhalation_idx].append(
                cfl.HTML('<div style="margin-bottom:20px">' +
                         self.instance.ROUTE_HELP_TEXT + '</div>'))

        return helper
Beispiel #3
0
    def setHelper(self):
        for fld in list(self.fields.keys()):
            widget = self.fields[fld].widget
            if type(widget) != forms.CheckboxInput:
                if fld in self.CRITERION_FIELDS:
                    widget.attrs['class'] = 'span10'
                else:
                    widget.attrs['class'] = 'span12'
            if type(widget) == forms.Textarea:
                widget.attrs['rows'] = 3

        if self.instance.id:
            inputs = {
                "legend_text": "Update {}".format(self.instance),
                "help_text": self.UPDATE_HELP_TEXT,
                "cancel_url": self.instance.get_absolute_url()
            }
        else:
            inputs = {
                "legend_text": self.CREATE_LEGEND,
                "cancel_url": self.instance.study.get_absolute_url()
            }

        helper = BaseFormHelper(self, **inputs)
        helper.form_class = None
        helper.add_fluid_row('name', 2, "span6")
        helper.add_fluid_row('age_profile', 2, "span6")
        helper.add_fluid_row('country', 3, "span4")
        helper.add_fluid_row('eligible_n', 3, "span4")
        helper.add_fluid_row('inclusion_criteria', 3, "span4")

        url = reverse('epi:studycriteria_create',
                      kwargs={'pk': self.instance.study.assessment.pk})

        # remove magic number 6; breaks if we change number of elements in the form. This still isn't great; what if comments went away?
        btn_target_idx = helper.find_layout_idx_for_field_name('comments') - 1
        helper.addBtnLayout(helper.layout[btn_target_idx], 0, url,
                            "Create criteria", "span4")
        helper.addBtnLayout(helper.layout[btn_target_idx], 1, url,
                            "Create criteria", "span4")
        helper.addBtnLayout(helper.layout[btn_target_idx], 2, url,
                            "Create criteria", "span4")

        return helper