\"feat(#4): Implementa vista y campos cl¡nicos en res.partner\"
This commit is contained in:
parent
cd8880a624
commit
aef6e49c50
61
GEMINI.md
61
GEMINI.md
|
@ -21,10 +21,13 @@ tea issue create --title "Título del Issue" --description "Descripción detalla
|
|||
Para agregar un comentario a un issue existente, se utiliza el comando `comment` seguido del número del issue y el texto del comentario entre comillas.
|
||||
|
||||
**Formato correcto:**
|
||||
|
||||
```bash
|
||||
tea comment <NÚMERO_ISSUE> "Tu comentario aquí"
|
||||
```
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
```bash
|
||||
tea comment 3 "Comentario de prueba"
|
||||
```
|
||||
|
@ -37,22 +40,45 @@ tea comment 3 "Comentario de prueba"
|
|||
|
||||
Debido a problemas de interpretación de comillas en el shell de ejecución, el uso de `git commit -m "mensaje"` puede fallar. Para evitar estos problemas, se debe pasar el mensaje del commit a través de la entrada estándar (`stdin`).
|
||||
|
||||
### Política de Mensajes de Commit
|
||||
|
||||
**Es mandatorio que el título de cada commit referencie el número del issue que resuelve.** Esto se hace para mantener una trazabilidad clara entre el código y las tareas.
|
||||
|
||||
**Formato del Título:**
|
||||
```
|
||||
<tipo>(#<issue_id>): <descripción breve>
|
||||
```
|
||||
- **`<tipo>`:** `feat` (nueva funcionalidad), `fix` (corrección de bug), `docs` (cambios en documentación), `style` (formato), `refactor`, `test`, `chore` (otras tareas).
|
||||
- **`(<issue_id>)`:** El número del issue entre paréntesis y precedido de `#`.
|
||||
|
||||
**Ejemplo:**
|
||||
```
|
||||
feat(#4): Agregar campos de género y fecha de nacimiento al paciente
|
||||
```
|
||||
|
||||
### Método Recomendado
|
||||
|
||||
Utiliza el comando `echo` y una tubería (`|`) para enviar el mensaje a `git commit -F -`.
|
||||
|
||||
**Commit de una sola línea:**
|
||||
|
||||
```bash
|
||||
echo "feat(scope): Tu mensaje de commit conciso" | git commit -F -
|
||||
echo "feat(#4): Tu mensaje de commit conciso" | git commit -F -
|
||||
```
|
||||
|
||||
**Commit multilínea:**
|
||||
Para mensajes de commit multilínea, la forma más segura es usar `printf` que maneja mejor los saltos de línea (`\n`):
|
||||
Para mensajes de commit multilínea, la forma más segura es usar `printf` que maneja mejor los saltos de línea (`
|
||||
`):
|
||||
|
||||
```bash
|
||||
printf "feat(scope): Título del commit\n\nCuerpo del mensaje con una descripción más detallada.\n\n- Un punto importante.\n- Otro punto importante.\n\nResolves: #123" | git commit -F -
|
||||
printf "feat(#4): Título del commit
|
||||
|
||||
Cuerpo del mensaje con descripción detallada." | git commit -F -
|
||||
```
|
||||
|
||||
Esto asegura que el formato del mensaje del commit se preserve correctamente.
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Crear un Pull Request
|
||||
|
@ -60,11 +86,13 @@ Esto asegura que el formato del mensaje del commit se preserve correctamente.
|
|||
Para crear un pull request (PR), se utiliza el comando `tea pulls create`. Debes especificar la rama base (hacia donde van los cambios) y la rama `head` (tu rama actual), junto con un título que referencie el issue que resuelve.
|
||||
|
||||
**Formato del comando:**
|
||||
|
||||
```bash
|
||||
tea pulls create --base "<rama_base>" --head "<tu_rama>" --title "<Tipo>(#issue): Título descriptivo"
|
||||
```
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
```bash
|
||||
tea pulls create --base "dev" --head "feature/3-core-setup" --title "feat(#3): Actualiza instrucciones en GEMINI.md"
|
||||
```
|
||||
|
@ -86,14 +114,29 @@ Al iniciar cada sesión de trabajo, es **mandatorio** leer los siguientes docume
|
|||
|
||||
Para levantar la instancia efímera de Odoo 18 junto con la base de datos de PostgreSQL, se utiliza Docker Compose.
|
||||
|
||||
**Comando:**
|
||||
**Comando de inicio:**
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
Este comando levantará los servicios definidos en el archivo `docker-compose.yml` en modo "detached" (`-d`).
|
||||
|
||||
Este comando levantará los servicios definidos en el archivo `docker-compose.yml` en modo "detached" (`-d`), lo que significa que se ejecutarán en segundo plano.
|
||||
|
||||
Para detener los servicios, utiliza:
|
||||
**Comando de detención y limpieza:**
|
||||
Para detener los servicios y asegurar un estado limpio, **siempre se deben eliminar los volúmenes**, a menos que se indique lo contrario.
|
||||
```bash
|
||||
docker-compose down
|
||||
```
|
||||
docker-compose down -v
|
||||
```
|
||||
|
||||
### Verificación de la Inicialización
|
||||
|
||||
Después de levantar la instancia, es **mandatorio** verificar los registros del contenedor de inicialización para confirmar que los módulos se instalaron o actualizaron correctamente.
|
||||
|
||||
**Comando para ver los logs:**
|
||||
```bash
|
||||
docker-compose logs odoo_init
|
||||
```
|
||||
|
||||
Busca errores en la salida. Si encuentras alguno, debes presentar un resumen del problema y sus posibles causas, como:
|
||||
- **Dependencias faltantes:** Un módulo no se puede instalar porque requiere otro que no está presente.
|
||||
- **Errores de sintaxis:** Problemas en archivos Python (`.py`) o XML (`.views`, `.xml`).
|
||||
- **Permisos incorrectos:** Problemas de acceso a archivos o directorios.
|
||||
- **Datos incorrectos:** Errores en los archivos de datos de demostración o iniciales.
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
<field name="name">Ana Torres</field>
|
||||
<field name="is_patient" eval="True"/>
|
||||
<field name="patient_identifier">P0001</field>
|
||||
<field name="birthdate_date">1985-05-15</field>
|
||||
<field name="gender">female</field>
|
||||
<field name="phone">+1-202-555-0174</field>
|
||||
<field name="email">ana.torres@example.com</field>
|
||||
</record>
|
||||
|
@ -15,6 +17,8 @@
|
|||
<field name="name">Carlos Ruiz</field>
|
||||
<field name="is_patient" eval="True"/>
|
||||
<field name="patient_identifier">P0002</field>
|
||||
<field name="birthdate_date">1992-11-20</field>
|
||||
<field name="gender">male</field>
|
||||
<field name="phone">+1-202-555-0192</field>
|
||||
<field name="email">carlos.ruiz@example.com</field>
|
||||
</record>
|
||||
|
|
|
@ -6,6 +6,12 @@ class ResPartner(models.Model):
|
|||
|
||||
is_patient = fields.Boolean(string="Es Paciente")
|
||||
patient_identifier = fields.Char(string="Identificador de Paciente", copy=False)
|
||||
birthdate_date = fields.Date(string="Fecha de Nacimiento")
|
||||
gender = fields.Selection([
|
||||
('male', 'Masculino'),
|
||||
('female', 'Femenino'),
|
||||
('other', 'Otro')
|
||||
], string="Género")
|
||||
|
||||
is_doctor = fields.Boolean(string="Es Médico")
|
||||
doctor_license = fields.Char(string="Licencia Médica", copy=False)
|
||||
|
|
|
@ -1,30 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- Hereda la vista de formulario para añadir campos de Paciente -->
|
||||
<record id="view_partner_form_patient" model="ir.ui.view">
|
||||
<field name="name">res.partner.form.patient</field>
|
||||
<!-- Hereda la vista de formulario para añadir una pestaña de "Información Clínica" -->
|
||||
<record id="view_partner_form_lims" model="ir.ui.view">
|
||||
<field name="name">res.partner.form.lims</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='vat']" position="after">
|
||||
<field name="is_patient"/>
|
||||
<field name="patient_identifier" invisible="not is_patient"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Hereda la vista de formulario para añadir campos de Médico -->
|
||||
<record id="view_partner_form_doctor" model="ir.ui.view">
|
||||
<field name="name">res.partner.form.doctor</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='vat']" position="after">
|
||||
<field name="is_doctor"/>
|
||||
<field name="doctor_license" invisible="not is_doctor"/>
|
||||
<xpath expr="//page[@name='internal_notes']" position="before">
|
||||
<page string="Información Clínica" name="clinical_info">
|
||||
<group>
|
||||
<group>
|
||||
<field name="is_patient"/>
|
||||
<field name="patient_identifier" invisible="not is_patient"/>
|
||||
<field name="birthdate_date" invisible="not is_patient"/>
|
||||
<field name="gender" invisible="not is_patient"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="is_doctor"/>
|
||||
<field name="doctor_license" invisible="not is_doctor"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
</odoo>
|
||||
|
|
Loading…
Reference in New Issue
Block a user