Entradas

27. Apuntes

 Para saber si un campo se ha creado en una aplicación, campo "modules" de cualquier modelo indica en que modelos se utiliza. Por tanto, no hace falta meter nombres de campos raros (que comiencen por ejemplo por "x_") pues ya podemos saber si son originarios del modelo o no. 

26. Creando un módulo con un modelo tipo singleton. Boton con ejecución. Heredar de res.config.settings

 1. Preliminares Creamos la carpeta por ejemplo  my-addons donde guardaremos las aplicaciones que creemos . Comprobamos que el addons_path del fichero de configuración ( en nuestro caso odoo17.conf) apunte a nuestra carpeta. [options] addons_path = /home/eduard/MyPython/04.odoo17/ my-addons ,/home/ximo/MyPython/04.odoo17/odoo/odoo/addons admin_passwd = ...... Nos situamos en la donde está odoo (~MyPpython/04.odoo17)  y creamos el scaffold de nuestro módulo en la carpeta my-addons/ odoo scaffold xm_grpcastilla my-addons/ Ahora ya tenemos el esqueleto. Tenemos en principio 2 maneras para hacerlo: Creando un modelo singleton con un solo registro Ampliando el modelo "res.config.settings" 2.1 Opción 1: Creando un modelo singleton Este modelo, al igual que otros modelos tiene sus campos y métodos que en este caso cabe recalcar la ejecución de un script. Las particularidades que tiene este modelo son: Método "create" que lanza una excepción si el número de re...

35. Conectar el servidor debian12 a una carpeta compartida windows server

 Según chatGPT debemos hacer: 1. Instala los paquetes necesarios Primero, asegúrate de tener instaladas las herramientas necesarias: sudo apt update sudo apt install cifs-utils 2. Crea un punto de montaje Crea un directorio donde se montará la carpeta compartida de Windows. Por ejemplo: sudo mkdir /mnt/carpeta_windows 3. Montar la carpeta compartida manualmente Usa el siguiente comando para montar la carpeta compartida desde el servidor Windows: sudo mount -t cifs -o "domain= MI-DOMINIO-WINDOWS username= TU_USUARIO ,password= TU_CONTRASEÑA ,vers=3.0 // IP_SERVIDOR_WINDOWS/RUTA_COMPARTIDA /mnt/carpeta_windows MI-DOMINIO-WINDOWS : Nombre del dominio de Windows IP_SERVIDOR : La dirección IP del servidor Windows. RUTA_COMPARTIDA : El nombre de la carpeta compartida en el servidor. username  y  password : Las credenciales de acceso al servidor windows windows. vers=3.0 : Asegura que uses la versión correcta del protocolo SMB, que en la mayoría de los casos es 3.0. Si tienes...

34. La notación polaca de Odoo

 Odoo trabaja con notación polaca prefija por ejemplo [" | ", ("active", "=", False), ("active", "=", True)] Pero tanto en Python com en SQL se utiliza la notación infija if (a>3 or b<=4) where (age>30 and isAvalible=True) Vamos a realizar una opción para convertir la notación infija a prefija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 16...

33. El perfil de Odoo

Imagen
 Nuestro perfil está en la parte superior derecha de la pantalla. Y apretando en el podemos ver ciertas opciones que no aparecen en "Ajustes - Usuarios" Seleccionamos "Mi perfil" del menú emergente  Y en "Seguridad de la Cuenta" podemos ver las claves de API que hemos creado.

33. Errores de borrado de registro por integridad referencial. Permisos adicionales. Administrador / Ajustes

Imagen
 1. Borrar un usuario: Constraint res_users_apikeys_user_id_fkey Se produce cuando este usuario tiene registros en la tabla res.users.apikeys Para ello consultamos por API: print (xmodoo . request_props( myPropsOdoo \ , 'res.users.apikeys' , 'search_read' \ ,[[[ 'id' , '>' , 0 ]]], { 'fields' : [], 'limit' : 500 } \ )) Y sale: [ { 'id' : 1 , 'name' : 'Proves Ximo' , 'user_id' : [ 2 , 'Ximo Dante ' ], 'scope' : False , 'create_date' : '2024-02-20 16:45:13' , '__last_update' : '2024-09-25 08:04:31' , 'display_name' : 'Proves Ximo' }, { 'id' : 2 , 'name' : 'Pruebas Borrar' , 'user_id' : [ 2108 , 'Usario Para Borrar' ], 'scope' : False , 'create_date' : '2024-05-21 08:57:06' , '__last_update' : '2024-09-25 08:04:31' , ...

32. El módulo de control de presencia (asistencias). Error de assets/javascript

Imagen
 1. Definición de parámetros Nos basamos en Synkiria En el menú superior izquierdo seleccionamos en "Ajustes". A continuación en el menú laeral izquierdo hacer click en "Asistencias" Ahora tenemos la pantalla siguiente y definimos: El tipo de identificación del usuario (por Código de barras (RFID) o por selección manual) El dispositivo de lectura para el caso que tengamos un lector de códigos de barras (que puede ser la camara frontal o trasera) 2. Definir la identificación del empleado Hemos visto que para identificar un empleado podemos utilizar un PIN manual ( código NIP )  o un código de barras ( ID de credencial )  Para ello vamos al empleado (Menu lateral izquierdo -> Empleados) y en un empleado en cuestión, en la pesaña de "configuración RRHH", podemos dar el PIN o el código de barras.  El código de barras, si queremos lo puede generar el sistema (haciendo click sobre " Generar ") Si le damos a imprimir credencial  para imprimir la tar...