Skip to content

allow override of Visibility field business logic from organisation field #423

@avowkind

Description

@avowkind

The ckanext/scheming/templates/scheming/form_snippets/organisation.html snippet closely couples the visibility field to the organisation field. Forcing them to be adjacent, visibility always showing and unable to set a default value for visibility.

A dataset schema containing this:

  - field_name: "owner_org"
    label: "Organization"
    preset: "dataset_organization"

results in two fields Organisation and Visibility where each time the organisation is changed the visibility is reset to private or to the previously saved value.

{% block package_metadata_fields_visibility %}
    <div class="control-group form-group control-medium">
      <label for="field-private" class="control-label">{{ _('Visibility') }}</label>
      <div class="controls">
        <select id="field-private" name="private" class="form-control form-select">
          {% 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>
      </div>
    </div>
  {% endblock %}
  • There is no documented method to set the default visibility to public either globally or on a per- organisation basis.

I suggest that either:

  1. The visibility field can be optionally dropped out of the dataset_organization preset and visibility added independently as a field which then allows setting of the default value.
  2. or a parameter default: True is available and used if the data.private is not set
  3. or perhaps a check is made for the organisation record having a default_visibility field and the default is set to that option

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions