Ejemplo n.º 1
0
 def __init__(self, *args, **kwargs):
     button_text = kwargs.pop('button_text', _("Create SMS Connection"))
     super(BackendForm, self).__init__(*args, **kwargs)
     self.helper = FormHelper()
     self.helper.form_class = 'form form-horizontal'
     self.helper.form_method = 'POST'
     self.helper.layout = crispy.Layout(
         crispy.Fieldset(
             _('General Settings'),
             crispy.Field('name', css_class='input-xxlarge'),
             crispy.Field('description',
                          css_class='input-xxlarge',
                          rows="3"),
             crispy.Field('reply_to_phone_number',
                          css_class='input-xxlarge'),
             crispy.Field('give_other_domains_access',
                          data_bind="checked: share_backend"),
             crispy.Div(
                 'authorized_domains',
                 data_bind="visible: showAuthorizedDomains",
             ),
         ),
         self.gateway_specific_fields,
         crispy.Fieldset(
             _("Phone Numbers"),
             crispy.Div(data_bind="template: {"
                        " name: 'ko-load-balancing-template', "
                        " data: $data"
                        "}", ),
             data_bind="visible: use_load_balancing",
         ),
         FormActions(
             StrictButton(button_text,
                          type="submit",
                          css_class='btn-primary'), ),
     )
Ejemplo n.º 2
0
    def __init__(self, *args, **kwargs):
        """Initialise crispy forms."""
        super().__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.form_id = 'question_update_form' if self.instance.pk else 'question_create_form'

        choice_fields = [
            Div(Field(f'choice_text_{i}', style='height:100px'),
                css_class='col-md') for i in range(1, 6)
        ]
        self.helper.layout = Layout(
            Div(
                Div(Field('section', type='hidden'), css_class='col-md-8'),
                Div(Field('question', style='height:100px;'),
                    css_class='col-md-8'),
                Div('weight', css_class='col-md-4'),
                css_class='row',
            ), Div(*choice_fields, css_class='row'),
            Div(Div(StrictButton('Update',
                                 css_class='btn-primary',
                                 css_id='question_update_btn'),
                    css_class='col'),
                css_class='row'))
Ejemplo n.º 3
0
    def __init__(self, *args, **kwargs):

        autor_related = Div(
            FieldWithButtons(
                Field('q',
                      placeholder=_('Pesquisar por possíveis autores para '
                                    'o Tipo de Autor selecionado.')),
                StrictButton(
                    _('Filtrar'), css_class='btn-default btn-filtrar-autor',
                    type='button')),
            css_class='hidden',
            data_action='create',
            data_application='AutorSearch',
            data_field='autor_related')

        autor_select = Row(to_column(('tipo', 3)),
                           Div(to_column(('nome', 5)),
                               to_column(('cargo', 4)),
                               css_class="div_nome_cargo"),
                           to_column((autor_related, 9)),
                           to_column((Div(
                               Field('autor_related'),
                               css_class='radiogroup-autor-related hidden'),
                               12)))

        row2 = Row(to_column((InlineRadios('action_user'), 8)),
                   to_column((Div('username'), 4)))

        row3 = Row(to_column(('senha', 3)),
                   to_column(('senha_confirma', 3)),
                   to_column(('email', 3)),
                   to_column(('confirma_email', 3)),
                   css_class='new_user_fields hidden')

        row4 = Row(to_column((
            Div(InlineRadios('status_user'),
                css_class='radiogroup-status hidden'),
            12))) if 'status_user' in self.Meta.fields else None

        controle_acesso = [row2, row3]

        if row4:
            controle_acesso.append(row4)
        controle_acesso = Fieldset(_('Controle de Acesso do Autor'),
                                   *controle_acesso)

        self.helper = FormHelper()
        self.helper.layout = SaplFormLayout(autor_select, controle_acesso)

        super(AutorForm, self).__init__(*args, **kwargs)

        self.fields['action_user'].initial = 'N'

        if self.instance.pk:
            if self.instance.autor_related:
                self.fields['autor_related'].choices = [
                    (self.instance.autor_related.pk,
                     self.instance.autor_related)]

                self.fields['q'].initial = ''

            self.fields['autor_related'].initial = self.instance.autor_related

            if self.instance.user:
                self.fields['username'].initial = getattr(
                    self.instance.user,
                    get_user_model().USERNAME_FIELD)
                self.fields['action_user'].initial = 'A'

                self.fields['username'].label = string_concat(
                    self.fields['username'].label,
                    ' (', getattr(
                        self.instance.user,
                        get_user_model().USERNAME_FIELD), ')')

                if 'status_user' in self.Meta.fields:
                    self.fields['status_user'].initial = 'R'
                    self.fields['status_user'].label = string_concat(
                        self.fields['status_user'].label,
                        ' (', getattr(
                            self.instance.user,
                            get_user_model().USERNAME_FIELD), ')')

            self.fields['username'].widget.attrs.update({
                'data': getattr(
                    self.instance.user,
                    get_user_model().USERNAME_FIELD)
                if self.instance.user else ''})

            if 'status_user' in self.Meta.fields:
                self.fields['status_user'].widget.attrs.update({
                    'data': getattr(
                        self.instance.user,
                        get_user_model().USERNAME_FIELD)
                    if self.instance.user else ''})
Ejemplo n.º 4
0
    def __init__(self, *args, **kwargs):
        super(RecetaForm, self).__init__(*args, **kwargs)

        self.fields[
            'nombre'].help_text = u'<small class="help-error"></small> %s' % (
                u' ')
        self.fields[
            'porcion'].help_text = u'<small class="help-error"></small> %s' % (
                u' ')
        self.fields[
            'tipo_receta'].help_text = u'<small class="help-error"></small> %s' % (
                u' ')
        self.fields[
            'descripcion'].help_text = u'<small class="help-error"></small> %s' % (
                u' ')
        self.fields['nombre'].widget.attrs = {
            'placeholder': 'Ingrese nombre de la receta'
        }
        self.fields['porcion'].widget.attrs = {
            'placeholder': 'Ingrese porciones'
        }
        self.fields['tipo_receta'].label = 'Tipo de receta'
        self.fields['descripcion'].widget.attrs = {
            'rows': 2,
            'placeholder': 'Ingrese una breve descripción',
        }
        self.fields['preparacion'].initial = 'Preparación'
        self.fields['preparacion'].widget = SummernoteWidget(attrs={
            'width': '100%',
            'height': '35em'
        })

        self.helper = FormHelper()
        self.helper.form_class = 'js-validate form-vertical'
        self.helper.form_id = 'form'

        self.helper.layout = Layout(
            Row(
                Div(Field('nombre', css_class='input-required'),
                    Field('porcion', css_class='input-required'),
                    Field('descripcion', ),
                    FieldWithButtons(
                        'tipo_receta',
                        StrictButton("<i class='fa fa-plus'></i>",
                                     css_class="btn-default",
                                     rel="tooltip",
                                     title="Agregar tipo receta",
                                     data_toggle="modal",
                                     data_target="#modal-id")),
                    Field('imagen', ),
                    Field('publicar', ),
                    css_class='col-md-6'),
                Div(Field('preparacion', css_class="input-required"),
                    css_class='col-md-6'),
            ),
            FormActions(
                smtSave(),
                btnCancel(),
                btnReset(),
            ),
        )
Ejemplo n.º 5
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.helper.form_class = "noAsterisks"

        self.fields[
            "team"].widget.manager = 'team_in_campaign_%s' % self.instance.campaign.slug
        self.fields["subsidiary"].help_text += format_html(
            "{}<br/><br/>{}<br/>{}",
            _("Zadejte adresu, kam jezdíte každý den do práce."),
            _("Je název nebo adresa společnosti napsaná chybně?"),
            self.instance.company_coordinator_mail_text(),
        )

        company = self.initial.get('company')
        subsidiary = self.initial.get('subsidiary')
        self.helper.form_id = "change-team-form"
        self.helper.layout = Layout(
            FieldWithButtons(
                'company',
                StrictButton(
                    format_html(
                        '<span class="glyphicon glyphicon-plus"></span> {}',
                        _('Nová společnost')),
                    href=reverse("register_company"),
                    data_fm_head=_("Přidejte novou společnost"),
                    data_fm_ok=_("Přidat"),
                    data_fm_cancel=_("Zpět"),
                    data_fm_callback="createCompanyCallback",
                    css_class="btn fm-create",
                    id="fm-create-company",
                ),
            ),
            FieldWithButtons(
                'subsidiary',
                StrictButton(
                    format_html(
                        '<span class="glyphicon glyphicon-plus"></span> {}',
                        _('Přidat adresu')),
                    href=reverse("register_subsidiary", args=(company.id, ))
                    if company else "",
                    data_fm_head=_("Přidejte novou adresu"),
                    data_fm_ok=_("Přidat"),
                    data_fm_cancel=_("Zpět"),
                    data_fm_callback="createSubsidiaryCallback",
                    css_class="btn fm-create",
                    id="fm-create-subsidiary",
                    **({
                        'disabled': True
                    } if company is None else
                       {}),  # Disable button if no company is selected
                ),
            ),
            FieldWithButtons(
                'team',
                StrictButton(
                    format_html(
                        '<span class="glyphicon glyphicon-plus"></span> {}',
                        _('Založit tým')),
                    href=reverse("register_team", args=(subsidiary.id, ))
                    if subsidiary else "",
                    data_fm_head=_("Založte nový tým"),
                    data_fm_ok=_("Založit"),
                    data_fm_cancel=_("Zpět"),
                    data_fm_callback="createTeamCallback",
                    css_class="btn fm-create",
                    id="fm-create-team",
                    **({
                        'disabled': True
                    } if subsidiary is None else
                       {}),  # Disable button if no subsidiary is selected
                ),
            ),
        )

        if not self.instance.campaign.competitors_choose_team(
        ):  # We ask only for comapny and subsidiary
            self.fields["team"].widget = HiddenInput()
            self.fields["team"].required = False
            del self.helper.layout.fields[2]
Ejemplo n.º 6
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.helper = FormHelper()
     self.helper.form_class = 'form-horizontal'
     self.helper.form_id = 'sort-form'
     self.helper.label_class = 'col-md-4'
     self.helper.field_class = 'col-md-8'
     self.helper.layout = Layout(
         TabHolder(
             Tab(
                 'Step 1 - Initial Serums Set',
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-right" \
                     aria-hidden="true"></span> %s' % "Next",
                     type='button',
                     css_class='btn-warning col-md-offset-11 btnNext',
                 ), Fieldset(
                     'Import list of serums',
                     'serum_file',
                 )),
             Tab(
                 'Step 2 - Serum',
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-right" \
                     aria-hidden="true"></span> %s' % "Next",
                     type='button',
                     css_class='btn-warning col-md-offset-11 btnNext',
                 ),
                 Fieldset(
                     'Serum fields',
                     'sample_id',
                     'status',
                     'site_id',
                     'coll_num',
                     'age_min',
                     'age_max',
                     'gender',
                     'coll_date',
                     'year',
                     'ward_id',
                 )),
             Tab(
                 'Step 3 - Freezer',
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-right" \
                     aria-hidden="true"></span> %s' % "Next",
                     type='button',
                     css_class='btn-warning col-md-offset-11 btnNext',
                 ),
                 Fieldset(
                     'Freezer fields',
                     'study_code',
                     'sample_type',
                     'aliquot_no',
                     'volume',
                     'freezer_section_name',
                     'subdivision_1_position',
                     'subdivision_2_position',
                     'subdivision_3_position',
                     'subdivision_4_position',
                 )),
             Tab(
                 'Step 4 - Tests',
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-left" \
                 aria-hidden="true"></span> %s' % 'Previous',
                     type='button',
                     css_class='btn-danger btnPrevious',
                 ),
                 StrictButton('<span class="glyphicon glyphicon-ok" \
                 aria-hidden="true"></span> %s' % "Submit",
                              type='submit',
                              color='green',
                              css_class='btn-success col-md-offset-10'),
                 Fieldset(
                     'Select Serum based on the tests performed',
                     'all_test',
                     'elisa_chik_test',
                     'elisa_dengue_test',
                     'elisa_rickettsia_test',
                     'pma_test',
                 )),
         ), )
Ejemplo n.º 7
0
    def __init__(self, *args, **kwargs):
        yaml_layout = kwargs.pop('yaml_layout')

        q_field = Div(
            FieldWithButtons(
                Field('q',
                      placeholder=_('Filtrar Lista'),
                      autocomplete='off',
                      type='search',
                      onkeypress='atualizaContatos(event)'),
                StrictButton(_('Filtrar'),
                             css_class='btn-outline-primary',
                             type='button',
                             onclick='atualizaContatos(event)')),
            Div(css_class='form-group-contato-search '
                'controls-radio-checkbox'))

        q = [
            _('Seleção de Contatos'),
            [(q_field, 5),
             (Div(Field('contatos'), css_class='form-group-contatos'), 7)]
        ]
        yaml_layout.append(q)

        for fieldset in yaml_layout:
            for linha in fieldset:
                for idx, field in enumerate(linha):
                    if field[0] == 'importancia':
                        linha[idx] = (InlineRadios('importancia'), field[1])

        self.helper = FormHelper()

        self.helper.field_class = 'controls'
        self.helper.layout = SaplFormLayout(*yaml_layout)

        super(ProcessoForm, self).__init__(*args, **kwargs)

        if not self.instance.pk:
            self.fields['data'].initial = date.today()

        self.fields['q'].help_text = _('Digite parte do nome, nome social ou '
                                       'apelido do Contato que você procura.')

        self.fields['topicos'].widget = forms.SelectMultiple(
            attrs={'size': '8'})
        self.fields['topicos'].queryset = TopicoProcesso.objects.all()

        self.fields['assuntos'].widget = forms.SelectMultiple(
            attrs={'size': '8'})
        self.fields['assuntos'].queryset = AssuntoProcesso.objects.filter(
            workspace=self.initial['workspace'])

        # Utilizando template bootstrap3 customizado
        self.fields['importancia'].widget = forms.RadioSelect()
        self.fields['importancia'].choices = IMPORTANCIA_CHOICE

        self.fields['status'].widget = forms.RadioSelect()
        # self.fields['status'].inline_class = True
        self.fields['status'].choices = [
            (ass.pk, ass) for ass in StatusProcesso.objects.order_by('id')
        ]

        self.fields['classificacoes'].widget = forms.CheckboxSelectMultiple()
        # self.fields['classificacoes'].inline_class = True

        self.fields['contatos'].widget = forms.CheckboxSelectMultiple()
        self.fields['contatos'].queryset = Contato.objects.all()
        self.fields['contatos'].choices = [
            (c.pk, c) for c in self.instance.contatos.order_by('nome')]\
            if self.instance.pk else []
        self.fields['contatos'].help_text = _(
            'Procure por Contatos na caixa de buscas e arraste '
            'para esta caixa os Contatos interessados neste Processo.')
