Skip to main content

Overview

The PTE API provides endpoints to manage Technical Execution Projects, including listing PTEs with pagination and retrieving detailed information about specific PTEs.

Endpoints

List PTEs

curl -X GET "https://api.sascop-bme-subtec.com/operaciones/api/ptes/?pagina=1&elementos_por_pagina=10" \
  -H "Cookie: sessionid=your_session_id"
pagina
integer
default:"1"
Page number for pagination
elementos_por_pagina
integer
default:"10"
Number of items per page
ptes
array
Array of PTE objects
total_paginas
integer
Total number of pages available
pagina_actual
integer
Current page number
{
  "ptes": [
    {
      "id": 1,
      "oficio_pte": "PTE-2024-001",
      "descripcion_trabajo": "Inspección de estructura submarina",
      "fecha_solicitud": "2024-01-15",
      "responsable_proyecto": "Ing. Juan Pérez",
      "estatus": 2
    },
    {
      "id": 2,
      "oficio_pte": "PTE-2024-002",
      "descripcion_trabajo": "Mantenimiento preventivo de plataforma",
      "fecha_solicitud": "2024-01-20",
      "responsable_proyecto": "Ing. María González",
      "estatus": 1
    }
  ],
  "total_paginas": 5,
  "pagina_actual": 1
}

Get PTE Details

Retrieve detailed information about a specific PTE, including all steps and their status.
curl -X GET "https://api.sascop-bme-subtec.com/operaciones/api/ptes/1/" \
  -H "Cookie: sessionid=your_session_id"
pte_id
integer
required
The unique identifier of the PTE
id
integer
Unique identifier for the PTE
oficio_pte
string
Official PTE document number
descripcion_trabajo
string
Detailed description of the work
fecha_solicitud
string
Request date (YYYY-MM-DD)
plazo_dias
number
Deadline in days
responsable_proyecto
string
Project manager name
estatus
integer
PTE status (1=Active, 2=In Process, 3=Completed, 4=Cancelled)
detalles
array
Array of step details
{
  "id": 1,
  "oficio_pte": "PTE-2024-001",
  "descripcion_trabajo": "Inspección de estructura submarina en plataforma Alfa",
  "fecha_solicitud": "2024-01-15",
  "plazo_dias": 30.0,
  "responsable_proyecto": "Ing. Juan Pérez",
  "estatus": 2,
  "detalles": [
    {
      "paso_descripcion": "Revisión de documentación técnica",
      "estatus_pte": "Completado",
      "fecha_entrega": "2024-01-18",
      "comentario": "Documentación revisada y aprobada"
    },
    {
      "paso_descripcion": "Inspección visual submarina",
      "estatus_pte": "En Proceso",
      "fecha_entrega": null,
      "comentario": "Programado para la próxima semana"
    },
    {
      "paso_descripcion": "Elaboración de informe final",
      "estatus_pte": "Pendiente",
      "fecha_entrega": null,
      "comentario": ""
    }
  ]
}

Source Code Reference

The PTE API endpoints are implemented in: URL Configuration (operaciones/urls.py:177-179)
path('api/ptes/', api.api_ptes, name='api_ptes'),
path('api/ptes/<int:pte_id>/', api.api_pte_detalle, name='api_pte_detalle'),
View Implementation (operaciones/views/api.py:26-82)
@login_required(login_url='/accounts/login/')
def api_ptes(request):
    """API para lista de PTE con paginación"""
    pagina = request.GET.get('pagina', 1)
    elementos_por_pagina = request.GET.get('elementos_por_pagina', 10)
    
    ptes_list = PTEHeader.objects.all().order_by('-fecha_solicitud')
    paginator = Paginator(ptes_list, elementos_por_pagina)
    
    try:
        ptes = paginator.page(pagina)
    except:
        ptes = paginator.page(1)
    
    ptes_data = []
    for pte in ptes:
        ptes_data.append({
            'id': pte.id,
            'oficio_pte': pte.oficio_pte,
            'descripcion_trabajo': pte.descripcion_trabajo,
            'fecha_solicitud': pte.fecha_solicitud.strftime('%Y-%m-%d'),
            'responsable_proyecto': pte.responsable_proyecto,
            'estatus': pte.estatus,
        })
    
    return JsonResponse({
        'ptes': ptes_data,
        'total_paginas': paginator.num_pages,
        'pagina_actual': ptes.number,
    })
See PTE Models for complete data model documentation.

Build docs developers (and LLMs) love