Skip to content
Snippets Groups Projects
Project_create.vue 8.27 KiB
Newer Older
<template>
  <div class="fourteen wide column">
    <form
      id="form-project-edit"
      action="."
      method="post"
      enctype="multipart/form-data"
      class="ui form"
    >
      <div v-if="errors" class="ui error message">
        {{ form.non_field_errors }}

        <span v-for="hidden_field in form.hidden_fields" :key="hidden_field">
          {{ hidden_field.errors }}
          {{ hidden_field }}
        </span>
      </div>
      <i class="close icon"></i>

      <h1>
        <span v-if="action === 'update'"
          >Édition du projet "{{ form.instance.title }}"</span
        >
        <span v-else-if="action === 'create'">Création d'un projet</span>
      </h1>

      <div class="ui horizontal divider">INFORMATIONS</div>

      <div class="two fields">
        <div class="required field">
          <label :for="form.title.id_for_label">{{ form.title.label }}</label>
          <small>{{ form.title.help_text }}</small
          ><!-- | safe -->
          <input
            type="text"
            required
            :maxlength="form.title.field.max_length"
            :name="form.title.html_name"
            :id="form.title.id_for_label"
            :value="form.title.value ? form.title.value : ''"
          />
          {{ form.title.errors }}
        </div>
        <div class="field">
          <label>{{ form.thumbnail.label }}</label>
          {% if form.instance.thumbnail.url %}
          <img
            class="ui small image"
            id="form-input-file-logo"
            :src="form.instance.thumbnail.url"
          />
          {% endif %}
          <label class="ui icon button" :for="form.thumbnail.id_for_label">
            <i class="file icon"></i>
            {% if form.thumbnail.value %}
            <span class="label">{{ form.thumbnail.value }}</span>
            {% else %}
            <span class="label">Sélectionner une image ...</span>
            {% endif %}
          </label>
          <input
            type="file"
            accept="image/jpeg, image/png"
            style="display: none"
            :name="form.thumbnail.html_name"
            :id="form.thumbnail.id_for_label"
            :value="form.thumbnail.value"
          />
          {{ form.thumbnail.errors }}
        </div>
      </div>
      <div class="field">
        <label :for="form.description.id_for_label">{{
          form.description.label
        }}</label>
        <textarea :name="form.description.html_name" rows="5">
{% if form.description.value %} form.description.value {% endif %}</textarea
        >
        {{ form.description.errors }}
      </div>

      <div class="ui horizontal divider">PARAMÈTRES</div>

      <div class="four fields">
        <div class="field">
          <label :for="form.archive_feature.id_for_label">{{
            form.archive_feature.label
          }}</label>
          <div class="ui right labeled input">
            <input
              type="number"
              min="0"
              style="padding: 1px 2px"
              :name="form.archive_feature.html_name"
              :id="form.archive_feature.id_for_label"
              :value="form.archive_feature.value"
            />
            <div class="ui label">jour(s)</div>
          </div>
          {{ form.archive_feature.errors }}
        </div>
        <div class="field">
          <label :for="form.delete_feature.id_for_label">{{
            form.delete_feature.label
          }}</label>
          <div class="ui right labeled input">
            <input
              type="number"
              min="0"
              style="padding: 1px 2px"
              :name="form.delete_feature.html_name"
              :id="form.delete_feature.id_for_label"
              :value="form.delete_feature.value"
            />
            <div class="ui label">jour(s)</div>
          </div>
          {{ form.delete_feature.errors }}
        </div>
        <div class="required field">
          <label :for="form.access_level_pub_feature.id_for_label">{{
            form.access_level_pub_feature.label
          }}</label>
          <div class="ui selection dropdown">
            <input
              type="hidden"
              :name="form.access_level_pub_feature.html_name"
              :id="form.access_level_pub_feature.id_for_label"
              :value="form.access_level_pub_feature.value"
            />
            <div class="default text"></div>
            <i class="dropdown icon"></i>
            <div class="menu">
              {% for x,y in form.access_level_pub_feature.field.choices %}
              <div
                class="item"
                :data-value="
                  x + (form.access_level_pub_feature.value === x ? selected : '')
                "
              >
                y
              </div>
              {% endfor %}
            </div>
          </div>
          {{ form.access_level_pub_feature.errors }}
        </div>
        <div class="required field">
          <label :for="form.access_level_arch_feature.id_for_label">{{
            form.access_level_arch_feature.label
          }}</label>
          <div class="ui selection dropdown">
            <input
              type="hidden"
              :name="form.access_level_arch_feature.html_name"
              :id="form.access_level_arch_feature.id_for_label"
              :value="form.access_level_arch_feature.value"
            />
            <div class="default text"></div>
            <i class="dropdown icon"></i>
            <div class="menu">
              {% for x,y in form.access_level_arch_feature.field.choices %}
              <!--  <div class="item" data-value="{{ x }}" {% if form.access_level_arch_feature.value == x %} selected{% endif %}>{{ y }}</div> -->
              {% endfor %}
            </div>
          </div>
          {{ form.access_level_arch_feature.errors }}
        </div>
      </div>

      <div class="field">
        <div class="ui checkbox">
          <input
            type="checkbox"
            :checked="form.moderation.value"
            :name="form.moderation.html_name"
            :id="form.moderation.id_for_label"
          />
          <label :for="form.moderation.id_for_label">{{
            form.moderation.label
          }}</label>
        </div>
        {{ form.moderation.errors }}
      </div>

      <div class="field">
        <div class="ui checkbox">
          <input
            type="checkbox"
            :checked="form.is_project_type.value"
            :name="form.is_project_type.html_name"
            :id="form.is_project_type.id_for_label"
          />
          <label :for="form.is_project_type.id_for_label">{{
            form.is_project_type.label
          }}</label>
        </div>
        {{ form.is_project_type.errors }}
      </div>

      <div class="ui divider"></div>

      <!-- {% for hidden_field in form.hidden_fields %} -->
      <!-- pour passer le slug du projet parent entre GET et POST // ? marche en span ? -->
      <span v-for="hidden_field in form.hidden_fields" :key="hidden_field">{{
        hidden_field
      }}</span>

      <button type="submit" class="ui teal icon button">
        <i class="white save icon"></i> Enregistrer les changements
      </button>
    </form>
  </div>
</template>

<script>
export default {
  name: "Project_edit",

  data() {
    return {
      action: null,
      form: {
        access_level_pub_feature: {
          id_for_label: null,
        },
        access_level_arch_feature: {
          id_for_label: null,
        },
        archive_feature: {
          thumbnail: {
            label: {
              url: null,
            },
          },
        },
        delete_feature: {
          thumbnail: {
            label: {
              url: null,
            },
          },
        },
        instance: {
          title: null,
          thumbnail: {
            label: {
              url: null,
            },
          },
        },
        is_project_type: {
          html_name: null,
        },
        description: {
          id_for_label: null,
        },
        moderation: {
          html_name: null,
        },
        title: {
          id_for_label: null,
          help_text: null,
          label: null,
          field: {
            max_length: null,
          },
        },
        thumbnail: {
          label: {
            url: null,
          },
        },
      },
      errors: null,
      x: null
    };
  },
};
</script>