Ejemplo n.º 8
0
    def __init__(self, *args, **kwargs):
        super(PermisoAusentismoForms, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        # self.helper.form_class = 'form-inline'
        self.helper.field_template = 'bootstrap3/layout/inline_field.html'
        self.helper.form_class = 'form-horizontal'

        self.helper.layout = Layout(
            Div(
                #Div(Field('mes_evento'),css_class='col-md-2'),
                Div(Field('idTrabajador'), css_class='col-md-4'),
                Div(Field('tipo_evento'), css_class='col-md-3'),
                Div(FieldWithButtons(
                    'codigoDiagnostico',
                    StrictButton('...',
                                 css_class='btn btn-info',
                                 data_toggle='modal',
                                 data_target="#myModal")),
                    css_class='col-md-3'),
                css_class='row'),
            Div(
                #Div(Field('periodoIncapacidadInicial'), css_class='col-md-3', ),
                Div(Div(
                    Field('periodoIncapacidadInicial'),
                    css_class='',
                ),
                    css_class='col-sm-2'),
                Div(Div(
                    Field('periodoIncapacidadFinal'),
                    css_class='',
                ),
                    css_class='col-sm-2'),
                # HTML('<p>Date: <input name="fechaIngreso" type="text" id="id_date"></p>'),
                #Div(Field('periodoIncapacidadFinal'), css_class='col-md-3', ),
                Div(
                    Field('prorroga'),
                    css_class='col-sm-1',
                ),
                Div(
                    Field('totalDiasIncapacidad', type="hidden"),
                    css_class='col-sm-1',
                ),
                Div(
                    Field('diasCargados'),
                    css_class='col-sm-2',
                ),
                Div(
                    Field('horaInicial'),
                    css_class='col-sm-2',
                ),
                Div(
                    Field('horaFinal'),
                    css_class='col-sm-2',
                ),
                css_class='row',
                style='',
            ),
            Div(css_class='row', ),
            Field('observaciones'),
            Div(FormActions(
                Submit('save', 'Guardar', css_class='btn-default'),
                HTML(
                    '<a type="button" class="btn btn-danger" href="{% url "listado_permiso_ausentismo" %}" >Cancelar</a>'
                ),
            ),
                style='text-align:right;padding-right:1%;padding-top:1%'),
        )
Ejemplo n.º 9
0
    def __init__(self, *args, **kwargs):
        """Create a new form."""
        log = logging.getLogger(__name__)
        log.debug("Enter")

        # Pop user if given
        user = None
        if "user" in kwargs:
            user = kwargs.pop("user")

        super(SubmitJobForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.layout = Layout(
            TabHolder(
                Tab('File', Field('name', 'diffraction_data',
                                  'email_address')),
                Tab('Contaminants', ),
                Tab(
                    'Advanced',
                    Field('custom_models'),
                ),
            ),
            StrictButton(
                '<span class="ladda-label">Submit</span>',
                type="submit",
                css_class="btn btn-primary ladda-button submit_button",
                data_style="expand-right",
            ))

        # Add confidential button and pre-fill e-mail if user if logged in
        if user and user.is_authenticated():
            self.helper.layout[0][0].append("confidential")
            self.fields['email_address'] = forms.EmailField(initial=user.email,
                                                            required=True)
        else:
            self.fields['email_address'] = forms.EmailField(required=True)

        # Add contaminants selection to form
        try:
            categories = Category.get_current()
        except ObjectDoesNotExist:
            categories = []

        for category in categories:
            log.debug("Category found : " + str(category))

            initial = (category.selected_by_default)

            title = "<h3 onclick=\"toggle_all('" \
                    + text.slugify(category) + "')\">" \
                    + category.name \
                    + " <button type=\"button\" class=\"btn btn-primary "\
                    + "btn-xs\">" \
                    + "Toggle all" \
                    + "</button></h3>"

            fields = []
            for contaminant in Contaminant.objects.filter(category=category):
                self.fields[contaminant.uniprot_id] = forms.BooleanField(
                    label=contaminant.short_name + " - " +
                    contaminant.long_name,
                    required=False,
                    initial=initial)
                fields.append(contaminant.uniprot_id)
            self.helper.layout[0][1].append(
                Fieldset(title, *fields, css_class=text.slugify(category)))

        log.debug("Exit")
Ejemplo n.º 10
0
    def __init__(self, *args, **kwargs):
        """Selects custom layout and placeholders for the form."""
        super().__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        helper = self.helper
        helper.form_action = 'users:shipping-billing'
        helper.form_id = 'shipping_billing_form'
        helper.form_tag = False

        self.fields['shipping_phone_number'] = forms.CharField(
            widget=widgets.PhoneNumberPrefixWidget(), required=False)

        self.fields['billing_phone_number'] = forms.CharField(
            widget=widgets.PhoneNumberPrefixWidget(), required=False)

        self.fields['shipping_full_name'].label = _('Full Name')
        self.fields['shipping_street_address_1'].label = _('Street Address 1')
        self.fields['shipping_street_address_2'].label = _('Street Address 2')
        self.fields['shipping_town_or_city'].label = _('Town or City')
        self.fields['shipping_county'].label = _('County, State or Locality')
        self.fields['shipping_country'].label = _('Country')

        self.fields['billing_full_name'].label = _('Full Name')
        self.fields['billing_street_address_1'].label = _('Street Address 1')
        self.fields['billing_street_address_2'].label = _('Street Address 2')
        self.fields['billing_town_or_city'].label = _('Town or City')
        self.fields['billing_county'].label = _('County, State or Locality')
        self.fields['billing_postcode'].label = _('Postcode')
        self.fields['billing_country'].label = _('Country')

        helper.layout = Layout(
            Row(
                Column(
                    Fieldset(
                        _('SHIPPING DETAILS'),
                        Row(
                            Field('shipping_full_name',
                                  placeholder=_('Full Name'),
                                  css_class='p-font text-primary'),
                            MultiWidgetField(
                                'shipping_phone_number',
                                template='bootstrap4/phone_field.html'),
                            Field('shipping_street_address_1',
                                  placeholder=_('Street Address 1'),
                                  css_class='p-font text-primary'),
                            Field('shipping_street_address_2',
                                  placeholder=_('Street Address 2'),
                                  css_class='p-font text-primary'),
                            Field('shipping_town_or_city',
                                  placeholder=_('Town or City'),
                                  css_class='p-font text-primary'),
                            Field('shipping_county',
                                  placeholder=_('County, State or Locality'),
                                  css_class='p-font text-primary'),
                            Field('shipping_postcode',
                                  placeholder=_('Postcode'),
                                  css_class='p-font text-primary'),
                            Field(
                                'shipping_country',
                                css_class='form-select p-font text-primary'))),
                    css_class='col-12 col-md-6 p-2 px-md-4 pt-md-4 pb-md-2'),
                Column(
                    Fieldset(
                        _('BILLING DETAILS'),
                        Row(
                            Field('billing_full_name',
                                  placeholder=_('Full Name'),
                                  css_class='p-font text-primary'),
                            MultiWidgetField(
                                'billing_phone_number',
                                template='bootstrap4/phone_field.html'),
                            Field('billing_street_address_1',
                                  placeholder=_('Street Address 1'),
                                  css_class='p-font text-primary'),
                            Field('billing_street_address_2',
                                  placeholder=_('Street Address 2'),
                                  css_class='p-font text-primary'),
                            Field('billing_town_or_city',
                                  placeholder=_('Town or City'),
                                  css_class='p-font text-primary'),
                            Field('billing_county',
                                  placeholder=_('County, State or Locality'),
                                  css_class='p-font text-primary'),
                            Field('billing_postcode',
                                  placeholder=_('Postcode'),
                                  css_class='p-font text-primary'),
                            Field(
                                'billing_country',
                                css_class='form-select p-font text-primary'))),
                    css_class='col-12 col-md-6 p-2 px-md-4 pt-md-4 pb-md-2'),
                Column(StrictButton(
                    _('Save Details'),
                    type='submit',
                    css_class='p-font btn-tran btn btn-sm fw-bold \
                                        btn-warning text-primary shadow'),
                       css_class='col-12 col-md-auto ps-2 pb-2 px-md-4 \
                           pb-md-4 mx-md-auto')))
Ejemplo n.º 11
0
    def __init__(self, *args, **kwargs):
        super(InformeSemestralForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)

        self.helper.form_show_labels = True
        self.helper.form_class = 'form-horizontal'
        self.helper.label_class = 'col-sm-4'
        self.helper.field_class = 'col-sm-8'
        self.helper.form_action = "."

        self.helper.all().wrap(Field, css_class='input-sm')
        self.helper.filter_by_widget(forms.Textarea).wrap(
            Field, css_class="input-xlarge", rows="3")

        self.helper.layout = Layout(
            MultiField(
                '<b>Plantación*</b>',
                Div(
                    HTML(
                        '<p class="help-block">Cuantos proyectos misioneros o igleisas hijas fueron plantadas en el ultimo semestre</p>'
                    ),
                    Field('plantacion_nombre_1',
                          css_class='input-sm',
                          placeholder="nombre"),
                    Field('plantacion_lugar_1',
                          css_class='input-sm',
                          placeholder="lugar"),
                    Field('plantacion_fecha_1',
                          css_class='input-sm',
                          placeholder="mes/año"),
                    css_class='informe-semestral-plantacion clearfix',
                ),
                Div(
                    Field('plantacion_nombre_2',
                          css_class='input-sm',
                          placeholder="nombre"),
                    Field('plantacion_lugar_2',
                          css_class='input-sm',
                          placeholder="lugar"),
                    Field('plantacion_fecha_2',
                          css_class='input-sm',
                          placeholder="mes/año"),
                    css_class='informe-semestral-plantacion clearfix',
                ),
                Div(
                    Field('plantacion_nombre_3',
                          css_class='input-sm',
                          placeholder="nombre"),
                    Field('plantacion_lugar_3',
                          css_class='input-sm',
                          placeholder="lugar"),
                    Field('plantacion_fecha_3',
                          css_class='input-sm',
                          placeholder="mes/año"),
                    css_class='informe-semestral-plantacion clearfix',
                )), Field('miembros_actuales'), Field('nuevos_miembros'),
            Field('conversiones'), Field('bautismos_nuevos'),
            Field('no_bautismos'), Field('asistencia_general'),
            Field('ofrendas'), Field('plantacion'), Field('grupos_vida'),
            Field('asistencia_grupos'), Field('peticiones_oracion'),
            Field('testimonios'), Field('ministerio_ninos'),
            Field('uso_local'), Field('fotos'),
            FormActions(
                StrictButton('Enviar Informe',
                             type="Submit",
                             css_class="btn btn-success pull-right btn-md",
                             autocomplete="off"), ))
Ejemplo n.º 12
0
class NamedUserTicketForm(UserTicketForm):

    is_private = forms.ChoiceField(
        choices=constants.TICKET_PRIVACY,
        initial=True,
        label=_('Privacy'),
        required=False
    )

    issue_type = forms.ChoiceField(
        choices=constants.ISSUE_TYPE_CREATE,
        label=_('Issue Type'),
    )

    attachment = forms.FileField(widget=forms.FileInput(attrs={'multiple':"true"}), required=False)
    #forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))
    #forms.FileField(max_length=255,required=False)
    # forms.FileField(widget=forms.FileInput(attrs={'multiple':"true"}))



    file_upload_layout = FieldWithButtons(Div('attachment',StrictButton(
        'Add new file',
        css_id='add_new_file',
        css_class='btn btn-xs btn-success'),
        css_class='full-wide layout_sec'),
    )

    fine_uploader_layout= Layout(

        Div(
            css_id= 'fine-uploader-manual-trigger',
            css_class='layout_sec',
        ),
    )


    uploaded_files_layout = Layout()


    class Meta(UserTicketForm.Meta):

        fields = UserTicketForm.Meta.fields + ('issue_type', 'is_private')

    def __init__(self ,*args, **kwargs):

        super(NamedUserTicketForm, self).__init__(*args, **kwargs)

        self.uploaded_files_layout = Layout()

        if self.instance and self.instance.issue_type:
            self.fields['issue_type'].choices = constants.ISSUE_TYPE
        else:
            self.fields['issue_type'].choices = constants.ISSUE_TYPE_CREATE

        if self.instance.id and self.instance.owned_by.is_basic:
            self.fields['issue_type'].required = False

        if self.instance and self.instance.ticket_documents.all():

            for i, d in enumerate(self.instance.ticket_documents.all()):

                self.uploaded_files_layout.append(
                    HTML(
                        '''
                        <div class="form-horizontal">
                        <div class="form-group">
                          <label class="control-label col-lg-3" for="id_file">File</label>
                          <div class="controls col-lg-8">
                            <span>{}</span>
                            <a type="button" style="margin-bottom:5px;margin-left:5px" id="{}" class="btn btn-xs btn-danger pull-right delete_file">
                              Delete file
                            </a>
                            <a class="btn btn-default btn-xs pull-right" target="_blank" href="{}" style="margin-right:15px;">
                              <span class="glyphicon glyphicon-file"></span>Download
                            </a>
                          </div>
                        </div></div>'''.format(d.filename, d.id, d.file.url)
                    )
                )

        self.helper.layout = Layout(
            self.classification_layout,
            self.uploaded_products_layout,
            self.product_layout,
            self.category_layout,
            self.description_layout,
            self.additional_layout,
            self.fine_uploader_layout,
            # self.file_upload_layout,
            # self.uploaded_files_layout,
            self.button_layout
        )

    def clean_issue_type(self):
        if (self.cleaned_data.get('product') and
                 self.cleaned_data.get('product') in ('GLUU', 'OXD', 'SUP_GLUU') ):
            if not self.cleaned_data.get('issue_type'):
                raise forms.ValidationError(_('Please specify the issue type'))
        return self.cleaned_data.get('issue_type')
Ejemplo n.º 13
0
class UserTicketForm(forms.ModelForm):

    gluu_server_version = forms.ChoiceField(
        label=_('Gluu Server Version'),
        choices=constants.GLUU_SERVER_VERSION
    )
    gluu_server_version_comments = forms.CharField(
        label=_('Gluu Server Version'),
        required=False
    )
    product = forms.ChoiceField(
        label=_('Select Product'),
        choices=constants.PRODUCT,
        required=False
    )
    product_version= forms.ChoiceField(
        label=_('Version'),
        choices=constants.Product_Version,
        required=False
    )

    os_version = forms.ChoiceField(
        label=_('Operating System'),
        choices=constants.OS_VERSION
    )

    os_version_name = forms.FloatField(
        label=_('OS Version')
    )

    product_os_version = forms.ChoiceField(
        label =_('Operating System'),
        choices = constants.PRODUCT_OS_VERSION,
        required=False
    )
    product_os_version_name =  forms.FloatField(
        label = _('OS Version'),
        required=False
    )

    ios_version_name = forms.FloatField(
        label = _('iOS Version'),
        required=False
    )

    set_default_product = forms.BooleanField(
        label=_('Set as Default (Static Text)'),
        required=False,

    )

    # set_default_gluu = forms.BooleanField(
    #     label=_('Set as Default'),
    #     required = False
    # )

    description = forms.CharField(
        widget=forms.Textarea,
        help_text=(
            'This field supports <a target="_blank" href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet">markdown formatting.</a>'
        )
    )
    # description_copy = forms.CharField(
    #     widget=AdminPagedownWidget()
    # )
    ticket_category = forms.ChoiceField(
        label=_('Issue Category'),
        choices=constants.ISSUE_CATEGORY,
        required= False
    )

    classification_layout = Layout(
        Div(
            Div(
                Field('gluu_server_version', wrapper_class='col-md-4', css_class='gluu_server_version'),
                Field('gluu_server_version_comments', wrapper_class='col-md-3 hidden',  css_class='gluu_server_version_comments'),
                Field('os_version',wrapper_class='col-md-4 ', css_class="os_version "),
                Field('os_version_name',wrapper_class='col-md-4 os_version_icon', placeholder="Which OS are you using?", css_class="os_version_name "),
                css_class='gluu_layout_div'
            ),
            Div(
               HTML('<div class="col-md-6 add-product ">'),
               StrictButton('Add Product',css_class='add_product_btn'),
               HTML('</div>'),
               # Field('set_default_gluu',  css_class='div_set_default '),
               css_class= 'default_product_div'
        ),
            css_class='main_gluu_div'
        ),


    )

    product_layout= Layout(
         Div(
             Div(
                Field('product',wrapper_class='col-md-3 hidden' , css_class="product"),
                Field('product_version',wrapper_class='col-md-3 ', css_class="product_version "),
                Field('product_os_version',wrapper_class='col-md-3 ', css_class="product_os_version "),
                Field('product_os_version_name',wrapper_class='col-md-2  os_version_icon ', placeholder="os version", css_class="product_os_version_name"),
                Field('ios_version_name',wrapper_class='col-md-1 hidden os_version_icon', placeholder="ios version", css_class="ios_version_name"),
                HTML('<div class="col-md-1 remove"><a class="delete_product_row hidden" href="javascript:void(0);"></a></div>'),
                Field('set_default_product',css_class='div_set_default', wrapper_class='hidden'),
                css_class='product_layout_div'

             ),


             css_class= 'main_product_div layout_sec hidden'
         ),


    )
    description_layout = Layout(
        Div(
            Field(
                'title',
                placeholder='Ticket title',wrapper_class='col-md-12'
            ),

        css_class= 'layout_sec'
        ),
        Div(
            Field(
                'description',wrapper_class='col-md-12',
                placeholder='Ticket description.. please include enough ' +
                'information for someone to reproduce your issue, ' +
                'including all relevant logs.',
                # data_uk_htmleditor='{mode:\'tab\',markdown:true}'
            ),
        css_class= 'layout_sec'
        )
    )

    category_layout = Layout(
        Div(
            Field('issue_type',wrapper_class='col-md-6'),
            Field('ticket_category',wrapper_class='col-md-6'),
        css_class= 'layout_sec'
        ),
    )




    additional_layout = Layout(
        Div(
            PrependedText(
                'send_copy',
                '<span class="glyphicon glyphicon-envelope"></span>',
                placeholder='Separate emails with commas'
            ),
            Field('is_private'),
            css_class= 'layout_sec'
        ),
        Div(
            PrependedText(
                'link_url',
                '<span class="glyphicon glyphicon-link"></span>',
                placeholder='URL to download/view ticket info'
            ),
            css_class= 'layout_sec'
        ),

    )

    button_layout = Div(
        FormActions(
            Submit('save', 'Submit'),
            HTML('<a class="btn btn-default" href="{% url \'home\'%}" id="cancelButton">Cancel</a>')
        ),
        css_class= 'layout_sec'
    )

    uploaded_products_layout = Layout()


    class Meta:

        model = Ticket
        error_css_class = 'error_form'
        fields = ('product','product_version','product_os_version','product_os_version_name','ios_version_name','gluu_server_version','gluu_server_version_comments', 'os_version','os_version_name','title', 'description', 'ticket_category', 'link_url',
                  'send_copy')

    def __init__(self, user='******', *args, **kwargs):

        super(UserTicketForm, self).__init__(*args, **kwargs)
        self.uploaded_products_layout = Layout()

        # if user:
        #     data = get_last_ticket_data(user)
        #     if data:
        #         if data[0] != "N/A":
        #             self.fields['gluu_server_version'].initial = data[0]
        #         if data[1] != None:
        #             self.fields['os_version'].initial = data[1]
        #         if data[2] != "":
        #             self.fields['os_version_name'].initial = data[2]
        # data = None
        if user:
            data = get_last_ticket_data(user)

        if data:
            self.fields['gluu_server_version'].initial = data[0] if data[0] != "N/A" else ""
            self.fields['os_version'].initial = data[1] if data[1] != None else ""
            self.fields['os_version_name'].initial = data[2] if data[2] != "" else 0
            self.fields['gluu_server_version_comments'].initial = data[3] if data[3] != "" else 0
        self.fields['send_copy'].label = "CC Colleagues"
        self.fields['title'].label = "Subject"
        self.button_layout[0][0] = Submit('save', 'Submit')
        self.button_layout[0][1] = HTML(
            '<a class="btn btn-danger" href="{% url \'home\'%}" id="cancelButton">Cancel</a>')

        if self.instance.id:
            self.button_layout[0][0] = Submit('save', 'Save')
            self.button_layout[0][1] = HTML(
                '<a class="btn btn-danger" href="{}" id="cancelButton">Cancel</a>'.format(
                    generate_ticket_link(self.instance)))
            if self.instance.product_ticket_id.all():

                for ticket in self.instance.product_ticket_id.all():
                    if ticket.ios_version_name:
                        html= HTML('''
                            <div class="product_layout_div"> <div id="div_id_product" class="form-group col-md-3 for-margin"> <label for="id_product" class="control-label  requiredField">
                                        Select Product<span class="star">*</span> </label> {} </div> <div id="div_id_product_version" class="form-group col-md-2 for-margin"> <label for="id_product_version" class="control-label  requiredField">
                                        Product Version<span class="star">*</span> </label> {} </div> <div id="div_id_product_os_version" class="form-group col-md-2 for-margin"> <label for="id_product_os_version" class="control-label  requiredField">
                                        Operating System<span class="star">*</span> </label> {} </div> <div id="div_id_product_os_version_name" style="width:128px;" class="form-group col-md-1 for-margin os_version_icon"> <label for="id_product_os_version_name" class="control-label  requiredField">
                                        Android Version<span class="star">*</span></label> <div class="controls "> <input class="numberinput form-control product_os_version_name" id="id_product_os_version_name" name="product_os_version_name" value={} step="any" type="number"> </div></div><div id="div_id_ios_version_name" class="form-group col-md-1 os_version_icon fadeIn animated" style="width:100px;"> <label for="id_ios_version_name" class="control-label ">
                                        iOS Version</label> <div class="controls "> <input class="ios_version_name numberinput form-control" value={} id="id_ios_version_name" name="ios_version_name" step="any" type="number"> </div> </div>
                                        <div class="col-md-1 remove"><a class="delete_product_row" href="javascript:void(0);"></a></div></div>
                        '''.format(product_select_list(ticket.product),product_version_select_list(ticket.product_version),product_os_version_select_list(ticket.product_os_version),ticket.product_os_version_name,ticket.ios_version_name))
                    else:
                        html = HTML('''
                            <div class="product_layout_div"> <div id="div_id_product" class="form-group col-md-3 for-margin"> <label for="id_product" class="control-label  requiredField">
                                        Select Product<span class="star">*</span> </label> {} </div> <div id="div_id_product_version" class="form-group col-md-3 for-margin"> <label for="id_product_version" class="control-label  requiredField">
                                        Product Version<span class="star">*</span> </label> {} </div> <div id="div_id_product_os_version" class="form-group col-md-3 for-margin"> <label for="id_product_os_version" class="control-label  requiredField">
                                        Operating System<span class="star">*</span> </label> {} </div> <div id="div_id_product_os_version_name" class="form-group col-md-2 for-margin os_version_icon"> <label for="id_product_os_version_name" class="control-label  requiredField">
                                        OS Version<span class="star">*</span></label> <div class="controls "> <input class="numberinput form-control product_os_version_name" id="id_product_os_version_name" name="product_os_version_name" value={} step="any" type="number"> </div></div><div id="div_id_ios_version_name" class="form-group col-md-1 os_version_icon hidden fadeIn animated" style="width:100px;"> <label for="id_ios_version_name" class="control-label ">
                                        iOS Version</label> <div class="controls "> <input class="ios_version_name numberinput form-control"  id="id_ios_version_name" name="ios_version_name" step="any" type="number"> </div> </div>
                                        <div class="col-md-1 remove"><a class="delete_product_row" href="javascript:void(0);"></a></div></div>
                        '''.format(product_select_list(ticket.product),product_version_select_list(ticket.product_version),product_os_version_select_list(ticket.product_os_version),ticket.product_os_version_name))

                    self.uploaded_products_layout.append(
                        html
                    )
            # if self.instance.ticket_id.all():
            #     for ticket in self.instance.ticket_id.all():
            #         self.uploaded_classification_layout.append(
            #             HTML('''
            #                 <div class="gluu_layout_div"> <div id="div_id_gluu_server_version" class="form-group col-md-4"> <label for="id_gluu_server_version" class="control-label  requiredField">
            #                 Gluu Server Version<span class="star">*</span> </label> {} </div> <div id="div_id_os_version" class="form-group col-md-4"> <label for="id_os_version" class="control-label  requiredField">
            #                 Operating System<span class="star">*</span> </label> {} </div> <div id="div_id_os_version_name" class="form-group col-md-3 os_version_icon"> <label for="id_os_version_name" class="control-label  requiredField">
            #                 OS Version<span class="star">*</span> </label> <div class="controls "> <input class="numberinput form-control os_version_name" id="id_os_version_name" name="os_version_name" value={} step="any" type="number"> </div> </div>
            #                 <div class="col-md-1 remove"><a class="delete_gluu_row" href="javascript:void(0);"></a></div></div>
            #             '''.format(gluu_server_version_select_list (ticket.gluu_server_version),gluu_os_version_list(ticket.os_version),ticket.os_version_name)
            #                 )
            #         )

        self.helper = FormHelper(self)
        self.helper.form_class = 'form-horizontal ticket_form'
        self.helper.help_text_inline = True
        self.helper.layout = Layout(
            # self.uploaded_classification_layout,
            self.classification_layout,
            self.uploaded_products_layout,
            self.product_layout,
            self.description_layout,
            self.category_layout,
            self.additional_layout,
            self.button_layout
        )


    def clean_ticket_category(self):
        if (self.cleaned_data.get('product') and
                 self.cleaned_data.get('product') in ('GLUU', 'OXD', 'SUP_GLUU') ):
            if not self.cleaned_data.get('ticket_category'):
                raise forms.ValidationError(_('Please specify the issue category'))
        return self.cleaned_data.get('ticket_category')

    def clean_os_version_name(self):

        if not self.cleaned_data.get('os_version_name') or self.cleaned_data.get('os_version_name') < 0:

            raise forms.ValidationError(_('Please enter os version in positive numbers.'))

        return self.cleaned_data.get('os_version_name')
Ejemplo n.º 14
0
def monster_instance_edit(request, profile_name, instance_id):
    try:
        summoner = Summoner.objects.select_related('user').get(
            user__username=profile_name)
    except Summoner.DoesNotExist:
        return HttpResponseBadRequest()

    instance = get_object_or_404(MonsterInstance, pk=instance_id)
    is_owner = (request.user.is_authenticated
                and summoner.user == request.user)

    if is_owner:
        # Reconcile skill level with actual skill from base monster
        skills = []
        skill_levels = [
            instance.skill_1_level,
            instance.skill_2_level,
            instance.skill_3_level,
            instance.skill_4_level,
        ]

        for idx in range(0, instance.monster.skills.count()):
            skills.append({
                'skill': instance.monster.skills.all()[idx],
                'level': skill_levels[idx]
            })

        form = EditMonsterInstanceForm(request.POST or None, instance=instance)
        form.helper.form_action = request.path
        if len(skills) >= 1 and skills[0]['skill'].max_level > 1:
            form.helper['skill_1_level'].wrap(
                FieldWithButtons,
                StrictButton("Max",
                             name="Set_Max_Skill_1",
                             data_skill_field=form['skill_1_level'].auto_id),
            )
            form.helper['skill_1_level'].wrap(Field,
                                              min=1,
                                              max=skills[0]['skill'].max_level)
            form.fields[
                'skill_1_level'].label = skills[0]['skill'].name + " Level"
        else:
            form.helper['skill_1_level'].wrap(Div, css_class="hidden")

        if len(skills) >= 2 and skills[1]['skill'].max_level > 1:
            form.helper['skill_2_level'].wrap(
                FieldWithButtons,
                StrictButton("Max",
                             name="Set_Max_Skill_2",
                             data_skill_field=form['skill_2_level'].auto_id),
                min=1,
                max=skills[1]['skill'].max_level,
            )
            form.helper['skill_2_level'].wrap(Field,
                                              min=1,
                                              max=skills[1]['skill'].max_level)
            form.fields[
                'skill_2_level'].label = skills[1]['skill'].name + " Level"
        else:
            form.helper['skill_2_level'].wrap(Div, css_class="hidden")

        if len(skills) >= 3 and skills[2]['skill'].max_level > 1:
            form.helper['skill_3_level'].wrap(
                FieldWithButtons,
                StrictButton("Max",
                             name="Set_Max_Skill_3",
                             data_skill_field=form['skill_3_level'].auto_id),
                min=1,
                max=skills[2]['skill'].max_level,
            )
            form.helper['skill_3_level'].wrap(Field,
                                              min=1,
                                              max=skills[2]['skill'].max_level)
            form.fields[
                'skill_3_level'].label = skills[2]['skill'].name + " Level"
        else:
            form.helper['skill_3_level'].wrap(Div, css_class="hidden")

        if len(skills) >= 4 and skills[3]['skill'].max_level > 1:
            form.helper['skill_4_level'].wrap(
                FieldWithButtons,
                StrictButton("Max",
                             name="Set_Max_Skill_4",
                             data_skill_field=form['skill_4_level'].auto_id),
                min=1,
                max=skills[1]['skill'].max_level,
            )
            form.helper['skill_4_level'].wrap(Field,
                                              min=1,
                                              max=skills[3]['skill'].max_level)
            form.fields[
                'skill_4_level'].label = skills[3]['skill'].name + " Level"
        else:
            form.helper['skill_4_level'].wrap(Div, css_class="hidden")

        if not instance.monster.homunculus:
            form.helper['custom_name'].wrap(Div, css_class="hidden")

        if request.method == 'POST' and form.is_valid():
            mon = form.save()
            messages.success(request, 'Successfully edited ' + str(mon))

            view_mode = request.session.get('profile_view_mode',
                                            DEFAULT_VIEW_MODE).lower()

            if view_mode == 'list':
                template = loader.get_template(
                    'herders/profile/monster_inventory/monster_list_row_snippet.html'
                )
            else:
                template = loader.get_template(
                    'herders/profile/monster_inventory/monster_box_snippet.html'
                )

            context = {
                'profile_name': profile_name,
                'instance': mon,
                'is_owner': is_owner,
            }

            response_data = {
                'code': 'success',
                'instance_id': mon.pk.hex,
                'html': template.render(context),
            }
        else:
            # Return form filled in and errors shown
            template = loader.get_template(
                'herders/profile/monster_view/edit_form.html')
            context = {'edit_monster_form': form}
            context.update(csrf(request))

            response_data = {'code': 'error', 'html': template.render(context)}

        return JsonResponse(response_data)
    else:
        raise PermissionDenied()
Ejemplo n.º 15
0
    def __init__(self, *args, **kwargs):
        """
        Surcharge de l'initialisation du formulaire
        """
        super().__init__(*args, **kwargs)
        # Tu utilises FormHelper pour customiser ton formulaire
        self.helper = FormHelper()
        # Tu définis l'id et la classe bootstrap de ton formulaire
        self.helper.form_class = 'form-horizontal'
        self.helper.form_id = 'client-form'
        # Tu définis la taille des labels et des champs sur la grille
        self.helper.label_class = 'col-md-2'
        self.helper.field_class = 'col-md-8'
        # Tu crées l'affichage de ton formulaire
        self.helper.layout = Layout(
            # Le formulaire va contenir 3 onglets
            TabHolder(
                # Premier onglet
                Tab(
                    # Label de l'onglet
                    'Général',
                    # Liste des champs du modèle à afficher dans l'onglet
                    'noms',
                    'prenoms',
                    'datenaissance',
                    'photo',
                    # Tu rajoutes un bouton "Suivant"
                    StrictButton(
                        '<span class="glyphicon glyphicon-arrow-right" \
                        aria-hidden="true"></span> %s' % "Suivant",
                        type='button',
                        css_class='btn-warning col-md-offset-9 btnNext',
                    )

                ),
                # Deuxième onglet
                Tab(
                    # Label de l'onglet
                    'Informations',
                    # Liste des champs à afficher
                    'typeclient',
                    'email',
                    'phone',
                    'profession',
                    # Tu rajoutes des boutons "Précédent" et "Suivant"
                    StrictButton(
                        '<span class="glyphicon glyphicon-arrow-left" \
                        aria-hidden="true"></span> %s' % 'Précédent',
                        type='button',
                        css_class='btn-primary btnPrevious',
                    ),
                    StrictButton(
                        '<span class="glyphicon glyphicon-arrow-right" \
                        aria-hidden="true"></span> %s' % 'Suivant',
                        type='button',
                        css_class='btn-warning col-md-offset-8 btnNext',
                    )
                ),
                # Troisième onglet
                Tab(
                    # Label de l'onglet
                    'Autres',
                    # Liste des champs à afficher dont les champs supplémentaires
                    'adresse',
                    'ville',
                    'nationalite',
                    'quartier',
                    # Tu rajoutes des boutons "Précédent" et "Valider"
                    StrictButton(
                        '<span class="glyphicon glyphicon-arrow-left" \
                        aria-hidden="true"></span> %s' % "Précédent",
                        type='button',
                        css_class='btn-warning btnPrevious',
                    ),
                    StrictButton(
                        '<span class="glyphicon glyphicon-ok" \
                        aria-hidden="true"></span> %s' % "Valider",
                        type='submit',
                        css_class='btn-success col-md-offset-8'
                    )
                ),
            ),
        )
Ejemplo n.º 16
0
    def __init__(self, *args, **kwargs):
        """
        Surcharge de l'initialisation du formulaire
        """
        super().__init__(*args, **kwargs)
        # Tu utilises FormHelper pour customiser ton formulaire
        self.helper = FormHelper()
        # Tu définis l'id et la classe bootstrap de ton formulaire
        self.helper.form_class = 'form-horizontal'
        self.helper.form_id = 'pharmacie-form'
        # Tu définis la taille des labels et des champs sur la grille
        self.helper.label_class = 'col-md-2'
        self.helper.field_class = 'col-md-8'
        # Tu crées l'affichage de ton formulaire
        self.helper.layout = Layout(
            # Le formulaire va contenir 3 onglets
            TabHolder(
                # Premier onglet
                Tab(
                    # Label de l'onglet
                    'Étape 1 - Identité',
                    # Liste des champs du modèle à afficher dans l'onglet
                    'nom',
                    'libelle',
                    'slogan',
                    'horaires',
                    'statut',

                    # Tu rajoutes un bouton "Suivant"
                    StrictButton(
                        '<span class="glyphicon glyphicon-arrow-right" \
                        aria-hidden="true"></span> %s' % "Suivant",
                        type='button',
                        css_class='btn-warning col-md-offset-9 btnNext',
                    )),
                # Deuxième onglet
                Tab(
                    # Label de l'onglet
                    'Étape 2 - Coordonnées',
                    # Liste des champs à afficher
                    'agrement',
                    'nom_gerant',
                    'site_web',
                    'email',
                    'boite_postale',
                    # Tu rajoutes des boutons "Précédent" et "Suivant"
                    StrictButton(
                        '<span class="glyphicon glyphicon-arrow-left" \
                        aria-hidden="true"></span> %s' % 'Précédent',
                        type='button',
                        css_class='btn-primary btnPrevious',
                    ),
                    StrictButton(
                        '<span class="glyphicon glyphicon-arrow-right" \
                        aria-hidden="true"></span> %s' % 'Suivant',
                        type='button',
                        css_class='btn-warning col-md-offset-8 btnNext',
                    )),
                # Troisième onglet
                Tab(
                    # Label de l'onglet
                    'Étape 3 - Localisation',
                    # Liste des champs à afficher dont les champs supplémentaires
                    'telephone',
                    'repere',
                    'ville',
                    'quartier',
                    'logo',
                    # Tu rajoutes des boutons "Précédent" et "Valider"
                    StrictButton(
                        '<span class="glyphicon glyphicon-arrow-left" \
                        aria-hidden="true"></span> %s' % "Précédent",
                        type='button',
                        css_class='btn-warning btnPrevious',
                    ),
                    StrictButton('<span class="glyphicon glyphicon-ok" \
                        aria-hidden="true"></span> %s' % "Valider",
                                 type='submit',
                                 css_class='btn-success col-md-offset-8')),
            ), )
Ejemplo n.º 17
0
 def __init__(self, *args, **kwargs):
     """
     Surcharge de l'initialisation du formulaire
     """
     super().__init__(*args, **kwargs)
     # Tu utilises FormHelper pour customiser ton formulaire
     self.helper = FormHelper()
     # Tu définis l'id et la classe bootstrap de ton formulaire
     self.helper.form_class = 'form-horizontal'
     self.helper.form_id = 'medicament-form'
     # Tu définis la taille des labels et des champs sur la grille
     self.helper.label_class = 'col-md-2'
     self.helper.field_class = 'col-md-8'
     # Tu crées l'affichage de ton formulaire
     self.helper.layout = Layout(
         # Le formulaire va contenir 3 onglets
         TabHolder(
             # Premier onglet
             Tab(
                 # Label de l'onglet
                 'Étape 1',
                 # Liste des champs du modèle à afficher dans l'onglet
                 'genre',
                 'famille',
                 'nom_generique',
                 'forme',
                 # Tu rajoutes un bouton "Suivant"
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-right" \
                     aria-hidden="true"></span> %s' % "Suivant",
                     type='button',
                     css_class='btn-warning col-md-offset-9 btnNext',
                 )),
             # Deuxième onglet
             Tab(
                 # Label de l'onglet
                 'Étape 2',
                 # Liste des champs à afficher
                 'code',
                 'conditionnement',
                 'description',
                 # Tu rajoutes des boutons "Précédent" et "Suivant"
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-left" \
                     aria-hidden="true"></span> %s' % 'Précédent',
                     type='button',
                     css_class='btn-primary btnPrevious',
                 ),
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-right" \
                     aria-hidden="true"></span> %s' % 'Suivant',
                     type='button',
                     css_class='btn-warning col-md-offset-8 btnNext',
                 )),
             # Troisième onglet
             Tab(
                 # Label de l'onglet
                 'Étape 3',
                 # Liste des champs à afficher dont les champs supplémentaires
                 'prix_achat',
                 'prix_vente',
                 # Tu rajoutes des boutons "Précédent" et "Valider"
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-left" \
                     aria-hidden="true"></span> %s' % "Précédent",
                     type='button',
                     css_class='btn-warning btnPrevious',
                 ),
                 StrictButton('<span class="glyphicon glyphicon-ok" \
                     aria-hidden="true"></span> %s' % "Valider",
                              type='submit',
                              css_class='btn-success col-md-offset-8')),
         ), )
