Skip to content
Snippets Groups Projects
package_basic_fields.html 15.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • {% import 'macros/form.html' as form %}
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    {% block styles %}
      {% asset 'ckanext-odsh/odsh_datepicker_style' %}
    {% endblock styles %}
    
    anonymous's avatar
    anonymous committed
    {% set dataset_is_draft = data.get('state', 'draft').startswith('draft') or data.get('state', 'none') == 'none' %}
    
    root's avatar
    root committed
    
    {# field title #}
    
    {% block package_basic_fields_title %}
    
      {% set error_string = _(_('Title') + ': '+errors.title[0]) if errors.title %}
      {{ 
          form.input(
            'title',
            id='field-title', 
    
    root's avatar
    root committed
            label=_('Title'), 
            value=data.title,
            error=error_string, 
            classes=['control-full'], 
            attrs={'data-module': 'slug-preview-target'},
            is_required=true,
            placeholder=_('Enter title')
    
    root's avatar
    root committed
    {% endblock package_basic_fields_title %}
    
    {# field name #}
    {% block package_basic_fields_url %}
      {% set prefix = h.url_for('dataset.read', id='') %}
      {% set domain = h.url_for('dataset.read', id='', qualified=true) %}
      {% set domain = domain|replace("http://", "")|replace("https://", "") %}
      {% set attrs = {'data-module': 'slug-preview-slug', 'data-module-prefix': domain, 'data-module-placeholder': '<dataset>', 'class': 'form-control input-sm'} %}
      {{ 
        form.prepend('name',
          id='field-name',
          label=_('URL'),
          prepend=prefix,
          placeholder=_('eg. my-dataset'),
          value=data.name,
          error=errors.name,
          attrs=attrs,
          is_required=true
        )
      }}
    {% endblock %}
    
    root's avatar
    root committed
    {# field note #}
    {% block package_basic_fields_description %}
    {% set error_string = _(_('Description') + ': '+errors.notes[0]) if errors.notes %}
    {{ 
        form.markdown(
            'notes', 
            id='field-notes', 
            label=_('Description'), 
            value=data.notes,
            error=error_string, 
            is_required=false, 
            placeholder=_('Enter description')
        ) 
    }}
    {% endblock package_basic_fields_description %}
    
    root's avatar
    root committed
    {# field Organization #}
    {% block package_basic_fields_org %}
    {% if data.group_id %}
    <input type="hidden" name="groups__0__id" value="{{ data.group_id }}" />
    {% endif %}
    
    root's avatar
    root committed
    {% set dataset_has_organization = data.owner_org or data.group_id %}
    {% set organizations_available = h.organizations_available('create_dataset') %}
    {% set user_is_sysadmin = h.check_access('sysadmin') %}
    {% set show_organizations_selector = organizations_available %}
    {% set show_visibility_selector = dataset_has_organization or (organizations_available and (user_is_sysadmin or
    dataset_is_draft)) %}
    {% set existing_org = data.owner_org or data.group_id %}
    
    <div class="control-group field-organization">
        <label for="field-organizations" class="control-label">
            {{ _('Organization') }}
    
            <span title="{{ _('This field is required') }}" class="control-required">*</span>
    
    root's avatar
    root committed
        </label>
        <div class="controls">
    
            <div class="row-fluid">
    
    root's avatar
    root committed
                <div class="span6">
                    <select id="field-organizations" name="owner_org" data-module="autocomplete">
                        {% if h.check_config_permission('create_unowned_dataset') %}
    
    Thorge Petersen's avatar
    Thorge Petersen committed
                        <option value="" {% if not selected_org and data.id %} selected="selected" {% endif %}>{{ _('No organization') }}</option>
    
    root's avatar
    root committed
                        {% endif %}
                        {% for organization in organizations_available %}
                        {# get out first org from users list only if there is not an existing org #}
                        {% set selected_org = (existing_org and existing_org == organization.id) or (not existing_org and not data.id and organization.id == organizations_available[0].id) %}
                        <option value="{{ organization.id }}" {% if selected_org %} selected="selected" {% endif %}>{{
                            organization.display_name }}</option>
                        {% endfor %}
                    </select>
    
    anonymous's avatar
    anonymous committed
                </div>
            </div>
        </div>
    
    root's avatar
    root committed
    </div>
    {% endblock package_basic_fields_org %}
    
    anonymous's avatar
    anonymous committed
    
    
    root's avatar
    root committed
    {# field license #}
    {% block package_basic_fields_license %}
    
    {% set error_missing_attr = h.odsh_extract_error('licenseAttributionByText', errors) %}
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    <div class="control-group field-license">
    
    
    root's avatar
    root committed
    <label class="control-label" for="field-license">
        {{ _("License") }}:
    
        <span title="{{ _('This field is required') }}" class="control-required">*</span>
    
    root's avatar
    root committed
    </label>
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    <div class="controls">
      <div class="row-fluid">
        <div class="span3">
    
    root's avatar
    root committed
                {% set error = errors.license_id %}
                {% set error_license_id = _(_("License") + ': '+errors.license_id[0] ) if errors.license_id %}
            <div class="control-group {{ " error" if error_license_id }}">
                <div class="controls">
                    <select id="field-license" name="license_id">
                        {% set existing_license_id = data.get('license_id') %}
                        {% for license_id, license_desc in h.presorted_license_options(existing_license_id) %}
                        <option value="{{ license_id }}" {% if existing_license_id==license_id %}selected="selected" {%
                            endif %}>{{ license_desc }}</option>
                        {% endfor %}
                    </select>
    
    root's avatar
    root committed
        </div>
    
    Thorge Petersen's avatar
    Thorge Petersen committed
        <div class="span3">
    
    root's avatar
    root committed
            {# field Namensnennung #}
            {% set field = 'licenseAttributionByText' %}
            {% set value = h.odsh_extract_value_from_extras(data.extras,field) %}
            <div class="control-group {{ " error" if error_missing_attr }} control-full">
                <div class="controls">
    
                            {{ form.input_extra(field, value=value, index=0, type='text', attrs={'disabled':true,
    
    root's avatar
    root committed
            'data-module':"odsh_form", 'data-module-licensetoggle':'true', 'data-module-autofill':'true'}, placeholder=_('enter name')) }}
    
    anonymous's avatar
    anonymous committed
                </div>
    
            </div>
        </div>
    
    root's avatar
    root committed
        {% if error_license_id %} 
            <div class="span6 inline-error">
                {{_(error_license_id)}}
            </div>
        {% endif %}
        {% if error_missing_attr%} 
            <div class="span6 inline-error">
                {{_(error_missing_attr)}}
            </div>
        {% endif %}
    
    Thorge Petersen's avatar
    Thorge Petersen committed
        </div>
      </div>
    
    root's avatar
    root committed
    </div>
    {% endblock package_basic_fields_license%}
    
    root's avatar
    root committed
    
    {# timerange #}
    {% set error_start = h.odsh_extract_error_new('temporal_start', errors) %}
    {% set error_end = h.odsh_extract_error_new('temporal_end', errors) %}
    {% set error_string = 'odsh_temporal_error_label' if error_start and error_end else (error_start if error_start else (error_end if error_end))%}
    
    <label for="start-end" class="control-label">
      {{ _('Period') }}: <span title="{{ _('This field is required') }}" class="control-required">*</span>
    
    root's avatar
    root committed
    </label>
    <div class='row-fluid'>
        <div id='start-end' class='span3'>
            {# field temporal_start #}
            {% set field = 'temporal_start' %}
            {% set data_temporal_start = h.odsh_extract_value_from_extras(data.extras,field) %}
            {% set value = data_temporal_start.split('T')[0] if data_temporal_start else None %}
    
            {% set index = 1 %}
    
    root's avatar
    root committed
            <div class="control-group {{ " error" if error_start }} control-full">
                <div class="controls">
    
    Thorge Petersen's avatar
    Thorge Petersen committed
                    {{ form.input_extra(field, value=value, index=index, type='hidden') }}
                    <input pattern="\d{2}\.\d{2}\.\d{4}" autocomplete="off" id="datepicker_start" type="text" 
                        value="{{h.odsh_render_datetime(value, False)}}" placeholder="{{ _('from') }}"
                        data-module="odsh_datepicker" data-module-target='field-temporal_start-value'/>
    
    anonymous's avatar
    anonymous committed
                </div>
    
    root's avatar
    root committed
        </div>
        <div class='span3'>
            {# field temporal_end #}
            {% set field = 'temporal_end' %}
            {% set data_temporal_end = h.odsh_extract_value_from_extras(data.extras,field) %}
            {% set value = data_temporal_end.split('T')[0] if data_temporal_end else None %}
            <div class="control-group {{ " error" if error_end }} control-full">
                <div class="controls">
    
    Thorge Petersen's avatar
    Thorge Petersen committed
                    {{ form.input_extra(field, value=value, index=2, type='hidden') }}
                    <input pattern="\d{2}\.\d{2}\.\d{4}" autocomplete="off" id="datepicker_end" type="text" 
                        value="{{h.odsh_render_datetime(value, False)}}" placeholder="{{ _('to') }}"
                        data-module="odsh_datepicker" data-module-target='field-temporal_end-value'/>
    
    anonymous's avatar
    anonymous committed
                </div>
    
    anonymous's avatar
    anonymous committed
            </div>
    
    root's avatar
    root committed
        {% if error_string %} 
            <div class="span6 inline-error">
                {{_(error_string)}}
            </div>
        {% endif %}
    </div>
    
    root's avatar
    root committed
    {# field issued #}
    {% set field = 'issued' %}
    {% set data_issued = h.odsh_extract_value_from_extras(data.extras,field) %}
    {% set error = h.odsh_extract_error_new(field, errors) %}
    {% set value = data_issued.split('T')[0] if data_issued else (h.odsh_now() if not error else '')%}
    <div class="control-group {{ " error" if error }} control-full">
    
    Thorge Petersen's avatar
    Thorge Petersen committed
        <label class="control-label" for="field-{{field}}">{{ _('Publication date') }}: <span title="{{ _('This field is required') }}" class="control-required">*</span> </label>
    
    root's avatar
    root committed
        <div class="controls">
            <div class="row-fluid">
                <div class="span6">
    
                    {{ form.input_extra(field, value=value , index=3, type='hidden') }}
    
    root's avatar
    root committed
                    <input  pattern="\d{2}\.\d{2}\.\d{4}" autocomplete="off" type="text" 
                        value="{{h.odsh_render_datetime(value, False)}}" 
                        data-module="odsh_datepicker" data-module-target='field-issued-value'/>
                </div>
                <div class="span6 inline-error">
                    {% if error %} 
                    {{_(error)}}
                    {% endif %}
    
    anonymous's avatar
    anonymous committed
                </div>
            </div>
    
    root's avatar
    root committed
    </div>
    
    root's avatar
    root committed
    {# field tags #}
    {% block package_basic_fields_tags %}
    {% set tag_attrs = {
        'data-module': 'autocomplete', 
        'data-module-tags': '', 
        'data-module-source': '/api/2/util/tag/autocomplete?incomplete=?'
    } %}
    {{ 
        form.input(
            'tag_string', 
            id='field-tags', 
            label=_('Tags'), 
            value=data.tag_string, 
            error=errors.tag_string,
            classes=['control-full'], 
            attrs=tag_attrs,
            is_required=false, 
            placeholder=_('odsh tags placeholder')
        ) 
    }}
    {% endblock %}
    
    root's avatar
    root committed
    {# field spatial_uri #}
    {% set spatial_uri_from_extras =  h.odsh_extract_value_from_extras(data.extras, 'spatial_uri') %}
    {% set spatial_uri = data.spatial_uri_temp or spatial_uri_from_extras or '' %}
    {{ form.select_autocomplete('spatial_uri_temp', label=_('Spatial uri'), selected=spatial_uri, options=h.get_spatial_for_selection(), is_required=False, classes=['control-full', 'field-spatial_uri'])}}
    
    
    {# field private #}
    <div class="control-group">
        <label for="field-private" class="control-label">{{ _('Visibility') }}:
    
            <span title="{{ _('This field is required') }}" class="control-required">*</span>
    
    root's avatar
    root committed
        </label>
        <div class="controls">
            <div class="row-fluid">
                <div class="span6">
                    <select id="field-private" name="private">
                        {% for option in [('True', _('Private')), ('False', _('Public'))] %}
                        <option value="{{ option[0] }}" {% if option[0]==data.private|trim %}selected="selected" {%
                            endif %}>{{
                            option[1] }}</option>
                        {% endfor %}
                    </select>
    
    anonymous's avatar
    anonymous committed
                </div>
    
    root's avatar
    root committed
    </div>
    
    root's avatar
    root committed
    {% if data.id and h.check_access('package_delete', {'id': data.id}) and data.state != 'active' %}
    <div class="control-group">
    
        <label for="field-state" class="control-label">{{ _('State') }}:</label>
    
    root's avatar
    root committed
        <div class="controls">
            <div class="row-fluid">
                <div class="span6">
                    <select id="field-state" name="state">
                        <option value="active" {% if data.get('state', 'none' )=='active' %} selected="selected" {%
                            endif %}>{{
                            _('Active') }}</option>
                        <option value="deleted" {% if data.get('state', 'none' )=='deleted' %} selected="selected" {%
                            endif %}>{{
                            _('Deleted') }}</option>
                    </select>
    
    anonymous's avatar
    anonymous committed
                </div>
    
            </div>
        </div>
    
    root's avatar
    root committed
    </div>
    {% endif %}
    
    anonymous's avatar
    anonymous committed
    
    
    root's avatar
    root committed
    
    {# field groups #}
    {% set error_groups = h.odsh_extract_error_new('groups', errors) %}
    <div class="control-group {{ " error" if error_groups }}">
        {% set groups_label='Kategorien'%}
        {% set multiselect_nonSelectedText='keine' %}
        {% set multiselect_allSelectedText='alle' %}
        {% set multiselect_nSelectedText='gewählt' %}
        <label for="field-groups" class="control-label">
    
            {{ groups_label }}: <span title="{{ _('This field is required') }}" class="control-required">*</span>
    
    root's avatar
    root committed
        </label>
        <div class="controls">
            <div class="row-fluid">
                <div class="span6">
                    {% set existing_groups = data.get('groups') %}
                    {% if existing_groups %}
                    {% set existing_groups_string = existing_groups|map(attribute='id')|join(',') %}
                    {% else %}
                    {% set existing_groups_string = h.odsh_extract_value_from_extras(data.extras,'groups') %}
                    {% endif %}
                    <select id='field-groups' multiple="multiple" data-module="odsh_form" data-module-multiselect='true'
                        data-module-nonSelectedText="{{multiselect_nonSelectedText}}" data-module-allSelectedText="{{multiselect_allSelectedText}}"
                        data-module-nSelectedText="{{multiselect_nSelectedText}}" data-module-update='{{data.id != None}}'>
                        {% for option in h.groups_available()%}
                        <option value={{option.id}} {% if existing_groups_string!=None and option['id'] in existing_groups_string %}selected="selected"
                            {% endif %}>
                            {{ option['display_name'] }}</option>
                        {% endfor %}
                    </select>
                    <div id='selected-groups'>
    
                        {{ form.input_extra('groups', value=existing_groups_string, index=4, type='hidden')}}
    
    anonymous's avatar
    anonymous committed
                    </div>
                </div>
    
    root's avatar
    root committed
                <div class="span6 inline-error">
                    {% if error_groups %} 
                    {{_(error_groups)}}
                    {% endif %}
                </div>
    
    anonymous's avatar
    anonymous committed
            </div>
    
    root's avatar
    root committed
        </div>
    </div>
    
                
    {# field reference #}
    {% set field = 'reference' %}
    {% set error_reference = h.odsh_extract_error(field, errors) %}
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    {% set value = data.get(field) or '' %}
    
    {{ form.select_autocomplete(field, label=_('Sample Dataset'), selected=value, options=h.odsh_load_mdk_sample_dataset(), error=error_reference, is_required=False, classes=['control-full', 'field-reference'])}}
    
    {# field applicableLegislation #}
    {% set field = 'applicableLegislation' %}
    {% set error_reference = h.odsh_extract_error(field, errors) %}
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    {% set value = data.get(field) or '' %}
    
    {{ form.select_autocomplete(field, label=_('Applicable Legislation'), selected=value, options=h.odsh_load_applicable_legislations(), error=error_reference, is_required=False, classes=['control-full', 'field-applicableLegislation'], is_multiple=True)}}
    
    
    {# field hvdCategory #}
    {% set field = 'hvdCategory' %}
    {% set error_reference = h.odsh_extract_error(field, errors) %}
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    {% set value = data.get(field) or '' %}
    
    {{ form.select_autocomplete(field, label=_('HVD Category'), selected=value, options=h.odsh_load_hvd_categories(), error=error_reference, is_required=False, classes=['control-full', 'field-hvdCategory'], is_multiple=True)}}
    
    
    {% block scripts %}
      {% asset 'ckanext-odsh/odsh_datepicker_script' %}
      {% asset 'ckanext-odsh/odsh_form_script' %}
    {% endblock scripts %}