diff --git a/aleksis/core/frontend/components/generic/dialogs/MobileFullscreenDialog.vue b/aleksis/core/frontend/components/generic/dialogs/MobileFullscreenDialog.vue index 91df04e68bfff958105a377d1049211497a81a5e..f85c0acfdb730a2f21ffec4fc6e53e01a76f5be1 100644 --- a/aleksis/core/frontend/components/generic/dialogs/MobileFullscreenDialog.vue +++ b/aleksis/core/frontend/components/generic/dialogs/MobileFullscreenDialog.vue @@ -4,7 +4,7 @@ v-on="$listeners" :fullscreen="$vuetify.breakpoint.xs" :hide-overlay="$vuetify.breakpoint.xs" - max-width="600px" + :max-width="maxWidth" > <template #activator="activator"> <slot name="activator" v-bind="activator"></slot> @@ -34,6 +34,13 @@ export default { name: "MobileFullscreenDialog", extends: "v-dialog", + props: { + maxWidth: { + type: String | Number, + required: false, + default: "600px", + } + } }; </script> diff --git a/aleksis/core/frontend/components/generic/forms/ForeignKeyField.vue b/aleksis/core/frontend/components/generic/forms/ForeignKeyField.vue index f2273309278f926e124c2ddfa177b6595f45878a..b2418284a8cad9c38750119bb3952c008c6f6dd5 100644 --- a/aleksis/core/frontend/components/generic/forms/ForeignKeyField.vue +++ b/aleksis/core/frontend/components/generic/forms/ForeignKeyField.vue @@ -7,6 +7,9 @@ :item-text="itemName" class="fc-my-auto" > + <template #item="item"> + <slot name="item" v-bind="item" /> + </template> <template #append-outer> <v-btn icon @click="menu = true"> <v-icon>$plus</v-icon> diff --git a/aleksis/core/schema/base.py b/aleksis/core/schema/base.py index 198217379e257e427aa1332ae7bce7734d139c18..302450498728a3435615fb8821fde09a80b3a81b 100644 --- a/aleksis/core/schema/base.py +++ b/aleksis/core/schema/base.py @@ -77,6 +77,16 @@ class PermissionsTypeMixin: return info.context.user.has_perm(perm, root) +class OptimisticResponseTypeMixin: + """Mixin for using OptimisticResponse in the frontend. + + Simply adds a field called `is_optimistic` that is always false, + but should be set to true by the frontend + """ + + is_optimistic = graphene.Boolean(default_value=False) + + class PermissionBatchPatchMixin: class Meta: login_required = True diff --git a/aleksis/core/schema/school_term.py b/aleksis/core/schema/school_term.py index 798d1c62eb960d2c850a918345cbc03252a88820..48cc92a353accefe875f49fa25cd3e0b2940305b 100644 --- a/aleksis/core/schema/school_term.py +++ b/aleksis/core/schema/school_term.py @@ -39,6 +39,7 @@ class SchoolTermCreateMutation(DjangoCreateMutation): class Meta: model = SchoolTerm permissions = ("core.create_school_term",) # FIXME + exclude = ("managed_by_app_label",) @classmethod def validate(cls, root, info, input): # noqa