Members: optional fields
This commit is contained in:
parent
6f3b7c6dc3
commit
93467df92f
3 changed files with 336 additions and 67 deletions
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
"git.readonly.ch/bouzoure/pop-camarades/helpers"
|
"git.readonly.ch/bouzoure/pop-camarades/helpers"
|
||||||
"git.readonly.ch/bouzoure/pop-camarades/models"
|
"git.readonly.ch/bouzoure/pop-camarades/models"
|
||||||
|
|
@ -77,7 +78,9 @@ func MemberShow(c *fiber.Ctx) error {
|
||||||
)
|
)
|
||||||
|
|
||||||
var fields []models.Field
|
var fields []models.Field
|
||||||
db.Order("name collate nocase asc").Find(
|
db.Order("name collate nocase asc").Preload(
|
||||||
|
"List",
|
||||||
|
).Find(
|
||||||
&fields, "person_type = ?", "member",
|
&fields, "person_type = ?", "member",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -112,6 +115,13 @@ func MemberAdd(c *fiber.Ctx) error {
|
||||||
true,
|
true,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var fields []models.Field
|
||||||
|
db.Preload("List").Preload("List.ListItems").Order(
|
||||||
|
"name collate nocase asc",
|
||||||
|
).Find(
|
||||||
|
&fields, "person_type = ?", "member",
|
||||||
|
)
|
||||||
|
|
||||||
if c.Method() == "POST" {
|
if c.Method() == "POST" {
|
||||||
data := PersonValidation{
|
data := PersonValidation{
|
||||||
LastName: c.FormValue("last_name"),
|
LastName: c.FormValue("last_name"),
|
||||||
|
|
@ -190,12 +200,103 @@ func MemberAdd(c *fiber.Ctx) error {
|
||||||
result := db.Create(&person)
|
result := db.Create(&person)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
return result.Error
|
return result.Error
|
||||||
} else {
|
|
||||||
c.Redirect(fmt.Sprintf(
|
|
||||||
"/members/%d",
|
|
||||||
person.ID,
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, field := range fields {
|
||||||
|
if field.List.Multi {
|
||||||
|
for _, listItem := range field.List.ListItems {
|
||||||
|
key := fmt.Sprintf("field-%d-%d", field.ID, listItem.ID)
|
||||||
|
value := c.FormValue(key)
|
||||||
|
|
||||||
|
if value == "on" {
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
fieldValue.ListItemID = listItem.ID
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
key := fmt.Sprintf("field-%d", field.ID)
|
||||||
|
value := c.FormValue(key)
|
||||||
|
|
||||||
|
if (field.FieldType == "text" || field.FieldType == "longtext") && len(value) > 0 {
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
|
||||||
|
err = fieldValue.ValueString.Scan(value)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
if field.FieldType == "number" && len(value) > 0 {
|
||||||
|
valueInt, err := strconv.ParseInt(value, 10, 0)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
|
||||||
|
err = fieldValue.ValueInt.Scan(valueInt)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
if field.FieldType == "date" && len(value) > 0 {
|
||||||
|
valueDate, err := time.Parse("2006-01-02", value)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
|
||||||
|
err = fieldValue.ValueDate.Scan(valueDate)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
if field.FieldType == "list" && len(value) > 0 {
|
||||||
|
valueInt, err := strconv.ParseUint(value, 10, 0)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
found := false
|
||||||
|
for _, listItem := range field.List.ListItems {
|
||||||
|
if listItem.ID == uint(valueInt) {
|
||||||
|
found = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if found {
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
fieldValue.ListItemID = uint(valueInt)
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Redirect(fmt.Sprintf(
|
||||||
|
"/members/%d",
|
||||||
|
person.ID,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -203,6 +304,7 @@ func MemberAdd(c *fiber.Ctx) error {
|
||||||
"PageTitle": "Ajouter un membre",
|
"PageTitle": "Ajouter un membre",
|
||||||
"Person": person,
|
"Person": person,
|
||||||
"Sections": sections,
|
"Sections": sections,
|
||||||
|
"Fields": fields,
|
||||||
"Errors": errors,
|
"Errors": errors,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -239,6 +341,20 @@ func MemberEdit(c *fiber.Ctx) error {
|
||||||
true,
|
true,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var fields []models.Field
|
||||||
|
db.Preload("List").Preload("List.ListItems").Order(
|
||||||
|
"name collate nocase asc",
|
||||||
|
).Find(
|
||||||
|
&fields, "person_type = ?", "member",
|
||||||
|
)
|
||||||
|
|
||||||
|
var fieldValues []models.FieldValue
|
||||||
|
db.Preload("ListItem").Find(
|
||||||
|
&fieldValues,
|
||||||
|
"person_id = ?",
|
||||||
|
person.ID,
|
||||||
|
)
|
||||||
|
|
||||||
var errors []string
|
var errors []string
|
||||||
if c.Method() == "POST" {
|
if c.Method() == "POST" {
|
||||||
data := PersonValidation{
|
data := PersonValidation{
|
||||||
|
|
@ -314,33 +430,117 @@ func MemberEdit(c *fiber.Ctx) error {
|
||||||
errors = append(errors, "La section est introuvable")
|
errors = append(errors, "La section est introuvable")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, field := range fields {
|
||||||
|
db.Delete(
|
||||||
|
&models.FieldValue{},
|
||||||
|
"person_id = ? AND field_id = ?",
|
||||||
|
person.ID,
|
||||||
|
field.ID,
|
||||||
|
)
|
||||||
|
|
||||||
|
if field.List.Multi {
|
||||||
|
for _, listItem := range field.List.ListItems {
|
||||||
|
key := fmt.Sprintf("field-%d-%d", field.ID, listItem.ID)
|
||||||
|
value := c.FormValue(key)
|
||||||
|
|
||||||
|
if value == "on" {
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
fieldValue.ListItemID = listItem.ID
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
key := fmt.Sprintf("field-%d", field.ID)
|
||||||
|
value := c.FormValue(key)
|
||||||
|
|
||||||
|
if (field.FieldType == "text" || field.FieldType == "longtext") && len(value) > 0 {
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
|
||||||
|
err = fieldValue.ValueString.Scan(value)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
if field.FieldType == "number" && len(value) > 0 {
|
||||||
|
valueInt, err := strconv.ParseInt(value, 10, 0)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
|
||||||
|
err = fieldValue.ValueInt.Scan(valueInt)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
if field.FieldType == "date" && len(value) > 0 {
|
||||||
|
valueDate, err := time.Parse("2006-01-02", value)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
|
||||||
|
err = fieldValue.ValueDate.Scan(valueDate)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
if field.FieldType == "list" && len(value) > 0 {
|
||||||
|
valueInt, err := strconv.ParseUint(value, 10, 0)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
found := false
|
||||||
|
for _, listItem := range field.List.ListItems {
|
||||||
|
if listItem.ID == uint(valueInt) {
|
||||||
|
found = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if found {
|
||||||
|
var fieldValue models.FieldValue
|
||||||
|
fieldValue.FieldID = field.ID
|
||||||
|
fieldValue.PersonID = person.ID
|
||||||
|
fieldValue.ListItemID = uint(valueInt)
|
||||||
|
db.Create(&fieldValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if len(errors) == 0 {
|
if len(errors) == 0 {
|
||||||
result := db.Save(&person)
|
result := db.Save(&person)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
return result.Error
|
return result.Error
|
||||||
} else {
|
|
||||||
c.Redirect(fmt.Sprintf(
|
|
||||||
"/members/%d",
|
|
||||||
person.ID,
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.Redirect(fmt.Sprintf(
|
||||||
|
"/members/%d",
|
||||||
|
person.ID,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var fields []models.Field
|
|
||||||
db.Preload("List").Preload("List.ListItems").Order(
|
|
||||||
"name collate nocase asc",
|
|
||||||
).Find(
|
|
||||||
&fields, "person_type = ?", "member",
|
|
||||||
)
|
|
||||||
|
|
||||||
var fieldValues []models.FieldValue
|
|
||||||
db.Preload("ListItem").Find(
|
|
||||||
&fieldValues,
|
|
||||||
"person_id = ?",
|
|
||||||
person.ID,
|
|
||||||
)
|
|
||||||
|
|
||||||
return c.Render("person_form", fiber.Map{
|
return c.Render("person_form", fiber.Map{
|
||||||
"PageTitle": title,
|
"PageTitle": title,
|
||||||
"Person": person,
|
"Person": person,
|
||||||
|
|
@ -434,6 +634,14 @@ func MemberPurge(c *fiber.Ctx) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
result := db.Unscoped().Delete(
|
result := db.Unscoped().Delete(
|
||||||
|
&models.FieldValue{}, "person_id = ?", id,
|
||||||
|
)
|
||||||
|
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
result = db.Unscoped().Delete(
|
||||||
&models.Person{}, id,
|
&models.Person{}, id,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -173,34 +173,87 @@
|
||||||
{{ Field.Name }}
|
{{ Field.Name }}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<input
|
|
||||||
type="text"
|
{% if Field.FieldType == "text" %}
|
||||||
class="form-control"
|
<input
|
||||||
disabled
|
type="text"
|
||||||
readonly
|
class="form-control"
|
||||||
|
disabled
|
||||||
|
readonly
|
||||||
|
|
||||||
|
{% for FieldValue in FieldValues %}
|
||||||
|
{% if FieldValue.FieldID == Field.ID %}
|
||||||
|
value="{{ FieldValue.ValueString.String }}"
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if Field.FieldType == "longtext" %}
|
||||||
|
<textarea
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
disabled
|
||||||
|
readonly
|
||||||
|
rows="4"
|
||||||
|
>{% for FieldValue in FieldValues %}{% if FieldValue.FieldID == Field.ID %}{{ FieldValue.ValueString.String }}{% endif %}{% endfor %}</textarea>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if Field.FieldType == "number" %}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
disabled
|
||||||
|
readonly
|
||||||
|
|
||||||
|
{% for FieldValue in FieldValues %}
|
||||||
|
{% if FieldValue.FieldID == Field.ID %}
|
||||||
|
value="{{ FieldValue.ValueInt.Int64 }}"
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if Field.FieldType == "date" %}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
disabled
|
||||||
|
readonly
|
||||||
|
|
||||||
|
{% for FieldValue in FieldValues %}
|
||||||
|
{% if FieldValue.FieldID == Field.ID %}
|
||||||
|
value="{{ FieldValue.ValueDate.Time|date:"02.01.2006" }}"
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if Field.FieldType == "list" and Field.List.Multi %}
|
||||||
{% for FieldValue in FieldValues %}
|
{% for FieldValue in FieldValues %}
|
||||||
{% if FieldValue.FieldID == Field.ID %}
|
{% if FieldValue.FieldID == Field.ID %}
|
||||||
|
<div class="mb-1">
|
||||||
{% if Field.FieldType == "text" or Field.FieldType == "longtext" %}
|
— {{ FieldValue.ListItem.Value }}
|
||||||
value="{{ FieldValue.ValueString }}"
|
</div>
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if Field.FieldType == "number" %}
|
|
||||||
value="{{ FieldValue.ValueInt }}"
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if Field.FieldType == "date" %}
|
|
||||||
value="{{ FieldValue.ValueDate }}"
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if Field.FieldType == "list" %}
|
|
||||||
value="{{ FieldValue.ListItem.Value }}"
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
>
|
{% endif %}
|
||||||
|
|
||||||
|
{% if Field.FieldType == "list" and !Field.List.Multi %}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
disabled
|
||||||
|
readonly
|
||||||
|
|
||||||
|
{% for FieldValue in FieldValues %}
|
||||||
|
{% if FieldValue.FieldID == Field.ID %}
|
||||||
|
value="{{ FieldValue.ListItem.Value }}"
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
@ -209,6 +262,7 @@
|
||||||
{% if Person.IsMember %}
|
{% if Person.IsMember %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
|
{% if !Person.DeletedAt.Valid %}
|
||||||
<a class="btn btn-md btn-primary" href="/members/{{ Person.ID }}/edit">
|
<a class="btn btn-md btn-primary" href="/members/{{ Person.ID }}/edit">
|
||||||
<i class="bi-pencil-square"></i>
|
<i class="bi-pencil-square"></i>
|
||||||
Modifier
|
Modifier
|
||||||
|
|
@ -223,6 +277,7 @@
|
||||||
Convertir en contact
|
Convertir en contact
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 text-md-end mt-2 mt-md-0">
|
<div class="col-md-6 text-md-end mt-2 mt-md-0">
|
||||||
{% if Person.DeletedAt.Valid %}
|
{% if Person.DeletedAt.Valid %}
|
||||||
|
|
|
||||||
|
|
@ -225,22 +225,22 @@
|
||||||
|
|
||||||
{% for Field in Fields %}
|
{% for Field in Fields %}
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="field_{{ Field.ID }}" class="form-label col-md-2">
|
<label for="field-{{ Field.ID }}" class="form-label col-md-2">
|
||||||
{{ Field.Name }}
|
{{ Field.Name }}
|
||||||
</label>
|
</label>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
|
|
||||||
{% if Field.FieldType == "text" %}
|
{% if Field.FieldType == "text" %}
|
||||||
<input
|
<input
|
||||||
id="field_{{ Field.ID }}"
|
id="field-{{ Field.ID }}"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
type="text"
|
type="text"
|
||||||
name="field_{{ Field.ID }}"
|
name="field-{{ Field.ID }}"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
|
|
||||||
{% for FieldValue in FieldValues %}
|
{% for FieldValue in FieldValues %}
|
||||||
{% if FieldValue.FieldID == Field.ID %}
|
{% if FieldValue.FieldID == Field.ID %}
|
||||||
value="{{ FieldValue.ValueString }}"
|
value="{{ FieldValue.ValueString.String }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
>
|
>
|
||||||
|
|
@ -248,25 +248,25 @@
|
||||||
|
|
||||||
{% if Field.FieldType == "longtext" %}
|
{% if Field.FieldType == "longtext" %}
|
||||||
<textarea
|
<textarea
|
||||||
id="field_{{ Field.ID }}"
|
id="field-{{ Field.ID }}"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
name="field_{{ Field.ID }}"
|
name="field-{{ Field.ID }}"
|
||||||
rows="4"
|
rows="4"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
>{% for FieldValue in FieldValues %}{% if FieldValue.FieldID == Field.ID %}{{ FieldValue.ValueString }}{% endif %}{% endfor %}</textarea>
|
>{% for FieldValue in FieldValues %}{% if FieldValue.FieldID == Field.ID %}{{ FieldValue.ValueString.String }}{% endif %}{% endfor %}</textarea>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if Field.FieldType == "number" %}
|
{% if Field.FieldType == "number" %}
|
||||||
<input
|
<input
|
||||||
id="field_{{ Field.ID }}"
|
id="field-{{ Field.ID }}"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
type="number"
|
type="number"
|
||||||
name="field_{{ Field.ID }}"
|
name="field-{{ Field.ID }}"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
|
|
||||||
{% for FieldValue in FieldValues %}
|
{% for FieldValue in FieldValues %}
|
||||||
{% if FieldValue.FieldID == Field.ID %}
|
{% if FieldValue.FieldID == Field.ID %}
|
||||||
value="{{ FieldValue.ValueInt }}"
|
value="{{ FieldValue.ValueInt.Int64 }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
>
|
>
|
||||||
|
|
@ -274,15 +274,15 @@
|
||||||
|
|
||||||
{% if Field.FieldType == "date" %}
|
{% if Field.FieldType == "date" %}
|
||||||
<input
|
<input
|
||||||
id="field_{{ Field.ID }}"
|
id="field-{{ Field.ID }}"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
type="date"
|
type="date"
|
||||||
name="field_{{ Field.ID }}"
|
name="field-{{ Field.ID }}"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
|
|
||||||
{% for FieldValue in FieldValues %}
|
{% for FieldValue in FieldValues %}
|
||||||
{% if FieldValue.FieldID == Field.ID %}
|
{% if FieldValue.FieldID == Field.ID %}
|
||||||
value="{{ FieldValue.ValueDate }}"
|
value="{{ FieldValue.ValueDate.Time|date:"2006-01-02" }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
>
|
>
|
||||||
|
|
@ -290,9 +290,9 @@
|
||||||
|
|
||||||
{% if Field.FieldType == "list" and !Field.List.Multi %}
|
{% if Field.FieldType == "list" and !Field.List.Multi %}
|
||||||
<select
|
<select
|
||||||
id="field_{{ Field.ID }}"
|
id="field-{{ Field.ID }}"
|
||||||
class="form-select"
|
class="form-select"
|
||||||
name="field_{{ Field.ID }}"
|
name="field-{{ Field.ID }}"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
>
|
>
|
||||||
<option value="0">--- Aucun ---</option>
|
<option value="0">--- Aucun ---</option>
|
||||||
|
|
@ -318,12 +318,18 @@
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="form-check-input me-2"
|
class="form-check-input me-2"
|
||||||
id="field_{{ Field.ID }}_{{ ListItem.ID }}"
|
id="field-{{ Field.ID }}-{{ ListItem.ID }}"
|
||||||
name="field_{{ Field.ID }}_{{ ListItem.ID }}"
|
name="field-{{ Field.ID }}-{{ ListItem.ID }}"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
|
|
||||||
|
{% for FieldValue in FieldValues %}
|
||||||
|
{% if FieldValue.FieldID == Field.ID and FieldValue.ListItemID == ListItem.ID %}
|
||||||
|
checked
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
>
|
>
|
||||||
<label
|
<label
|
||||||
for="field_{{ Field.ID }}_{{ ListItem.ID }}"
|
for="field-{{ Field.ID }}-{{ ListItem.ID }}"
|
||||||
class="form-label"
|
class="form-label"
|
||||||
>
|
>
|
||||||
{{ ListItem.Value }}
|
{{ ListItem.Value }}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue