Publicidad

viernes, 24 de enero de 2014

Redes Sociales en nuestros Modelos en OpenERP 7.0 y Odoo (OpenERP 8.0)

Agregar Redes Sociales en OpenERP 7.0 y Odoo (OpenERP 8.0)



    Desde la Versión 7.0 de OpenERP podemos observar en el pie de cualquier formulario la parte de Redes Sociales que de alguna manera de da un Plus a cualquier modelo de datos, para que podamos tener esa aplicación al momento de crear nuestros módulos en OpenERP tendríamos que agregar en nuestras clases el código siguiente:

1.- En la declaracion de nuestra Clase OSV tendriamos que agregar la linea:

    _inherit = ['mail.thread', 'ir.needaction_mixin'] ### Redes Sociales
  
    Con esta linea heredamos del modelo 'mail.thread' con el cual podemos enviar mensajes a nuestros seguidores en la parte de redes sociales, nuestra clase quedaria algo como el siguiente ejemplo:

class openacademy_student(osv.osv):
    _inherit = ['mail.thread', 'ir.needaction_mixin'] ### Redes Sociales
    _name = 'openacademy.student'
    _description = 'Formulario Estudiante'
    _columns = {
        'name': fields.char('Nombre', size=128, required=True),
        'state': fields.selection([
            ('draft', 'Borrador'),
            ('enrollment','Inscrito'),
            ('terminated','Grado Finalizado'),
            ('cancel','Cancelado'),
            ], 'Estado', readonly=True),
        'partner_id': fields.many2one('res.partner', 'Escuela', required=True),
        'matricula': fields.char('Matricula', size=64, readonly=True),
        'curp': fields.char('CURP', size=18),
        'sexo': fields.selection([
            ('m', 'Masculino'),
            ('f','Femenino')
            ], 'Sexo', required=True),

        'fecha': fields.date('Fecha'),
        'grado': fields.many2one('school.grade', 'Grado'),
    }

2.- Una vez definido en el codigo Python la parte de redes sociales tenemos que agregar en nuestra vista las siguientes lineas:

                    <!--  Parte de Redes Sociales -->
                    <div class="oe_chatter">
                        <field name="message_follower_ids" widget="mail_followers"/>
                        <field name="message_ids" widget="mail_thread"/> 
                    </div> 

    En que parte de nuestro codigo tendriamos que incluir estas lineas justo despues de la etiqueta que cierra el </sheet> para ello tendriamos que tener obligatoriamente definido un formulario de tipo version="7.0" como el siguiente ejemplo:

      <record id="openacademy_student_form" model="ir.ui.view">
            <field name="name">openacademy.student.form</field>
            <field name="model">openacademy.student</field>
            <field name="arch" type="xml">
                <form string="Estudiantes" version="7.0"> <!-- Definimos Formularios version 7.0 -->
                    <header>
                    </header>
                    <sheet>
                    </sheet>
                    <!--  Parte de Redes Sociales -->
                    <div class="oe_chatter">
                        <field name="message_follower_ids" widget="mail_followers"/>
                        <field name="message_ids" widget="mail_thread"/> 
                    </div> 

                </form>
            </field>
        </record>


Una vez realizado esto podemos visualizar un formulario con redes sociales como la siguiente imagen:



    Ahora para enviar mensajes a la parte de redes sociales utilizamos el metodo browse y el metodo de mail.thread llamado message_post ejemplo:

for obj in self.browse(cr, uid, ids, context=context):
self.message_post(cr, uid, [obj.id], body=_("Alumno Inscrito en la escuela <em>%s</em>.") % (obj.partner_id.name),  context=context)

    Con esto enviamos un mensaje "Alumno Inscrito en la escuela ASUSTEK" por ejemplo y esto aparecera en la parte de redes sociales, tenemos que enviar estos mensajes mediante el uso de funciones que estaremos definiendo en nuestra clase.

6 comentarios:

  1. Alguna manera de instalar un chat en la versión 7.0 o 7.1? ya he hecho de todo, y por lo que ví en la v8 lo trae incorporado, pero no tengo para bajar el odoo 8 y probar o revisar el código para hacer una ingeniería inversa.. tienes alguna idea, un post o algo que hable al respecto del tema? gracias, si te es valido envíame un correo para establecer mejor la conversación y duda.

    leroy.melanio@gmail.com

    ResponderEliminar
    Respuestas
    1. Hola, recuerdo un modulo llamado crm_live_chat, funcionana para OpenERP 7.0, pero integra el chat de google, pudedes encontrarlo en la comunidad.

      Eliminar
    2. Muchas gracias por tu respuesta, a la final me tuve que resignar instalando Hangouts, pero probaré ese que me dices tu. Es a la lista de las cosas que debo hacer en esta vida! gracias ^^

      Eliminar
  2. Para poner por ejemplo un vendedor, que al momento se guarde aparezca como seguidor? (Como se usa en Pedido de Ventas)

    ResponderEliminar
    Respuestas
    1. Que tal, Al momento de añadir esta parte de redes sociales, automáticamente el creador del documento se agrega como seguidor.

      Sl2

      Eliminar
    2. Ok, mi pregunta es cuando pones a una segunda persona, como cuando se asigna una oportunidad a "x" persona, esa persona aparece como seguidor también automaticamente. hay algun codigo para hacer eso.. ayuda.

      Saludos

      Eliminar