Odoo: Usando XML ID para referenciar objetos en las vistas

Realizado en Odoo v11

Aca simplemente vamos a ver como se pueden usar los xml IDs para hacer referencia a objetos dentro de las vistas, esto puede ser necesario por ejemplo cuando no sea posible hacer referencias por el nombre como ‘stage_id.name’, cuando se trabaja con las vistas.

Veamos un caso practico:

En el módulo de CRM ocultaremos el botón “Mark as Lost” cuando la oportunidad esta marcada como “Won”. Para esto crearemos una vista que heredara la vista de formulario de la oportunidad ‘crm.crm_case_form_view_oppor’ donde se encuentra el botón “Mark as Lost”:

<button name="122" string="Mark Lost" type="action" class="oe_highlight" context="{'default_lead_id': active_id}" attrs="{'invisible': ['|', ('stage_id', '=', 4), '&amp;', ('active', '=', False),('probability', '&lt;', 100)]}" modifiers="{'invisible':['|',['stage_id','=',4],'&amp;',['active','=',false],['probability','&lt;',100]]}" options="{}"/>

Podemos notar que ese boton tiene un name=”122″ esto porque es una accion, si buscamos esta acción podemos copiar su XML ID al cual haremos referencia para hacer la búsqueda del botón y realizar las modificaciones que necesitamos.

La vista heredada quedara asi:

<odoo>
    <record id=”crm_opportunity_view” model=”ir.ui.view”>
        <field name=”name”>crm.opportunity.view</field>
        <field name=”model”>crm.lead</field>
        <field name=”inherit_id” ref=”crm.crm_case_form_view_oppor”/>
        <field name=”arch” type=”xml”>
            <xpath expr=”//button[@name=%(crm.crm_lead_lost_action)d]” position=”attributes”>
                <attribute name=”attrs”>{‘invisible’: [‘|’, (‘stage_id’, ‘=’, %(crm.stage_lead4)d), ‘&amp;’, (‘active’, ‘=’, False),(‘probability’, ‘&lt;’, 100)]}</attribute>
           </xpath>
    </field>
</record>
</odoo>

Aca buscamos el botón “Mark as Lost” e hicimos referencia al estado de la oportunidad, ambos a través de su XML ID usando la notación “%(xml.id)d”.

Esto permitira ocultar el botón “Mark as Lost” cuando la oportunidad sea marcada como Won.


Botón “Mark as Lost” oculto porque la oportunidad esta marcada como Won

En el video se puede ver como la modificación del atributo “invisible” oculta el boton:

Video: Ocultar el boton “Mark as Lost”

Nota: Esto es solo un ejemplo para el uso de XML ID para hacer referencia a objetos en una vista XML, ten en cuenta que a través del Menu “Action” en la vista de formulario se puediera marcar la oportunidad como perdida (Lost) incluso despues de haberla marcado como ganada (Won).

Anuncios

Modificar menú ‘Action’ en Odoo

Realizado en Odoo v.11

Se supone que ya se tiene un modulo donde se desee implementar esto, de lo contrario será necesario crear e instalar un módulo para su implementación

Requerimiento
Modificar el menú Action en los modelos res.partner y product.template de modo que no esten disponibles las opciones Archive (Archivar) y Unarchive (Desarchivar) para aquellas personas que no tengan asignado el permiso archive product & partner en sus respectivos usuarios.

Crear el permiso
Se crea el archivo test_module/security/archive_product_partner_security.xml

Modificar el Menu
Para modificar este menú trabajaremos con Javascript ya que este es creado en un archivo JS. Aca https://github.com/odoo/odoo/blob/11.0/addons/web/static/src/js/views/list/list_controller.js#L136 podemos ver la ejecución del Archive o Unarchive las cuales dependen de la variable archiveEnabled esta variable es asignada aca https://github.com/odoo/odoo/blob/11.0/addons/web/static/src/js/views/basic/basic_view.js#L41 por lo que crearemos un archivo JS para editar esa variable.

Creamos un archivo test_modulo/static/src/js/basic_view.js, donde condicionaremos el active para la variable archiveEnable solo cuando el permiso este presente.

odoo.define('test_modulo.BasicView', function (require) {
"use strict";

var session = require('web.session');
var BasicView = require('web.BasicView');
BasicView.include({
        init: function(viewInfo, params) {
            var self = this;
            this._super.apply(this, arguments);
            var model = self.controllerParams.modelName in ['res.partner','product.template'] ? 'True' : 'False';
            if(model) {
                session.user_has_group('test_modulo.group_archive').then(function(has_group) {
                    if(!has_group) {
                        self.controllerParams.archiveEnabled = 'False' in viewInfo.fields;
                    }
                });
            }
        },
});
});

Agregar a assets
Por último es necesario incluir este archivo JS recien creado en los assets para que sea ejecutado, creamos una vista test_modulo/views/template.xml

Todo el Código

Congreso Nacional de Software Libre, otra vez en Carabobo

CNSL valencia, Carabobo

