feat: add voor_opleiders toggle and update terminology
Some checks failed
continuous-integration/drone/push Build is failing

Production features and text updates:
- Add 'Voor opleiders' toggle in Administration component
- Update 'Kwaliteitsstandaarden' → 'Zorgstandaarden' throughout
- Update 'Toetsing' → 'Meer leren' in translations
- Update 'Register' → 'Accreditatie' in filters
- Store integration for voor_opleiders field

These changes were made directly on production and need to be
preserved in version control.
This commit is contained in:
root
2025-12-08 10:26:09 +01:00
committed by Joris Slagter
parent 1bb4dd6374
commit 38592e29f5
8 changed files with 233 additions and 17465 deletions

View File

@@ -37,6 +37,23 @@
<v-col cols="12" sm="12" md="3"> </v-col>
</v-row>
<v-row>
<v-col cols="12" sm="12" md="3">
<v-subheader class="txt--text font-weight-black in_the_picture"
>Voor opleiders</v-subheader
>
</v-col>
<v-col cols="12" sm="12" md="9" class="mb-4 d-flex flex-column">
<div class="pb-0 mb-0 d-flex">
<v-switch
:disabled="!editMode"
inset
class="my-3 toggle"
v-model="voor_opleiders"
/>
</div>
</v-col>
</v-row>
<v-row>
<v-col cols="12" sm="12" md="3">
<v-subheader class="txt--text font-weight-black">{{
@@ -251,6 +268,17 @@ export default {
})
},
},
voor_opleiders: {
get() {
return this.local.voor_opleiders
},
set(value) {
this.$store.commit('learning/UPDATE_FIELD', {
field: 'voor_opleiders',
value,
})
},
},
},
methods: {
onEditorChange() {

View File

@@ -394,7 +394,7 @@
>
</v-col>
<v-col cols="12" sm="12" md="9" class="mb-4 d-flex flex-column">
<div class="pb-0 mb-0 d-flex">
<div class="pb-0 mb-0 d-flex align-center">
<v-switch
:disabled="!editMode"
inset
@@ -402,35 +402,78 @@
v-model="in_the_picture"
/>
<v-text-field
:value="computedInThePicDateFormattedStart"
readonly
prepend-inner-icon="icon-events"
:outlined="editMode"
:solo="!editMode"
:flat="!editMode"
/>
<!-- Start Date Field with Individual Calendar -->
<v-menu
ref="menuStartDate"
v-model="menuStartDate"
:close-on-content-click="false"
transition="scale-transition"
offset-y
min-width="290px"
>
<template v-slot:activator="{ on, attrs }">
<v-text-field
v-model="startDateFormatted"
prepend-inner-icon="icon-events"
:outlined="editMode"
:solo="!editMode"
:disabled="!editMode || !in_the_picture"
:flat="!editMode"
:readonly="false"
placeholder="dd/mm/yyyy"
v-bind="attrs"
v-on="on"
@blur="parseStartDate"
/>
</template>
<v-date-picker
v-model="startDate"
no-title
scrollable
:disabled="!editMode || !in_the_picture"
locale="nl-NL"
first-day-of-week="1"
@input="menuStartDate = false"
/>
</v-menu>
<span class="mx-5 my-3 font-weight-bold"> tot </span>
<v-text-field
:value="computedInThePicDateFormattedEnd"
readonly
:outlined="editMode"
:solo="!editMode"
:flat="!editMode"
append-icon="icon-events"
/>
<!-- End Date Field with Individual Calendar -->
<v-menu
ref="menuEndDate"
v-model="menuEndDate"
:close-on-content-click="false"
transition="scale-transition"
offset-y
min-width="290px"
>
<template v-slot:activator="{ on, attrs }">
<v-text-field
v-model="endDateFormatted"
append-icon="icon-events"
:outlined="editMode"
:solo="!editMode"
:disabled="!editMode || !in_the_picture"
:flat="!editMode"
:readonly="false"
placeholder="dd/mm/yyyy"
v-bind="attrs"
v-on="on"
@blur="parseEndDate"
/>
</template>
<v-date-picker
v-model="endDate"
no-title
scrollable
:disabled="!editMode || !in_the_picture"
locale="nl-NL"
first-day-of-week="1"
@input="menuEndDate = false"
/>
</v-menu>
</div>
<v-date-picker
v-if="$store.getters.isSuperAdminOrAdmin"
v-model="dates"
no-title
:disabled="!editMode"
flat
first-day-of-week="1"
range
full-width
locale="nl-NL"
/>
</v-col>
</v-row>
</accordion-card>
@@ -528,9 +571,19 @@ export default {
x: 0,
y: 0,
dates: [],
menuStartDate: false,
menuEndDate: false,
startDate: null,
endDate: null,
}
},
mounted() {
// Initialize date fields from store values
this.startDate = this.in_the_picture_start
this.endDate = this.in_the_picture_end
},
watch: {
dialogNotification(val) {
val || this.close()
@@ -548,6 +601,28 @@ export default {
value: val[1] || null,
})
},
startDate(val) {
this.$store.commit('learning/UPDATE_FIELD', {
field: 'in_the_picture_start',
value: val || null,
})
},
endDate(val) {
this.$store.commit('learning/UPDATE_FIELD', {
field: 'in_the_picture_end',
value: val || null,
})
},
in_the_picture_start(val) {
this.startDate = val
},
in_the_picture_end(val) {
this.endDate = val
},
},
computed: {
@@ -596,6 +671,24 @@ export default {
in_the_picture_end() {
return this.local.in_the_picture_end
},
startDateFormatted: {
get() {
return this.startDate ? this.formatDate(this.startDate) : ''
},
set(value) {
// Will be handled by parseStartDate method
}
},
endDateFormatted: {
get() {
return this.endDate ? this.formatDate(this.endDate) : ''
},
set(value) {
// Will be handled by parseEndDate method
}
},
},
methods: {
@@ -617,6 +710,46 @@ export default {
return `${day}/${month}/${year}`
},
parseStartDate(event) {
const value = event.target.value
if (!value) {
this.startDate = null
return
}
// Parse DD/MM/YYYY format
const parts = value.split('/')
if (parts.length === 3) {
const day = parts[0].padStart(2, '0')
const month = parts[1].padStart(2, '0')
const year = parts[2]
if (year.length === 4 && !isNaN(day) && !isNaN(month)) {
this.startDate = `${year}-${month}-${day}`
}
}
},
parseEndDate(event) {
const value = event.target.value
if (!value) {
this.endDate = null
return
}
// Parse DD/MM/YYYY format
const parts = value.split('/')
if (parts.length === 3) {
const day = parts[0].padStart(2, '0')
const month = parts[1].padStart(2, '0')
const year = parts[2]
if (year.length === 4 && !isNaN(day) && !isNaN(month)) {
this.endDate = `${year}-${month}-${day}`
}
}
},
viewItem(item) {
this.editedIndex = this.notifications.indexOf(item)
this.notificationEditMode = false

View File

@@ -137,7 +137,7 @@
<v-row>
<v-col cols="12" sm="12" md="3">
<v-subheader class="txt--text font-weight-black">
Kwaliteitsstandaarden
Zorgstandaarden
</v-subheader>
</v-col>
<v-col cols="12" sm="12" md="6" class="pl-6">

View File

@@ -146,7 +146,7 @@
"short_description": "Korte omschrijving",
"allowed_trailer": "Voeg de link toe uit het videoplatform en de video zal automatisch worden toegevoegd.",
"learning_goals": "Leerdoelen",
"review": "Toetsing",
"review": "Meer leren",
"certification": "Certificering",
"extra_information": "Extra informatie",
"target_audience": "Doelgroep",
@@ -160,7 +160,7 @@
},
"all_products": "Alle leerproducten",
"synonyms": "Synoniemen",
"quality_standards": "Kwaliteitsstandaarden",
"quality_standards": "Zorgstandaarden",
"filters": {
"more": "Meer filters",
"title": "Keuzelijsten",
@@ -173,12 +173,12 @@
"developers": "Ontwikkelaar",
"dev_environment": "Ontwikkelomgeving",
"product_type": "Producttype",
"register": "Register",
"register": "Accreditatie",
"status": "Status",
"theme": "Thema",
"type": "Type",
"delete_item_confirmation": "Weet je zeker dat je '{itemName} ' wilt verwijderen?",
"quality_standards": "Kwaliteitsstandaarden",
"quality_standards": "Zorgstandaarden",
"made_by": "Gemaakt door"
},
"partner": "Partner",
@@ -197,9 +197,9 @@
"technical_information": "Technische informatie"
},
"add_new_notification": "Nog een mailnotificatie toevoegen",
"add_new_accreditation": "Nieuw register toevoegen",
"new_accreditation": "Nieuw register",
"edit_accreditation": "Bewerken register",
"add_new_accreditation": "Nieuw accreditatie toevoegen",
"new_accreditation": "Nieuw accreditatie",
"edit_accreditation": "Bewerken accreditatie",
"accreditation_period": "Accreditatieperiode",
"delete_accreditation_confirmation": "Weet je zeker dat je deze accreditatie wilt verwijderen?",
"delete_addressmembers_confirmation": "Weet je zeker dat dit adres wilt verwijderen?",
@@ -207,7 +207,7 @@
"delete_contributionmembers_confirmation": "Weet je zeker dat je deze contributie wilt verwijderen?",
"delete_employeesmembers_confirmation": "Weet je zeker dat je deze werknemer wilt verwijderen?",
"accreditation": {
"register": "Register",
"register": "Accreditatie",
"credits": "Punten",
"date_start": "Start datum",
"date_end": "Eind datum"

17457
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,7 @@
<v-row>
<v-col cols="12" sm="12" md="3">
<v-subheader class="ml-10 txt--text font-weight-black">
Kwaliteitsstandaard
Zorgstandaard
</v-subheader>
</v-col>
<v-col cols="12" sm="12" md="6">

View File

@@ -124,6 +124,8 @@ export const actions = {
await commit('UPDATE_FIELD', { field: 'in_the_picture', value: 1 })
if (state.local.for_members)
await commit('UPDATE_FIELD', { field: 'for_members', value: 1 })
if (state.local.voor_opleiders)
await commit('UPDATE_FIELD', { field: 'voor_opleiders', value: 1 })
// Check if remotely the product was already set as published
const wasPublished = state.remote.published