Esempio n. 1
0
    def test_should_populate_on_behalf_choice_with_name_and_short_code_when_datasender_name_present(
            self):
        entities = [{
            'name': 'name1',
            'short_code': 'rep1'
        }, {
            'name': 'name2',
            'short_code': 'rep2'
        }]

        actual_list = as_choices(entities)

        self.assertListEqual(actual_list, [('rep1', 'name1  (rep1)'),
                                           ('rep2', 'name2  (rep2)')])
Esempio n. 2
0
    def __init__(self, project, data, is_datasender, datasender_name):
        super(BaseSubmissionForm, self).__init__(data)
        self.form_model = project
        self.fields['form_code'] = CharField(widget=HiddenInput, initial=project.form_code)
        if not is_datasender:
            choices = as_choices(project.get_data_senders(project._dbm))

            if data:
                error_message = {'invalid_choice':_("The Data Sender %s (%s) is not linked to your Questionnaire.") % (datasender_name, data.get("dsid"))}
            else:
                error_message = None
            self.fields['dsid'] = ChoiceField(label=_('I am submitting this data on behalf of'),
                                          choices=choices,
                                          error_messages=error_message,
                                          help_text=_('Choose Data Sender from this list.'))
Esempio n. 3
0
    def __init__(self,
                 project,
                 data,
                 is_datasender,
                 datasender_name,
                 reporter_id,
                 reporter_name,
                 enable_datasender_edit,
                 initial=None):
        super(BaseSubmissionForm, self).__init__(data, initial=initial)
        self.form_model = project
        self.fields['form_code'] = CharField(widget=HiddenInput,
                                             initial=project.form_code)
        self.is_datasender = is_datasender
        if not is_datasender:

            default_choice = [("", gettext("Choose Data Sender"))]
            list_ds = (as_choices(project.get_data_senders(project._dbm)))
            list_sorted = sorted(list_ds, key=itemgetter(1))
            default_choice.extend(list_sorted)
            if data:
                error_message = {
                    'invalid_choice':
                    _("The Data Sender %s (%s) is not linked to your Questionnaire."
                      ) % (datasender_name, data.get("dsid"))
                }
            else:
                error_message = None

            if enable_datasender_edit:
                required = data is not None and data.has_key("on_behalf_of")
                widget = None if len(list_sorted) else Select(
                    attrs={'disabled': 'disabled'})
                self.fields['dsid'] = ChoiceField(label=_(
                    'I want to submit this data on behalf of a registered Data Sender'
                ),
                                                  choices=default_choice,
                                                  required=required,
                                                  error_messages=error_message,
                                                  widget=widget)