Este 2015 tendremos nuevamente el Congreso Nacional de Software Libre en Carabobo (CNSL), evento que se realiza anualmente en todo el territorio nacional.

Lo que este año quisiera destacar es la importancia de las y los activistas que trabajan en pro de este evento, el cual sería imposible sin el trabajo voluntario de cientos de personas que además de trabajar por un salario, asumen la responsabilidad de llevar el mensaje del Software Libre a cada uno de sus estados. Cada año las y los activistas que desean asumir este reto, postulan su estado para que sea sede del CNSL, a partir de allí comienza el trabajo de casi un año de organización para que en dos días todo el publico asistente pueda disfrutar (o no) de esta actividad para compartir y conocer.

Así, como la mayoría de los eventos donde se promueven las tecnologías libres, este evento no se realiza por una remuneración (un salario), todos los recursos son obtenidos de donaciones, colaboración o patrocinio de personas, empresas o instituciones, públicas o privadas; lo cual no es un trabajo fácil para los colectivos regionales.

En fin, espero recuerdes esto cada vez que asistas a este o cualquier otro evento realizado por activistas, no por lastima, pero por respeto al trabajo que realizan estas personas, a veces sin experiencias previas, pero que creen en que cada año puede ser mejor.

Las y los activistas nunca son suficientes!! unete a la causa y mejora cada día más este tipo de eventos, o inventa los tuyos!!

Como participar:

  • Asistente
  • Ponencia
  • Feria Productiva

Para mayor información sobre el evento:
http://cnsl.org.ve
@CNSLve
@CNSLCarabobo
@CCaraboboLibre

Graficos con Writer

Con LibreOffice es fácil hacer gráficos de cualquier tipo, incluso no necesitamos de la Hoja de Cálculo para hacer la tarea. Entonces, veamos como podemos usar un Documento de Texto para graficar nuestros datos.

Abrimos un Documento de Texto (Writer) e insertamos una tabla con el número de filas y columnas necesarias para colocar los datos que graficaremos.

Tabla de datos

Luego, con los datos ya listos comenzamos a graficar. Primero, seleccionamos los datos de la tabla que queremos aparezcan en el gráfico, en este caso todos.

Seleccionar tabla de datos

Con los datos seleccionados, en el Menú Insertar, seleccionamos la opción Objeto, Diagrama.

Ingresar grafico

Y seleccionamos el tipo de gráfico que queremos, hacemos click en el botón “Siguiente” y seguimos las instrucciones, hasta obtener el gráfico.

Seleccionar grafico

Datos graficados

Si deseas puedes descargar esta Propina en formato PDF, o en formato editable

Discusión de Propuesta de Ley de Libre Acceso al Conocimiento

A partir del Decreto 3390 en Venezuela se inicia un ciclo de auge participativo y protagónico de parte de las y los activistas de las Tecnologías Libres en la política Nacional. Gracias al interés estratégico del Gobierno Nacional por las Tecnologías Libres y a la creciente participación en los ámbitos del Poder Legislativo y Ejecutivo de los Colectivos de Tecnologías Libres, como Poder Popular, nace la Ley de InfoGobierno, que garantiza y da carácter legal al uso y desarrollo de Tecnologías Libres por parte de todas las instancias del Poder Público y el Poder Popular.

Ahora, con la propuesta de Ley de Libre Acceso al Conocimiento se abren las puertas para cambios profundos en la forma y la sustancia de pensar, de crear e innovar para la construcción de un país en donde la igualdad de condiciones y de oportunidades es factor integral de la justicia y la paz. En el marco de esta propuesta se han estado realizando en el país discusiones para escuchar y recoger las propuestas del pueblo Venezolano.

En Carabobo estaremos realizando esta discusión el Sábado 06 de Diciembre (2014) en las instalaciones del Consejo Legislativo Bolivariano del Estado Carabobo (CLBEC) a partir de las 9:30am, con la participación de la Diputada Miriam Perez de la Comisión de Ciencia, Tecnología e Innovación, y la colaboración de la Sub Comisión de Ciencia, Tecnología e Innovación del CLBEC, presidida por el Legislador Miguel Pineda, la Unidad Territorial del Estado Carabobo (UTCarabobo – FUNDACITE), y el Colectivo Carabobo Libre como parte de los Colectivos de Tecnologías Libres de la Región.

Si deseas leer la propuesta de Ley puedes acceder aquí

El día del evento se recogerán los aportes y propuestas de las y los asistentes.

PARTICIPA!!!

LibreOffice: Cartas en serie

La impresión de cartas en serie, o como muchas/os lo conocen “Combinación de correspondencia”, es un método eficaz para la impresión de documentos idénticos en los cuales solo debemos cambiar ciertos campos o datos.

En este resumido “Paso a paso”, se explicara la manera de hacer la impresión de cartas en serie con LibreOffice (en su versión 3.4)

