Compare commits
2 Commits
v1.4.1.2
...
e766e5b747
| Author | SHA1 | Date | |
|---|---|---|---|
| e766e5b747 | |||
| 471c263158 |
BIN
backend/.coverage
Normal file
BIN
backend/.coverage
Normal file
Binary file not shown.
@@ -366,49 +366,6 @@ async def get_all_tickets_admin(
|
||||
]
|
||||
|
||||
|
||||
@router.get("/{ticket_id}", response_model=TicketResponse)
|
||||
async def get_ticket(
|
||||
ticket_id: str,
|
||||
db: AsyncSession = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
|
||||
if status_filter:
|
||||
try:
|
||||
status_enum = TicketStatus[status_filter.upper()]
|
||||
query = query.where(Ticket.status == status_enum)
|
||||
except KeyError:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=f"Invalid status: {status_filter}"
|
||||
)
|
||||
|
||||
query = query.order_by(Ticket.created_at.desc()).offset(skip).limit(limit)
|
||||
|
||||
result = await db.execute(query)
|
||||
tickets = result.scalars().all()
|
||||
|
||||
# ✅ CORREGIDO: Usar affected_system_id
|
||||
return [
|
||||
{
|
||||
"id": str(t.id),
|
||||
"ticket_number": t.ticket_number,
|
||||
"subject": t.subject,
|
||||
"title": t.subject,
|
||||
"description": t.description,
|
||||
"status": t.status.value,
|
||||
"priority": t.priority.value,
|
||||
"category_id": str(t.category_id) if t.category_id else None,
|
||||
"affected_system_id": str(t.affected_system_id) if t.affected_system_id else None, # ✅ CORREGIDO
|
||||
"created_by": str(t.created_by),
|
||||
"assigned_to": str(t.assigned_to) if t.assigned_to else None,
|
||||
"created_at": t.created_at,
|
||||
"updated_at": t.updated_at
|
||||
}
|
||||
for t in tickets
|
||||
]
|
||||
|
||||
|
||||
@router.get("/{ticket_id}", response_model=TicketResponse)
|
||||
async def get_ticket(
|
||||
ticket_id: str,
|
||||
|
||||
@@ -59,7 +59,6 @@
|
||||
<button
|
||||
on:click={toggleMenu}
|
||||
class="flex items-center space-x-2 text-gray-700 hover:text-primary-600 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 rounded-md p-2"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
on:keydown={(e) => e.key === 'Enter' && toggleMenu()}
|
||||
>
|
||||
|
||||
@@ -174,5 +174,6 @@
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
line-clamp: 2; /* Propiedad estándar para compatibilidad */
|
||||
}
|
||||
</style>
|
||||
@@ -214,7 +214,6 @@
|
||||
maxlength="6"
|
||||
required
|
||||
disabled={isLoading}
|
||||
autofocus
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -461,8 +461,9 @@
|
||||
<h3 class="font-medium text-gray-900 mb-4">Información General</h3>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label class="form-label">Razón Social</label>
|
||||
<label class="form-label" for="business_name">Razón Social</label>
|
||||
<input
|
||||
id="business_name"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={businessProfile.business_name}
|
||||
@@ -471,8 +472,9 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label">Nombre Comercial</label>
|
||||
<label class="form-label" for="commercial_name">Nombre Comercial</label>
|
||||
<input
|
||||
id="commercial_name"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={businessProfile.commercial_name}
|
||||
@@ -481,8 +483,9 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label">Clave de Cliente</label>
|
||||
<label class="form-label" for="client_code">Clave de Cliente</label>
|
||||
<input
|
||||
id="client_code"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={businessProfile.client_code}
|
||||
@@ -491,7 +494,7 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label">Tipo de Cliente</label>
|
||||
<label class="form-label" for="client_type">Tipo de Cliente</label>
|
||||
<select class="form-input" bind:value={businessProfile.client_type}>
|
||||
<option value="">Seleccionar...</option>
|
||||
<option value="corporativo">Corporativo</option>
|
||||
@@ -503,8 +506,9 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label">RFC</label>
|
||||
<label class="form-label" for="rfc">RFC</label>
|
||||
<input
|
||||
id="rfc"
|
||||
type="text"
|
||||
class="form-input {businessProfileErrors.rfc ? 'border-red-300' : ''}"
|
||||
bind:value={businessProfile.rfc}
|
||||
@@ -518,8 +522,9 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label">ID Fiscal (Otros países)</label>
|
||||
<label class="form-label" for="tax_id">ID Fiscal (Otros países)</label>
|
||||
<input
|
||||
id="tax_id"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={businessProfile.tax_id}
|
||||
@@ -619,8 +624,9 @@
|
||||
<h3 class="font-medium text-gray-900 mb-4">Representantes</h3>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label class="form-label">Encargado/Representante</label>
|
||||
<label class="form-label" for="company_representative">Encargado/Representante</label>
|
||||
<input
|
||||
id="company_representative"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={businessProfile.company_representative}
|
||||
@@ -629,8 +635,9 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label">Representante Legal</label>
|
||||
<label class="form-label" for="legal_representative">Representante Legal</label>
|
||||
<input
|
||||
id="legal_representative"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={businessProfile.legal_representative}
|
||||
@@ -645,7 +652,7 @@
|
||||
<h3 class="font-medium text-gray-900 mb-4">Configuración</h3>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label class="form-label">Moneda Preferida</label>
|
||||
<label class="form-label" for="preferred_currency">Moneda Preferida</label>
|
||||
<select class="form-input" bind:value={businessProfile.preferred_currency}>
|
||||
<option value="MXN">MXN - Peso Mexicano</option>
|
||||
<option value="USD">USD - Dólar Americano</option>
|
||||
@@ -654,12 +661,12 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label">Nacionalidad</label>
|
||||
<label class="form-label" for="nationality">Nacionalidad</label>
|
||||
<input type="text" class="form-input" bind:value={businessProfile.nationality} />
|
||||
</div>
|
||||
|
||||
<div class="md:col-span-2">
|
||||
<label class="form-label">Notas Adicionales</label>
|
||||
<label class="form-label" for="notes">Notas Adicionales</label>
|
||||
<textarea
|
||||
class="form-input"
|
||||
rows="3"
|
||||
|
||||
@@ -473,7 +473,7 @@
|
||||
{#if showCloseDialog}
|
||||
<div class="fixed inset-0 z-50 overflow-y-auto">
|
||||
<div class="flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
|
||||
<div class="fixed inset-0 transition-opacity" on:click={cancelCloseTicket}>
|
||||
<div class="fixed inset-0 transition-opacity" role="dialog" tabindex="0" on:click={cancelCloseTicket} on:keydown={(e) => e.key === 'Escape' && cancelCloseTicket()}>
|
||||
<div class="absolute inset-0 bg-gray-500 opacity-75"></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
"DOM.Iterable"
|
||||
],
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"isolatedModules": true
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true
|
||||
},
|
||||
"include": [
|
||||
"src/**/*",
|
||||
|
||||
@@ -84,6 +84,9 @@
|
||||
{#if isMenuOpen}
|
||||
<div
|
||||
class="fixed inset-0 z-40 lg:hidden"
|
||||
role="dialog"
|
||||
tabindex="0"
|
||||
on:click={() => isMenuOpen = false}
|
||||
on:keydown={(e) => e.key === 'Escape' && (isMenuOpen = false)}
|
||||
></div>
|
||||
{/if}
|
||||
@@ -78,7 +78,7 @@
|
||||
<!-- Mobile sidebar backdrop -->
|
||||
{#if open}
|
||||
<div class="fixed inset-0 z-40 lg:hidden">
|
||||
<div class="fixed inset-0 bg-gray-600 bg-opacity-75" on:click={() => open = false}></div>
|
||||
<div class="fixed inset-0 bg-gray-600 bg-opacity-75" role="dialog" tabindex="0" on:click={() => open = false} on:keydown={(e) => e.key === 'Escape' && (open = false)}></div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
"DOM.Iterable"
|
||||
],
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"isolatedModules": true
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true
|
||||
},
|
||||
"include": [
|
||||
"src/**/*",
|
||||
|
||||
Reference in New Issue
Block a user