Ejemplo n.º 18
0
    def __init__(self, *args, **kwargs):
        super(ProfileForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_class = "content-wrapper"
        self.helper.form_method = "post"

        if settings.ZDS_APP["member"]["old_smileys_allowed"]:
            self.fields["options"].choices.insert(
                3, ("use_old_smileys", _("Utiliser les anciens smileys")))

        # to get initial value form checkbox show email
        initial = kwargs.get("initial", {})
        self.fields["options"].initial = ""

        if "show_sign" in initial and initial["show_sign"]:
            self.fields["options"].initial += "show_sign"

        if "is_hover_enabled" in initial and initial["is_hover_enabled"]:
            self.fields["options"].initial += "is_hover_enabled"

        if "allow_temp_visual_changes" in initial and initial[
                "allow_temp_visual_changes"]:
            self.fields["options"].initial += "allow_temp_visual_changes"

        if "use_old_smileys" in initial and initial["use_old_smileys"]:
            self.fields["options"].initial += "use_old_smileys"

        if "show_markdown_help" in initial and initial["show_markdown_help"]:
            self.fields["options"].initial += "show_markdown_help"

        if "email_for_answer" in initial and initial["email_for_answer"]:
            self.fields["options"].initial += "email_for_answer"

        if "email_for_new_mp" in initial and initial["email_for_new_mp"]:
            self.fields["options"].initial += "email_for_new_mp"

        layout = Layout(
            IncludeEasyMDE(),
            Field("biography"),
            ButtonHolder(
                StrictButton(_("Aperçu"),
                             type="preview",
                             name="preview",
                             css_class="btn btn-grey preview-btn"), ),
            HTML("""
                {% if form.biographie.value %}
                    {% include "misc/preview.part.html" with text=form.biographie.value %}
                {% endif %}
            """),
            Field("site"),
            Field("avatar_url"),
            HTML(
                _("""
                <p>
                    <a href="{% url 'gallery-list' %}">Choisir un avatar dans une galerie</a><br/>
                    Naviguez vers l'image voulue et cliquez sur le bouton "<em>Choisir comme avatar</em>".<br/>
                    Créez une galerie et importez votre avatar si ce n'est pas déjà fait !
                </p>
            """)),
            Field("sign"),
            Field("licence"),
            Field("options"),
            ButtonHolder(StrictButton(_("Enregistrer"), type="submit"), ),
        )
        self.helper.layout = layout
Ejemplo n.º 19
0
class Row(Div):
    css_class = "row"


dictionnairesLayout = Layout(
    Row(
        Div(
            Row(HTML("<strong>Dictionnaires </strong>"),
                css_class="card-header"),
            Div(
                Row(
                    Div(FieldWithButtons(
                        'dict_larousse',
                        StrictButton(
                            'Show',
                            css_class="btn-outline-secondary toggle-dict"),
                        StrictButton(
                            'Get',
                            css_class="btn-outline-secondary get-dict")),
                        css_class="col-sm-3"),
                    Div(FieldWithButtons(
                        'dict_cnrtl',
                        StrictButton(
                            'Show',
                            css_class="btn-outline-secondary toggle-dict"),
                        StrictButton(
                            'Get',
                            css_class="btn-outline-secondary get-dict")),
                        css_class="col-sm-3"),
                    Div(FieldWithButtons(
Ejemplo n.º 20
0
    def __init__(self, *args, **kwargs):
        self.pta_modification_enable = kwargs.pop('pta_modification_enable',
                                                  False)
        self.enable_send_to_next_step = kwargs.pop('enable_send_to_next_step',
                                                   False)
        self.send_award_to_multiple_steps_steps = kwargs.pop(
            'send_award_to_multiple_steps_steps', False)
        self.do_not_send_to_next_step = kwargs.pop('do_not_send_to_next_step',
                                                   False)
        super(AwardSectionForm, self).__init__(*args, **kwargs)
        if self.Meta.model == ProposalIntake:
            user_list = User.objects.filter(
                is_active=True,
                groups__name='Proposal Intake').order_by('first_name')
            users = [(user.first_name + ' ' + user.last_name,
                      user.first_name + ' ' + user.last_name)
                     for user in user_list]
            choices = [(self.initial['spa1'], self.initial['spa1']),
                       (u'', u'---------')]
            choices.extend(users)
            self.fields['spa1'].choices = choices
        if self.Meta.model == AwardAcceptance:
            acceptance = AwardAcceptance.objects.get(
                award_id=self.instance.award.id, current_modification=True)
            if acceptance.award_setup_priority:
                self.initial[
                    'award_setup_priority'] = acceptance.award_setup_priority
            else:
                self.initial['award_setup_priority'] = 'ni'
            self.fields['award_setup_priority'].choices = [
                ('on', 1), ('tw', 2), ('th', 3), ('fo', 4), ('fi', 5),
                ('ni', 9)
            ]

        if self.do_not_send_to_next_step:
            self.fields['do_not_send_to_next_step'].initial = True

        form_actions = [
            Reset('reset', 'Cancel'),
            Submit('save', 'Save changes and continue editing')
        ]

        if self.enable_send_to_next_step:
            form_actions.append(
                StrictButton('Save and send award to next step',
                             css_id='submit-and-send',
                             css_class='btn btn-success submit-and-send'))
        if self.send_award_to_multiple_steps_steps:
            form_actions.append(
                StrictButton(
                    'Save and Send award to Negotiation & Award Setup',
                    css_id='submit-and-dual-send',
                    css_class='btn btn-success submit-and-dual-send'))
        if not self.pta_modification_enable:
            if 'pta_modification' in self.fields:
                self.fields.pop('pta_modification')

        if self.Meta.model == AwardSetup:
            form_actions.insert(
                0,
                HTML(
                    '<a href="{% url \'award_setup_report\' award.id %}" class="btn">View EAS Report</a>'
                ))

        if self.Meta.model == AwardNegotiation and not self.instance.award.award_dual_setup:
            form_actions.append(
                StrictButton('Save and Close Record',
                             css_id='submit-and-close',
                             css_class='btn btn-primary submit-and-close'))

        self.helper.layout.extend([
            HTML("<div class='pull-right'>"),
            FormActions(*form_actions),
            HTML("</div>"),
        ])
Ejemplo n.º 21
0
    def __init__(self, *args, **kwargs):
        if 'domain' not in kwargs:
            raise Exception("Expected domain in kwargs")
        self.domain = kwargs.pop('domain')
        self.enhancements_enabled = AUTO_CASE_UPDATE_ENHANCEMENTS.enabled(
            self.domain)
        super(AddAutomaticCaseUpdateRuleForm, self).__init__(*args, **kwargs)

        if not self.enhancements_enabled:
            # Always set the value of filter_on_server_modified to true when the
            # enhancement toggle is not set
            self.data = self.data.copy()
            self.initial['filter_on_server_modified'] = 'true'
            self.data['filter_on_server_modified'] = 'true'

        # We can't set these fields to be required because they are displayed
        # conditionally and we'll confuse django validation if we make them
        # required. However, we should show the asterisk for consistency, since
        # when they are displayed they are required.
        self.fields['update_property_name'].label = _(
            "Property") + '<span class="asteriskField">*</span>'
        self.fields['update_property_value'].label = _(
            "Value") + '<span class="asteriskField">*</span>'
        self.helper = FormHelper()
        self.helper.form_class = 'form form-horizontal'
        self.helper.label_class = 'col-sm-3 col-md-2'
        self.helper.field_class = 'col-sm-4 col-md-3'
        self.helper.form_method = 'POST'
        self.helper.form_action = '#'

        if self.enhancements_enabled:
            self.allow_updates_without_closing()

        _update_property_fields = [
            _f for _f in [
                Field(
                    'update_property_name',
                    ng_model='update_property_name',
                    css_class='case-property-typeahead',
                ),
                Field(
                    'property_value_type',
                    ng_model='property_value_type',
                ) if self.enhancements_enabled else None,
                Field(
                    'update_property_value',
                    ng_model='update_property_value',
                )
            ] if _f
        ]

        _basic_info_fields = [
            _f for _f in [
                Field(
                    'name',
                    ng_model='name',
                ),
                Field(
                    'case_type',
                    ng_model='case_type',
                ),
                Field(
                    'filter_on_server_modified',
                    ng_model='filter_on_server_modified',
                ) if self.enhancements_enabled else None,
                hqcrispy.B3MultiField(
                    _("Close Case") + '<span class="asteriskField">*</span>',
                    Div(
                        hqcrispy.MultiInlineField(
                            'server_modified_boundary',
                            ng_model='server_modified_boundary',
                        ),
                        css_class='col-sm-6',
                    ),
                    Div(
                        HTML('<label class="control-label">%s</label>' %
                             _('days after the case was last modified.')),
                        css_class='col-sm-6',
                    ),
                    help_bubble_text=_(
                        "This will close the case if it has been "
                        "more than the chosen number of days since "
                        "the case was last modified. Cases are "
                        "checked against this rule weekly."),
                    css_id='server_modified_boundary_multifield',
                    label_class=self.helper.label_class,
                    field_class='col-sm-8 col-md-6',
                    ng_show='showServerModifiedBoundaryField()',
                ),
                Field(
                    'action',
                    ng_model='action',
                ),
                Div(*_update_property_fields, ng_show='showUpdateProperty()')
            ] if _f
        ]

        self.set_case_type_choices(self.initial.get('case_type'))
        self.helper.layout = Layout(
            Fieldset(_("Basic Information"), *_basic_info_fields),
            Fieldset(
                _("Filter Cases to Close (Optional)"),
                Field(
                    'conditions',
                    type='hidden',
                    ng_value='conditions',
                ),
                Div(ng_include='', src="'conditions.tpl'"),
            ),
            FormActions(
                StrictButton(
                    _("Save"),
                    type='submit',
                    css_class='btn btn-primary col-sm-offset-1',
                ), ),
        )
Ejemplo n.º 22
0
    def __init__(self, urls, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields["urls"].choices = urls

        self.helper = FormHelper()
        self.helper.layout = Layout(Field("urls"), StrictButton(_("Comparer"), type="submit"))
Ejemplo n.º 23
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.helper = FormHelper()
     self.helper.form_class = 'form-horizontal'
     self.helper.form_id = 'sort-form'
     self.helper.label_class = 'col-md-2'
     self.helper.field_class = 'col-md-8'
     self.helper.layout = Layout(
         TabHolder(
             Tab(
                 'Step 1 - Serum',
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-right" \
                     aria-hidden="true"></span> %s' % "Next",
                     type='button',
                     css_class='btn-warning col-md-offset-10 btnNext',
                 ), Fieldset(
                     'Serum Fields',
                     'serum_fields',
                 )),
             Tab(
                 'Step 2 - Freezer',
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-left" \
                     aria-hidden="true"></span> %s' % 'Previous',
                     type='button',
                     css_class='btn-danger btnPrevious',
                 ),
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-right" \
                     aria-hidden="true"></span> %s' % "Next",
                     type='button',
                     css_class='btn-warning col-md-offset-10 btnNext',
                 ), Fieldset(
                     'Freezer Fields',
                     'freezer_fields',
                 )),
             Tab(
                 'Step 3 - Results',
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-left" \
                     aria-hidden="true"></span> %s' % 'Previous',
                     type='button',
                     css_class='btn-danger btnPrevious',
                 ),
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-right" \
                     aria-hidden="true"></span> %s' % "Next",
                     type='button',
                     css_class='btn-warning col-md-offset-10 btnNext',
                 ),
                 Fieldset(
                     'Elisa',
                     Fieldset(
                         'General',
                         'elisa_general_fields',
                     ),
                     Fieldset(
                         'Pathogens',
                         'pathogen',
                     ),
                 ),
                 Fieldset(
                     'Protein MicroArray',
                     Fieldset(
                         'General',
                         'pma_general_fields',
                     ),
                     Fieldset(
                         'Pathogens',
                         'pma_results_fields',
                     ),
                 ),
             ),
             Tab(
                 'Step 4 - Export',
                 StrictButton(
                     '<span class="glyphicon glyphicon-arrow-left" \
                     aria-hidden="true"></span> %s' % 'Previous',
                     type='button',
                     css_class='btn-danger btnPrevious',
                 ),
                 StrictButton('<span class="glyphicon glyphicon-ok" \
                     aria-hidden="true"></span> %s' % "Export Data",
                              type='submit',
                              css_class='btn-success col-md-offset-11'),
                 Fieldset(
                     'Select a type of file',
                     'file_type',
                 )),
         ), )
Ejemplo n.º 24
0
    def __init__(self,
                 account,
                 domain,
                 creating_user,
                 current_subscription,
                 renewed_version,
                 data=None,
                 *args,
                 **kwargs):
        self.current_subscription = current_subscription
        super(ConfirmSubscriptionRenewalForm, self).__init__(account,
                                                             domain,
                                                             creating_user,
                                                             data=data,
                                                             *args,
                                                             **kwargs)

        self.fields['plan_edition'].initial = renewed_version.plan.edition
        self.fields['confirm_legal'].label = mark_safe(
            ugettext_noop('I have read and agree to the <a href="%(pa_url)s" '
                          'target="_blank">Software Product Agreement</a>.') %
            {
                'pa_url': reverse("product_agreement"),
            })

        from corehq.apps.domain.views import DomainSubscriptionView
        self.helper.layout = crispy.Layout(
            'plan_edition',
            crispy.Fieldset(
                _("Billing Administrators"),
                crispy.Field('billing_admins', css_class='input-xxlarge'),
            ),
            crispy.Fieldset(
                _("Basic Information"),
                'company_name',
                'first_name',
                'last_name',
                crispy.Field('emails', css_class='input-xxlarge'),
                'phone_number',
            ),
            crispy.Fieldset(
                _("Mailing Address"), 'first_line', 'second_line', 'city',
                'state_province_region', 'postal_code',
                crispy.Field('country',
                             css_class="input-large",
                             data_countryname=dict(COUNTRIES).get(
                                 self.current_country, ''))),
            crispy.Fieldset(
                _("Re-Confirm Product Agreement"),
                'confirm_legal',
            ),
            FormActions(
                crispy.HTML(
                    '<a href="%(url)s" style="margin-right:5px;" class="btn">%(title)s</a>'
                    % {
                        'url':
                        reverse(DomainSubscriptionView.urlname,
                                args=[self.domain]),
                        'title':
                        _("Cancel"),
                    }),
                StrictButton(
                    _("Renew Plan"),
                    type="submit",
                    css_class='btn btn-success',
                ),
            ),
        )
Ejemplo n.º 25
0
    def __init__(self, *args, **kwargs):
        self.domain = kwargs.pop('domain', None)
        self.account = kwargs.pop('account', None)
        self.username = kwargs.pop('username', None)
        self.export_settings = kwargs.pop('export_settings', None)
        kwargs['initial'] = {
            "restrict_domain_creation": self.account.restrict_domain_creation,
            "restrict_signup": self.account.restrict_signup,
            "restrict_signup_message": self.account.restrict_signup_message,
        }

        if self.export_settings and domain_has_privilege(
                self.domain, DEFAULT_EXPORT_SETTINGS):
            kwargs['initial'].update(self.export_settings.as_dict())

        super(EnterpriseSettingsForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.helper.form_id = 'enterprise-settings-form'
        self.helper.form_class = 'form-horizontal'
        self.helper.form_action = reverse("edit_enterprise_settings",
                                          args=[self.domain])
        self.helper.label_class = 'col-sm-3 col-md-2'
        self.helper.field_class = 'col-sm-9 col-md-8 col-lg-6'
        self.helper.layout = crispy.Layout(
            crispy.Fieldset(
                _("Edit Enterprise Settings"),
                PrependedText('restrict_domain_creation', ''),
                crispy.Div(
                    PrependedText('restrict_signup',
                                  '',
                                  data_bind='checked: restrictSignup'), ),
                crispy.Div(
                    crispy.Field('restrict_signup_message'),
                    data_bind='visible: restrictSignup',
                ),
            ))

        if domain_has_privilege(self.domain, DEFAULT_EXPORT_SETTINGS):
            self.helper.layout.append(
                crispy.Div(
                    crispy.Fieldset(
                        _("Edit Default Form Export Settings"),
                        crispy.Div(crispy.Field('forms_filetype'), ),
                        PrependedText('forms_auto_convert', ''),
                        PrependedText('forms_auto_format_cells', ''),
                        PrependedText('forms_expand_checkbox', ''),
                    ),
                    crispy.Fieldset(
                        _("Edit Default Case Export Settings"),
                        crispy.Div(crispy.Field('cases_filetype')),
                        PrependedText('cases_auto_convert', ''),
                    ),
                    crispy.Fieldset(
                        _("Edit Default OData Export Settings"),
                        PrependedText('odata_expand_checkbox', ''),
                    ),
                ))

        self.helper.layout.append(
            hqcrispy.FormActions(
                StrictButton(
                    _("Update Enterprise Settings"),
                    type="submit",
                    css_class='btn-primary',
                )))
Ejemplo n.º 26
0
    def __init__(self,
                 account,
                 domain,
                 creating_user,
                 data=None,
                 *args,
                 **kwargs):
        self.account = account
        self.domain = domain
        self.creating_user = creating_user

        try:
            self.current_country = self.account.billingcontactinfo.country
        except Exception:
            initial = kwargs.get('initial')
            self.current_country = initial.get(
                'country') if initial is not None else None

        try:
            kwargs['instance'] = self.account.billingcontactinfo
        except BillingContactInfo.DoesNotExist:
            pass

        super(EditBillingAccountInfoForm, self).__init__(data, *args, **kwargs)

        other_admins = self.account.billing_admins.filter(
            domain=self.domain).exclude(web_user=self.creating_user).all()
        self.fields['billing_admins'].initial = ','.join(
            [o.web_user for o in other_admins])

        self.helper = FormHelper()
        self.helper.form_class = 'form form-horizontal'
        self.helper.layout = crispy.Layout(
            crispy.Fieldset(
                _("Billing Administrators"),
                crispy.Field('billing_admins', css_class='input-xxlarge'),
            ),
            crispy.Fieldset(
                _("Basic Information"),
                'company_name',
                'first_name',
                'last_name',
                crispy.Field('emails', css_class='input-xxlarge'),
                'phone_number',
            ),
            crispy.Fieldset(
                _("Mailing Address"),
                'first_line',
                'second_line',
                'city',
                'state_province_region',
                'postal_code',
                crispy.Field('country',
                             css_class="input-large",
                             data_countryname=dict(COUNTRIES).get(
                                 self.current_country, '')),
            ),
            FormActions(
                StrictButton(
                    _("Update Billing Information"),
                    type="submit",
                    css_class='btn btn-primary',
                ), ),
        )
Ejemplo n.º 27
0
 def layout(self):
     self.helper.layout = Layout(
         'q_quick_search_kw',
         StrictButton('Search', type="submit", css_class='btn-sm btn-default'),
         StrictButton('Export', type="submit", name="export", css_class='btn-sm btn-default'),
     )
Ejemplo n.º 28
0
    def __init__(self,
                 *args,
                 workshop_url,
                 has_perm_to_edit=True,
                 has_perm_to_disable_uploads=False,
                 profile_warnings=None,
                 **kwargs):
        super(ModelForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.helper.include_media = False

        # Disable fields that should be disabled
        if not self.instance.is_workshop_editable() or not has_perm_to_edit:
            for field in self.fields.values():
                field.disabled = True

        if self.instance.status:
            # The proposition cannot be edited once the workshop has a status set
            self.fields['proposition_description'].disabled = True

        if not has_perm_to_disable_uploads:
            self.fields['solution_uploads_enabled'].disabled = True

        # Make sure only current category and type choices are displayed
        if self.instance is None:
            raise ValueError(
                'WorkshopForm must be provided with an instance with the .year field already set'
            )
        year = self.instance.year
        self.fields['category'].queryset = WorkshopCategory.objects.filter(
            year=year)
        self.fields['type'].queryset = WorkshopType.objects.filter(year=year)

        # Display link to current qualification tasks:
        if self.instance.qualification_problems:
            self.fields['qualification_problems'].help_text = format_html(
                'Aktualnie: <a href="{}" target="_blank">{}</a>',
                reverse('qualification_problems',
                        args=[self.instance.year.pk, self.instance.name]),
                os.path.basename(self.instance.qualification_problems.path))
        else:
            self.fields['qualification_problems'].help_text = 'Aktualnie: brak'

        # Configure TinyMCE settings
        mce_attrs = {}
        mce_attrs['readonly'] = self.fields[
            'proposition_description'].disabled  # does not seem to respect the Django field settings for some reason
        self.fields['proposition_description'].widget = InitializedTinyMCE(
            mce_attrs=mce_attrs)

        mce_attrs = settings.TINYMCE_DEFAULT_CONFIG_WITH_IMAGES.copy()
        if self.instance and self.instance.pk:
            mce_attrs['automatic_uploads'] = True
            mce_attrs['images_upload_url'] = reverse('workshop_edit_upload',
                                                     kwargs={
                                                         'year':
                                                         self.instance.year.pk,
                                                         'name':
                                                         self.instance.name
                                                     })
        mce_attrs['readonly'] = self.fields[
            'page_content'].disabled  # does not seem to respect the Django field settings for some reason
        self.fields['page_content'].widget = InitializedTinyMCE(
            mce_attrs=mce_attrs)

        # Layout
        self.fieldset_general = Fieldset(
            "Ogólne",
            Div(Div(PrependedAppendedText(
                'name',
                workshop_url[0] + '<b>' + str(year.pk) + '</b>' +
                workshop_url[1],
                workshop_url[2],
                template=
                "%s/layout/prepended_appended_text_with_mobile_support.html"),
                    css_class='col-lg-12'),
                Div('title', css_class='col-lg-12'),
                css_class='row'),
            Div(Div('type', css_class='col-lg-6'),
                Div('category', css_class='col-lg-6'),
                css_class='row'),
        )
        if profile_warnings:
            for message in profile_warnings:
                self.fieldset_general.fields.append(
                    Alert(content=message,
                          dismiss=False,
                          css_class='alert-info'))
        self.fieldset_proposal = Fieldset(
            "Opis propozycji",
            'proposition_description',
        )
        self.fieldset_qualification = Fieldset(
            "Kwalifikacja",
            'is_qualifying',
            Div('qualification_problems',
                Div(Div('max_points', css_class='col-lg-6'),
                    Div('qualification_threshold', css_class='col-lg-6'),
                    css_class='row'),
                'solution_uploads_enabled',
                css_id='qualification_settings'),
        )
        self.fieldset_public_page = Fieldset("Strona warsztatów",
                                             'short_description',
                                             'page_content',
                                             'page_content_is_public')
        self.fieldset_submit = FormActions(
            StrictButton(
                'Zapisz' if self.instance and self.instance.pk else 'Zgłoś!',
                type='submit',
                css_class='btn-outline-primary btn-lg mx-1 my-3'),
            css_class='text-right',
        )

        if not self.instance or not self.instance.is_publicly_visible():
            for field in [
                    'qualification_problems', 'is_qualifying',
                    'solution_uploads_enabled', 'max_points',
                    'qualification_threshold', 'short_description',
                    'page_content', 'page_content_is_public'
            ]:
                del self.fields[field]

            self.helper.layout = Layout(
                self.fieldset_general,
                self.fieldset_proposal,
                self.fieldset_submit,
            )
        else:
            if not has_perm_to_edit:
                self.helper.layout = Layout(
                    self.fieldset_general,
                    self.fieldset_proposal,
                    self.fieldset_qualification,
                    self.fieldset_public_page,
                )
            else:
                self.helper.layout = Layout(
                    self.fieldset_general,
                    self.fieldset_proposal,
                    self.fieldset_qualification,
                    self.fieldset_public_page,
                    self.fieldset_submit,
                )
Ejemplo n.º 29
0
    def __init__(self,
                 account,
                 domain,
                 creating_user,
                 data=None,
                 *args,
                 **kwargs):
        super(ConfirmExtraUserChargesForm, self).__init__(account,
                                                          domain,
                                                          creating_user,
                                                          data=data,
                                                          *args,
                                                          **kwargs)
        self.fields['confirm_product_agreement'].label = _(
            'I have read and agree to the <a href="%(pa_url)s" target="_blank">'
            'Software Product Subscription Agreement</a>.') % {
                'pa_url': reverse('product_agreement')
            }

        from corehq.apps.users.views.mobile import MobileWorkerListView
        self.helper.label_class = 'col-sm-3 col-md-2'
        self.helper.field_class = 'col-sm-9 col-md-8 col-lg-6'
        self.helper.layout = crispy.Layout(
            crispy.Fieldset(
                _("Basic Information"),
                'company_name',
                'first_name',
                'last_name',
                crispy.Field('email_list', css_class='input-xxlarge'),
                'phone_number',
            ),
            crispy.Fieldset(
                _("Mailing Address"),
                'first_line',
                'second_line',
                'city',
                'state_province_region',
                'postal_code',
                crispy.Field('country',
                             css_class="input-large",
                             data_countryname=COUNTRIES.get(
                                 self.current_country, '')),
            ),
            hqcrispy.B3MultiField(
                '',
                crispy.Field('confirm_product_agreement'),
            ),
            hqcrispy.FormActions(
                crispy.HTML(
                    '<a href="%(user_list_url)s" class="btn btn-default">%(text)s</a>'
                    % {
                        'user_list_url':
                        reverse(MobileWorkerListView.urlname,
                                args=[self.domain]),
                        'text':
                        _("Back to Mobile Workers List")
                    }),
                StrictButton(
                    _("Confirm Billing Information"),
                    type="submit",
                    css_class='btn btn-primary disabled',
                    disabled="disabled",
                    css_id="submit-button-pa",
                ),
                crispy.HTML(
                    '<p class="help-inline" id="submit-button-help-qa" style="vertical-align: '
                    'top; margin-top: 5px; margin-bottom: 0px;">%s</p>' %
                    _("Please agree to the Product Subscription "
                      "Agreement above before continuing.")),
            ),
        )
Ejemplo n.º 30
0
    def __init__(self, *args, participant_view=False, **kwargs):
        super(WorkshopParticipantPointsForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.helper.include_media = False
        self.helper.form_tag = False
        self.helper.form_class = 'form-horizontal'
        self.helper.label_class = 'col-lg-3'
        self.helper.field_class = 'col-lg-9'
        self.helper.layout = Layout(
            AppendedText(
                'qualification_result',
                'na&nbsp;<b>{}</b>&nbsp;możliwych'.format(
                    self.instance.workshop.max_points)
                if self.instance.workshop.max_points is not None else None,
                css_class='col-md-3'),
            'comment',
            # I don't think there is any proper way to render a field-like constant text using crispy forms :<
            HTML(
                format_html(
                    '''
                <div id="div_id_mark" class="form-group row">
                    <label for="id_mark" class="col-form-label col-lg-3">
                        Zakwalifikowano
                    </label>

                    <div class="col-lg-9">
                        <div id="id_mark" class="form-control px-0" style="border: 0;">
                            {}
                        </div>
                        {}
                    </div>
                </div>
            ''', qualified_mark(self.instance.is_qualified()),
                    mark_safe(
                        '<small id="hint_id_mark" class="form-text text-muted">To pole jest wypełniane automatycznie na podstawie progu kwalifikacji ustawionego w edytorze warsztatów</small>'
                    ) if not participant_view else '')))
        if not participant_view:
            self.helper.layout.fields.append(
                FormActions(StrictButton(
                    'Zapisz',
                    type='submit',
                    css_class='btn-outline-primary btn-lg mx-1 my-3'),
                            css_class='text-right row'))

            self.fields[
                'comment'].help_text = 'Komentarz jest widoczny dla uczestnika na stronie z wynikami kwalifikacji oraz w widoku rozwiązania'
            self.fields[
                'qualification_result'].help_text = 'Maksymalną liczbę punktów możliwą do uzyskania można ustawić w edytorze warsztatów. Możesz postawić punkty bonusowe powyżej tej wartości, ale tylko do {}% wartości bazowej.'.format(
                    settings.MAX_POINTS_PERCENT)

        for field in self.fields.values():
            # autocomplete=off fixes a problem on Firefox where the form fields don't reset on reload, making the save button visibility desync
            field.widget.attrs.update({
                'class': 'form-control',
                'autocomplete': 'off'
            })
            field.required = False

        if not self.instance.workshop.is_qualification_editable(
        ) or participant_view:
            for field in self.fields.values():
                field.disabled = True