Primero hacemos nuestra base de datos, que para este caso será una hoja de cálculo donde organizaremos los datos o campos cambiantes en nuestro documento. Por ejemplo, queremos hacer cartas personalizadas de invitación a diferentes personas de diferentes empresas, por lo que necesitaremos los datos: Nombre y apellido, cargo y empresa, para lo cual realizamos la siguiente tabla en una hoja de cálculo:

Tabla de datos

A este archivo podemos colocarle cualquier nombre, en este caso usaremos: datos.ods. Luego, creamos el documento al cual queremos agregar los datos, la invitación.

Carta o documento

Los datos entre corchetes son los datos que ingresaremos de la base de datos (se coloca así solo para hacerlos notar, no es necesario hacerlo). Para insertar los datos de la base de datos (datos.ods) hacemos click en el menú “Insertar”, opción “Campos” -> “Otros”.

Insercion de campos

Al hacer click en “Otros” aparecerá una ventana de dialogo, en la cual seleccionaremos la pestaña “Base de Datos” (en caso de no estar seleccionada previamente). Hacemos click en el botón “Examinar”, y seleccionamos la hoja de cálculo que creamos previamente (datos.ods).

Seleccion datos

Ahora podemos ver nuestra base de datos en el cuadro “Seleccionar base de datos”, allí desplegamos los campos, haciendo doble click en el nombre de la base de datos, hasta visualizar los campos.

Seleccion de la base de datos

En este caso veremos: nombre, apellido, cargo y empresa.

Seleccion de campos en BD

Para insertar los campos simplemente, sin cerrar la ventana “Campos”, hacemos doble click en el campo que queremos insertar en el documento – el cursor debe estar en el sitio en el documento donde queremos insertar el campo. Los campos insertados aparecerán con fondo gris y entre los signos mayor y menor.

Insercion de campos en documento

Si terminamos de insertar todos los campos podemos cerrar la ventana “Campos”, y pasar a imprimir los documentos.

Si seleccionamos la opción “Imprimir” del menú “Archivo”, aparecerá el siguiente mensaje:

Mensaje de impresion

Seleccionamos “Si” y aparecerá una pantalla de “Impresión en serie” con diferentes opciones, entre las cuales podemos elegir si imprimir directamente en la impresora o imprimir en un archivo. Esta última opción creará tantos archivos como datos tenga la base de datos para imprimirlos en otra ocasión.

Impresora
Para imprimir directamente en la impresora se selecciona la opción “Impresora” y hacemos click en el botón “Aceptar”, luego seleccionamos la impresora que queremos usar.

Impresion directa

Archivo

  • Para crear diferentes archivos, se selecciona la opción “Archivo” y se habilitarán las opciones de “Guardar documentos fusionados”, donde podemos elegir entre:“Guardar como un documento”, creará un solo documento con varia páginas, tantas como datos tenga la base de datos.
  • “Guardar como documentos individuales”, creará tantos documentos como datos en la base de datos.

Impresion en archivo

Si seleccionamos la segunda opción, se habilitarán las demás opciones, donde podremos seleccionar el nombre de cada documento, la ruta o directorio donde se guardarán y el formato con el cual se generarán los documentos.

En este caso seleccionaremos, la segunda opción y lo guardaremos en un directorio creado para la ocasión llamado “CartaEnSerie” que se encuentra el directorio “Documentos” de la carpeta personal.

Impresion documento individuales

Si revisamos en directorio “CartaEnSerie”, veremos los documentos individuales cuyos nombres corresponden al de cada persona en la base de datos.

Revision de archivos impresos

Ademas, puedes descargar esta “Propina” completa aqui, en formato PDF:
La Propina

… o si deseas editarla, puedes descargar el archivo ODT, aqui:
La Propina

II Foro de Mujeres y Tecnologias de Información Libres

II Foro de Mujeres y Tecnologias Libres

El Foro de Mujeres y Tecnologías de Información Libres es un evento que tiene por objeto la visibilización de las Mujeres en el “mundo” de las Tecnologías Libres, además de servir como espacio para la discusión y reflexión entre iguales.

Este evento es Libre y Gratuito, por lo que todas y todos estan invitados a participar en pro de la igualdad, el trato justo y respetuoso entre seres humanos.

Este año se estarán presentando dos modalidades para la participación: Las Ponencias y Desconferencias, esta última es un mecanismo informal para la discusión donde todas y todos los interesados pueden participar en el tema tratado.

El Foro de Mujeres y Tecnologías de Información Libres es organizado por el Colectivo “Activistas por el Software Libre”, a quienes puedes contactar:
Twitter: @ActivistasSL
Facebook: https://www.facebook.com/activistasxsl

Si quieres asistir, debes ir al INCES de Nueva Granada (Caracas, Venezuela) el 12 y 13 de Septiembre.

Pero si ademas quieres postular una ponencia o desconferencia descarga el archivo para conocer las premisas de postulación de Ponencia o Desconferencia: Postulacion para la Participación

… y el formato para la postulación:
Formato de Postulación

RECUERDA que todo documento debe ser enviado en formatos libres o bajo estándares abiertos.