Skip to content
Snippets Groups Projects
Commit 93fff2a7 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch '1204-add-some-generalized-components-for-multi-step-uis' into 'master'

Resolve "Add some generalized components for multi-step UIs"

Closes #1204

See merge request !1715
parents 399f37cd 9468af19
No related branches found
No related tags found
1 merge request!1715Resolve "Add some generalized components for multi-step UIs"
Pipeline #196880 failed
<template>
<div class="d-flex">
<v-btn
v-if="step > 1"
color="primary"
text
@click="$emit('set-step', step - 1)"
>
<v-icon left>mdi-chevron-left</v-icon>
{{ $t("actions.back") }}
</v-btn>
<v-spacer />
<v-btn
v-if="finalStep"
color="primary"
:disabled="nextDisabled || nextLoading"
:loading="nextLoading"
@click="$emit('confirm')"
>
{{ $t("actions.confirm") }}
<v-icon right>mdi-send-outline</v-icon>
</v-btn>
<v-btn
v-else
color="primary"
:disabled="nextDisabled || nextLoading"
:loading="nextLoading"
@click="$emit('set-step', step + 1)"
>
{{ $t("actions.next") }}
<v-icon right>mdi-chevron-right</v-icon>
</v-btn>
</div>
</template>
<script>
export default {
name: "ControlRow",
props: {
step: {
type: Number,
required: true,
},
nextDisabled: {
type: Boolean,
default: false,
},
finalStep: {
type: Boolean,
default: false,
},
nextLoading: {
type: Boolean,
default: false,
},
},
};
</script>
......@@ -250,6 +250,46 @@ class PersonType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
return info.context.user.has_perm("core.delete_person_rule", root)
class AddressInputType(graphene.InputObjectType):
street = graphene.String(required=False)
housenumber = graphene.String(required=False)
postal_code = graphene.String(required=False)
place = graphene.String(required=False)
class PersonInputType(graphene.InputObjectType):
id = graphene.ID(required=False) # noqa
first_name = graphene.String(required=True)
last_name = graphene.String(required=True)
additional_name = graphene.String(required=False)
short_name = graphene.String(required=False)
street = graphene.String(required=False)
housenumber = graphene.String(required=False)
postal_code = graphene.String(required=False)
place = graphene.String(required=False)
phone_number = graphene.String(required=False)
mobile_number = graphene.String(required=False)
email = graphene.String(required=False)
date_of_birth = graphene.String(required=False)
place_of_birth = graphene.Date(required=False)
sex = graphene.String(required=False)
address = graphene.Field(AddressInputType, required=False)
# TODO: Photo and avatar
guardians = graphene.List(lambda: PersonInputType, required=False)
# TODO: Primary Group
description = graphene.String(required=False)
class PersonBatchDeleteMutation(BaseBatchDeleteMutation):
class Meta:
model = Person
......
......@@ -27,3 +27,11 @@ class UserType(graphene.ObjectType):
{"name": permission_name, "result": info.context.user.has_perm(permission_name)}
for permission_name in permissions
]
class UserInputType(graphene.InputObjectType):
username = graphene.String(required=True)
first_name = graphene.String(required=False)
last_name = graphene.String(required=False)
email = graphene.String(required=False)
password = graphene.String(required=True)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment