fix(ops): tickets list returned 0 — Issue query used fields ERPNext v16 rejects

An in-flight TicketsPage change added assigned_staff_email / opened_by_staff_email
to ISSUE_FIELDS, but ERPNext v16 refuses those in a `fields` query. The frontend
queries ERPNext directly (no bad-field stripping like the hub), so the whole Issue
list 400'd → 0 tickets for everyone. Removed the two rejected fields; UserAvatar
falls back to the assigned_staff name.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
louispaulb 2026-07-10 14:39:07 -04:00
parent e8dc86e058
commit 28a5789fe0

View File

@ -106,11 +106,7 @@
</template>
<template #body-cell-assigned="props">
<q-td :props="props" class="text-center">
<q-avatar v-if="props.row.assigned_staff" size="26px" text-color="white"
:style="{ background: staffColor(props.row.assigned_staff), fontSize: '10px', fontWeight: 600 }">
{{ staffInitials(props.row.assigned_staff) }}
<q-tooltip>{{ props.row.assigned_staff }}</q-tooltip>
</q-avatar>
<UserAvatar v-if="props.row.assigned_staff || props.row.assigned_staff_email" :ident="props.row.assigned_staff_email" :name="props.row.assigned_staff" :size="26" card />
<span v-else class="text-grey-4"></span>
</q-td>
</template>
@ -196,6 +192,7 @@ import DetailModal from 'src/components/shared/DetailModal.vue'
import InlineField from 'src/components/shared/InlineField.vue'
import FlowQuickButton from 'src/components/flow-editor/FlowQuickButton.vue'
import TicketCard from 'src/components/customer/TicketCard.vue'
import UserAvatar from 'src/components/shared/UserAvatar.vue'
const me = useAuthStore().user // courriel de l'agent connecté (pour « Mes tickets »)
const { slaFor } = useSla() // calcul SLA (politiques par file+priorité éditées dans Paramètres)
@ -258,7 +255,10 @@ function resetAndLoad () {
loadTickets()
}
const ISSUE_FIELDS = ['name', 'subject', 'customer_name', 'customer', 'opening_date', 'priority', 'status', 'issue_type', 'assigned_staff', 'owner', 'creation', 'legacy_ticket_id', 'is_important', 'first_responded_on', '_user_tags']
// ERPNext v16 REFUSE `assigned_staff_email` / `opened_by_staff_email` dans une requête `fields` la liste Issue
// plantait ENTIÈREMENT (0 ticket) côté frontend (listDocs interroge ERPNext direct, sans le strip du hub). Retirés
// jusqu'à ce que ces champs custom soient interrogeables ; UserAvatar retombe sur le nom (`assigned_staff`).
const ISSUE_FIELDS = ['name', 'subject', 'customer_name', 'customer', 'opening_date', 'priority', 'status', 'issue_type', 'assigned_staff', 'opened_by_staff', 'owner', 'creation', 'legacy_ticket_id', 'is_important', 'first_responded_on', '_user_tags']
async function loadTickets () {
loading.value = true
const filters = buildFilters({