فهرست منبع

project semaphore

Roberto pineda 6 ماه پیش
والد
کامیت
35b606f293

+ 33 - 0
project_semaphore/README.md

@@ -0,0 +1,33 @@
+# Project Semaphore
+
+Este módulo agrega banderines semáforo a las tarjetas kanban de proyectos basándose en el campo color.
+
+## Funcionalidad
+
+El módulo muestra banderines diagonales en las tarjetas de proyectos según el valor del campo `color`:
+
+- **Color 1 (Rojo)**: Muestra emoji de alerta ⚠️
+- **Color 10 (Verde)**: Muestra emoji de pulgar hacia arriba 👍  
+- **Color 3 (Amarillo)**: Muestra emoji de cara seria 😐
+
+## Instalación
+
+1. Coloca el módulo en el directorio `extra-addons/custom/`
+2. Actualiza la lista de módulos en Odoo
+3. Instala el módulo "Project Semaphore"
+
+## Uso
+
+1. Ve a Proyectos
+2. En la vista kanban, verás los banderines en las tarjetas de proyectos que tengan configurado un color (1, 10 o 3)
+3. Para cambiar el color de un proyecto, edita el proyecto y usa el selector de color (1=Rojo, 10=Verde, 3=Amarillo)
+
+## Archivos del módulo
+
+- `__manifest__.py`: Configuración del módulo
+- `views/project_project_views.xml`: Vista heredada que agrega los banderines
+- `static/src/scss/project_semaphore.scss`: Estilos CSS personalizados
+
+## Dependencias
+
+- Módulo `project` (incluido en Odoo) 

+ 1 - 0
project_semaphore/__init__.py

@@ -0,0 +1 @@
+# -*- coding: utf-8 -*- 

+ 26 - 0
project_semaphore/__manifest__.py

@@ -0,0 +1,26 @@
+{
+    'name': 'Project Semaphore',
+    'version': '1.0',
+    'category': 'Project',
+    'summary': 'Add semaphore ribbons to project kanban cards based on color field',
+    'description': """
+        This module adds diagonal ribbons to project kanban cards based on the color field:
+        - Red color (1): Shows alert emoji (⚠️)
+        - Green color (10): Shows thumbs up emoji (👍)
+        - Yellow color (3): Shows serious face emoji (😐)
+    """,
+    'author': 'Your Company',
+    'website': 'https://www.yourcompany.com',
+    'depends': ['project'],
+    'data': [
+        'views/project_project_views.xml',
+    ],
+    'assets': {
+        'web.assets_backend': [
+            'project_semaphore/static/src/scss/project_semaphore.scss',
+        ],
+    },
+    'installable': True,
+    'auto_install': False,
+    'application': False,
+} 

+ 1 - 0
project_semaphore/models/__init__.py

@@ -0,0 +1 @@
+# -*- coding: utf-8 -*- 

+ 31 - 0
project_semaphore/static/src/scss/project_semaphore.scss

@@ -0,0 +1,31 @@
+/* Project Semaphore Styles */
+
+/* Custom styles for semaphore ribbons */
+.o_kanban_record .ribbon {
+    /* Ensure ribbons are visible and properly positioned */
+    z-index: 10;
+}
+
+/* Custom emoji styling for better visibility */
+.o_kanban_record .ribbon span {
+    /* Make emojis more visible */
+    font-size: 1.2em;
+    line-height: 1.5;
+}
+
+/* Specific styling for each semaphore color */
+.o_kanban_record .ribbon.text-bg-danger span {
+    /* Red ribbon styling */
+    background-color: #dc3545;
+}
+
+.o_kanban_record .ribbon.text-bg-success span {
+    /* Green ribbon styling */
+    background-color: #198754;
+}
+
+.o_kanban_record .ribbon.text-bg-warning span {
+    /* Yellow ribbon styling */
+    background-color: #ffc107;
+    color: #000; /* Black text for better contrast on yellow */
+} 

+ 32 - 0
project_semaphore/views/project_project_views.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+    <data>
+        <!-- Inherit project kanban view to add semaphore ribbons -->
+        <record id="project_project_kanban_semaphore" model="ir.ui.view">
+            <field name="name">project.project.kanban.semaphore</field>
+            <field name="model">project.project</field>
+            <field name="inherit_id" ref="project.view_project_kanban"/>
+            <field name="arch" type="xml">
+                <xpath expr="//t[@t-name='card']/div[@class='o_project_kanban_main']" position="before">
+                    <!-- Red semaphore ribbon (color = 1) -->
+                    <widget name="web_ribbon" 
+                            title="⚠️" 
+                            bg_color="text-bg-danger" 
+                            invisible="color != 1"/>
+                    
+                    <!-- Green semaphore ribbon (color = 10) -->
+                    <widget name="web_ribbon" 
+                            title="👍" 
+                            bg_color="text-bg-success" 
+                            invisible="color != 10"/>
+                    
+                    <!-- Yellow semaphore ribbon (color = 3) -->
+                    <widget name="web_ribbon" 
+                            title="😐" 
+                            bg_color="text-bg-warning" 
+                            invisible="color != 3"/>
+                </xpath>
+            </field>
+        </record>
+    </data>
+</odoo>