implement advanced availability logic

This commit is contained in:
weeman 2021-10-11 18:55:19 +02:00
parent 2b63603957
commit 0f0d3cd861
Signed by untrusted user: weeman
GPG Key ID: 34F0524D4DA694A1
3 changed files with 53 additions and 12 deletions

View File

@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{{ title }} {{ title }}
</h3> </h3>
<div class="card w-100"> <div class="card w-100">
<div class="card-body lh-1"> <div class="card-body">
<slot></slot> <slot></slot>
</div> </div>
</div> </div>

View File

@ -98,17 +98,36 @@ SPDX-License-Identifier: AGPL-3.0-or-later
@update-values="profile.searchtopics = $event" @update-values="profile.searchtopics = $event"
></auto-complete> ></auto-complete>
<div class="col-12 col-xs-12"> <Section title="Verfügbarkeit">
<label for="availability" class="form-label fw-bold" <div class="form-check mb-3">
>Ich bin für Anfragen verfügbar:</label <input
> v-model="profile.availability_status"
class="form-check-input me-2"
type="checkbox"
id="availability_status">
<label class="form-check-label" for="availability_status">
Ich bin aktuell verfügbar
</label>
</div>
<div class="mb-3" v-if="profile.availability_status">
<label class="form-label">
Stunden pro Woche
</label>
<input
v-model="profile.availability_hours_per_week"
type="number"
class="form-control">
</div>
<label for="availability" class="form-label">
Anmerkungen
</label>
<textarea <textarea
class="form-control" class="form-control"
id="availability" id="availability"
rows="3" rows="3"
v-model="profile.availability" v-model="profile.availability_text"
></textarea> ></textarea>
</div> </Section>
<auto-complete <auto-complete
type="contacttype" type="contacttype"
@ -171,12 +190,14 @@ SPDX-License-Identifier: AGPL-3.0-or-later
import RequestMixin from "@/mixins/request.mixin" import RequestMixin from "@/mixins/request.mixin"
import AutoComplete from "@/components/AutoComplete"; import AutoComplete from "@/components/AutoComplete";
import Section from '@/components/profile/Section'
export default { export default {
name: "profileEdit", name: "profileEdit",
mixins: [RequestMixin], mixins: [RequestMixin],
components: { components: {
AutoComplete, AutoComplete,
Section,
}, },
data() { data() {
return { return {
@ -188,7 +209,9 @@ export default {
pronouns: "", pronouns: "",
volunteerwork: "", volunteerwork: "",
freetext: "", freetext: "",
availability: "", availability_status: false,
availability_hours_per_week: null,
availability_text: "",
address: { address: {
postcode: "", postcode: "",
city: "", city: "",

View File

@ -55,10 +55,28 @@ SPDX-License-Identifier: AGPL-3.0-or-later
</div> </div>
</Section> </Section>
<Section <Section title="Verfügbarkeit">
v-if="profile.availability" <div class="d-flex align-items-center">
title="Verfügbarkeit"> <div v-if="profile.availability_status">
<div class="lh-base">{{ profile.availability }}</div> <i class="bi bi-check-square me-1"></i>
ja
</div>
<div v-else>
<i class="bi bi-x-square me-1"></i>
nein
</div>
<span
class="ms-3"
v-if="profile.availability_status && profile.availability_hours_per_week">
({{ profile.availability_hours_per_week }} Stunden pro Woche)
</span>
</div>
<div v-if="profile.availability_text" class="mt-3">
<label class="form-label fw-bold">
Anmerkungen
</label>
<div>{{ profile.availability_text }}</div>
</div>
</Section> </Section>
<Section <Section