Skip to content
Snippets Groups Projects
Commit 6ad080a8 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

WIP: Rewrite

parent e7cf4bb7
Branches
No related tags found
1 merge request!89Draft: Resolve "Rewrite event form and list in vue"
Pipeline #196792 passed with warnings
<template>
</template>
<script>
import CRUDList from "../generic/CRUDList.vue";
import CreateButton from "../generic/buttons/CreateButton.vue";
import EditButton from "../generic/buttons/EditButton.vue";
import SexSelect from "../generic/forms/SexSelect.vue";
import GroupChip from "../group/GroupChip.vue";
import TableLink from "../generic/TableLink.vue";
import eventCRUDMixin from "../../mixins/eventCRUDMixin.js";
export default {
name: "EventList",
components: {
TableLink,
CreateButton,
EditButton,
CRUDList,
},
mixins: [eventCRUDMixin],
data() {
return {
headers: [
{
text: this.$t("paweljong.events.display_name"),
value: "displayName",
},
{
text: this.$t("paweljong.events.date_event"),
value: "dateEvent",
},
{
text: this.$t("paweljong.events.date_registration"),
value: "dateRegistration",
},
{
text: this.$t("paweljong.events.max_participants"),
value: "maxParticipants",
},
],
};
},
};
</script>
<template>
<c-r-u-d-list
:headers="headers"
:i18n-key="i18nKey"
:gql-query="gqlQuery"
:gql-delete-mutation="gqlDeleteMutation"
:gql-patch-mutation="gqlPatchMutation"
:gql-create-mutation="gqlCreateMutation"
:enable-filter="true"
item-attribute="fullName"
>
<template #createComponent="{ attrs, on, createMode }">
<create-button
color="secondary"
:to="{
name: 'paweljong.events',
query: { _ui_action: 'create' },
}"
:disabled="$route.query._ui_action === 'create'"
/>
</template>
<template #filters="{ attrs, on }">
<v-text-field
v-bind="attrs('name')"
v-on="on('name')"
:label="$t('person.name')"
/>
<v-text-field
v-bind="attrs('contact')"
v-on="on('contact')"
:label="$t('person.details')"
/>
<sex-select
v-bind="attrs('sex')"
v-on="on('sex')"
:label="$t('person.sex.field')"
/>
</template>
<template #lastName="{ item }">
<table-link :to="{ name: 'core.personById', params: { id: item.id } }">
{{ item.lastName }}
</table-link>
</template>
<template #firstName="{ item }">
<table-link :to="{ name: 'core.personById', params: { id: item.id } }">
{{ item.firstName }}
</table-link>
</template>
<template #shortName="{ item }">
<table-link :to="{ name: 'core.personById', params: { id: item.id } }">
{{ item.shortName }}
</table-link>
</template>
<template #primaryGroup="{ item }">
<group-chip :group="item.primaryGroup" v-if="item.primaryGroup" />
<span v-else></span>
</template>
<template #actions="{ item }">
<edit-button
v-if="'canEdit' in item && item.canEdit"
icon
color="secondary"
:to="{
name: 'core.personById',
params: { id: item.id },
query: { _ui_action: 'edit' },
}"
/>
</template>
</c-r-u-d-list>
</template>
<template>
<component :is="currentComponent" v-bind="componentProps" />
</template>
<script>
import EventForm from "./EventForm.vue";
import EventList from "./EventList.vue";
export default {
computed: {
currentComponent() {
return this.$route.query._ui_action === "create"
? EventForm
: EventList;
},
componentProps() {
return this.$route.query._ui_action === "create"
? {
fallbackUrl: { name: "core.Events" },
isCreate: true,
}
: {};
},
},
};
</script>
...@@ -22,7 +22,11 @@ ...@@ -22,7 +22,11 @@
}, },
"manage_events": { "manage_events": {
"menu_title": "Manage events" "menu_title": "Manage events"
} },
"display_name": "Display name",
"date_event": "Date of event",
"date_registration": "Registration deadline",
"max_participants": "Max. participants"
}, },
"event_additional_field": { "event_additional_field": {
"create": "Create additional field for events", "create": "Create additional field for events",
......
import {
events,
createEvents,
updateEvents,
deleteEvents,
} from "../components/event/event.graphql";
export default {
data() {
return {
i18nKey: "paweljong.event",
gqlQuery: events,
gqlDeleteMutation: deleteEvents,
gqlCreateMutation: createEvents,
gqlPatchMutation: updateEvents,
};
},
};
\ No newline at end of file
...@@ -32,6 +32,8 @@ class Query(graphene.ObjectType): ...@@ -32,6 +32,8 @@ class Query(graphene.ObjectType):
paweljong_site_preferences = graphene.Field(PaweljongSitePreferencesType) paweljong_site_preferences = graphene.Field(PaweljongSitePreferencesType)
events = FilterOrderList(EventType)
@staticmethod @staticmethod
def resolve_event_by_id(root, info, id): def resolve_event_by_id(root, info, id):
event = Event.objects.get(pk=id) event = Event.objects.get(pk=id)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment