Commit d18cd6f6 by Maria Agustina

avance 809

1 parent 3246a45a
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
'security/permisos.xml', 'security/permisos.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'views/incidencias.xml', 'views/incidencias.xml',
'views/mensajes.xml',
'views/configuracion.xml', 'views/configuracion.xml',
'views/menu.xml', 'views/menu.xml',
......
...@@ -5,3 +5,4 @@ from . import reporte ...@@ -5,3 +5,4 @@ from . import reporte
from . import cliente from . import cliente
from . import estados from . import estados
from . import configuracion from . import configuracion
from . import mensajes
\ No newline at end of file \ No newline at end of file
No preview for this file type
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
from odoo.exceptions import UserError from odoo.exceptions import UserError
from odoo import models, fields, api from odoo import models, fields, api
import requests import requests
class hgt_incidencias(models.Model): class hgt_incidencias(models.Model):
_name = 'hgt.incidencias' _name = 'hgt.incidencias'
_order = "id desc" _order = "id desc"
...@@ -28,22 +29,6 @@ class hgt_incidencias(models.Model): ...@@ -28,22 +29,6 @@ class hgt_incidencias(models.Model):
string=u'Descripción', string=u'Descripción',
) )
url = fields.Char(string='Url de ticketera')
numero = fields.Char(string='Numero de ticket')
_sql_constraints = [('id_ost_uniq', 'unique (id_ost)', 'Id Ticket must be unique.')]
id_ost = fields.Integer(string='Id osticket')
ost_cliente = fields.Char(string='Ost cliente')
ost_asunto = fields.Char(string='Ost asunto')
ost_mail = fields.Char(string='Ost mail')
ost_telefeno = fields.Char(string='Ost telefono')
ost_mensaje = fields.Text(string='Mensajes')
fecha_creacion = fields.Date( fecha_creacion = fields.Date(
string=u'Fecha de creación', string=u'Fecha de creación',
...@@ -68,7 +53,6 @@ class hgt_incidencias(models.Model): ...@@ -68,7 +53,6 @@ class hgt_incidencias(models.Model):
string='Tareas derivadas', string='Tareas derivadas',
) )
proyecto = fields.Many2one( proyecto = fields.Many2one(
string='Proyecto', string='Proyecto',
comodel_name='hgt.proyecto', comodel_name='hgt.proyecto',
...@@ -89,6 +73,52 @@ class hgt_incidencias(models.Model): ...@@ -89,6 +73,52 @@ class hgt_incidencias(models.Model):
tiempo_carga = fields.Integer(string='Tiempo utilizado', default=30) tiempo_carga = fields.Integer(string='Tiempo utilizado', default=30)
in_numero = fields.Char(string='Numero de ticket')
in_historico_mensajes = fields.Text(string='Mensajes')
in_texto_mensaje = fields.Char(string='Mensaje')
in_mensajes = fields.Many2many('hgt.incidencias_mensaje', string=u'Mensajes',
relation='hgt_incidencia_mensaje_rel',
column1='hgt_incidencias_id',
column2='hgt_incidencias_mensaje_id')
def enviarMensaje_in(self):
if (self.in_texto_mensaje == False) or (self.in_texto_mensaje == ""):
raise UserError("No se puede enviar un mensaje vacío")
datos = {'in_mensaje': self.in_texto_mensaje,
'in_interno': False,
}
nvo_mensaje = self.env['hgt.incidencias_mensaje'].create(datos)
lista_msj = []
for msj in self.in_mensajes:
lista_msj.append(msj.id)
lista_msj.append(nvo_mensaje.id)
self.in_mensajes = lista_msj
self.in_texto_mensaje = False
self.registrar_mensaje(nvo_mensaje)
def registrar_mensaje(self, mens):
text = mens.in_mensaje
envia = mens.in_creador
envia = envia.name
fecha = mens.in_mens_fecha
text_orig = self.in_historico_mensajes
if text_orig:
texto_nuevo = """\n{} - {} \n\n{}\n\n ______________________________________________________\n""".format(fecha,envia,text)
Texto = """{}\n{}""".format(texto_nuevo,text_orig)
self.in_historico_mensajes = Texto
return(True)
else:
texto_nuevo = """\n{} - {} \n\n{}\n\n ______________________________________________________\n""".format(fecha,envia,text)
Texto = """{}""".format(texto_nuevo)
self.in_historico_mensajes = Texto
return(True)
def generar_tareas(self): def generar_tareas(self):
#import ipdb; ipdb.set_trace() #import ipdb; ipdb.set_trace()
if (len(self.asignador) == 0): if (len(self.asignador) == 0):
...@@ -121,52 +151,68 @@ class hgt_incidencias(models.Model): ...@@ -121,52 +151,68 @@ class hgt_incidencias(models.Model):
result['domain'] = {'accion' : [('id', 'in', ids)]} result['domain'] = {'accion' : [('id', 'in', ids)]}
return result return result
url = fields.Char(string='Url de ticketera')
@api.model numero = fields.Char(string='Numero de ticket')
def create(self, vals):
dom =[]
config = self.env['hgt.coniguracion_incidencias'].search([["habilitado", "=", True]])
try:
datos = {'resumen':'Incidencia OST {} {}'.format(vals['numero'], vals['ost_asunto']),
'descripcion': vals['descripcion'],
'ejecutor':config.dispacher.id,
'origen':"Incidentes",}
if config.url_ost == True:
datos['notitas'] = vals['url']
if (vals['numero'] == False) or (vals['numero'] == ""):
raise()
except:
num = self.search_count([]) + 1
#num = 1
datos = {'resumen':'Incidencia local {} '.format(num),'origen':"Incidentes",'ejecutor':config.dispacher.id}
vals['numero'] = "INC {}".format(num)
print(datos)
nueva_tar = self.env['hgt.tarea'].create(datos)
try:
if vals['accion']:
accion = vals['accion']
acc = self.env['hgt.acciones'].search([('id','=',accion)])
acc.tareas = [(4,nueva_tar.id)]
except:
pass
vals['tarea'] = nueva_tar.id
result = super(hgt_incidencias, self).create(vals)
return result
_sql_constraints = [('id_ost_uniq', 'unique (id_ost)', 'Id Ticket must be unique.')]
id_ost = fields.Integer(string='Id osticket')
def mensajes_ost(self, val): ost_cliente = fields.Char(string='Ost cliente')
#print(val[0])
dom = [["numero", "=", val[0]]] ost_asunto = fields.Char(string='Ost asunto')
ins = self.env['hgt.incidencias'].search(dom, limit=1)
if len(ins) == 0: ost_mail = fields.Char(string='Ost mail')
#print("no esta en sistemma")
return(True) ost_telefeno = fields.Char(string='Ost telefono')
text_orig = ins.ost_mensaje
texto_nuevo = """\n{} {} {} \n{}\n\n#######################################################\n""".format(val[1],val[2],val[4],val[3]) ost_mensaje = fields.Text(string='Mensajes')
Texto = """{}\n{}""".format(text_orig,texto_nuevo)
#print(Texto) # @api.model
ins.ost_mensaje = Texto # def create(self, vals):
return(True) # dom =[]
# config = self.env['hgt.coniguracion_incidencias'].search([["habilitado", "=", True]])
# try:
# datos = {'resumen':'Incidencia OST {} {}'.format(vals['numero'], vals['ost_asunto']),
# 'descripcion': vals['descripcion'],
# 'ejecutor':config.dispacher.id,
# 'origen':"Incidentes",}
# if config.url_ost == True:
# datos['notitas'] = vals['url']
# if (vals['numero'] == False) or (vals['numero'] == ""):
# raise()
# except:
# num = self.search_count([]) + 1
# #num = 1
# datos = {'resumen':'Incidencia local {} '.format(num),'origen':"Incidentes",'ejecutor':config.dispacher.id}
# vals['numero'] = "INC {}".format(num)
# print(datos)
# nueva_tar = self.env['hgt.tarea'].create(datos)
# try:
# if vals['accion']:
# accion = vals['accion']
# acc = self.env['hgt.acciones'].search([('id','=',accion)])
# acc.tareas = [(4,nueva_tar.id)]
# except:
# pass
# vals['tarea'] = nueva_tar.id
# result = super(hgt_incidencias, self).create(vals)
# return result
# def mensajes_ost(self, val):
# #print(val[0])
# dom = [["numero", "=", val[0]]]
# ins = self.env['hgt.incidencias'].search(dom, limit=1)
# if len(ins) == 0:
# #print("no esta en sistemma")
# return(True)
# text_orig = ins.ost_mensaje
# texto_nuevo = """\n{} {} {} \n{}\n\n#######################################################\n""".format(val[1],val[2],val[4],val[3])
# Texto = """{}\n{}""".format(text_orig,texto_nuevo)
# #print(Texto)
# ins.ost_mensaje = Texto
# return(True)
......
# -*- coding: utf-8 -*-
from odoo import models, fields, api
import datetime
from datetime import datetime
class hgt_incidencias_mensaje(models.Model):
_name = 'hgt.incidencias_mensaje'
_order = 'id desc'
in_mensaje = fields.Text(string='Mensaje')
in_creador = fields.Many2one(
string = 'Creador',
comodel_name = 'res.users',
ondelete = 'set null',
default = lambda self: self.env.user.id,
)
in_mens_fecha = fields.Datetime(
string = u'Fecha de envío',
default=datetime.now().strftime('%Y-%m-%d %H:%M:%S')
)
in_interno = fields.Boolean(
string="Nota Interna?",
default=False
)
in_incidencias = fields.Many2many('hgt.incidencias', string=u'Incidencias',
relation='hgt_incidencia_mensaje_rel',
column2='hgt_incidencias_id',
column1='hgt_incidencias_mensaje_id')
\ No newline at end of file \ No newline at end of file
...@@ -20,10 +20,10 @@ ...@@ -20,10 +20,10 @@
<field name="active" eval="True" /> <field name="active" eval="True" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree> <tree>
<field name="numero" /> <field name="in_numero" />
<field name="ost_asunto" /> <!-- <field name="ost_asunto" /> -->
<field name="fecha_creacion"/> <field name="fecha_creacion"/>
<field name="url" widget="url"/> <!-- <field name="url" widget="url"/> -->
<field colspan="2" name="cliente"/> <field colspan="2" name="cliente"/>
<field name="descripcion"/> <field name="descripcion"/>
</tree> </tree>
...@@ -49,13 +49,13 @@ ...@@ -49,13 +49,13 @@
<field colspan="2" name="responsabilidad"/> <field colspan="2" name="responsabilidad"/>
<field colspan="2" name="cliente"/> <field colspan="2" name="cliente"/>
</group> </group>
<h2>Osticket</h2> <!-- <h2>Ticket</h2>
<group col="2"> <group col="2">
<field name="url" widget="url"/> <field name="url" widget="url"/>
<field name="numero" /> <field name="in_numero" />
<field name="ost_cliente" /> <field name="ost_cliente" />
</group> </group> -->
<group col="4"> <!-- <group col="4">
<field name="ost_mail" /> <field name="ost_mail" />
<field name="ost_telefeno" /> <field name="ost_telefeno" />
</group> </group>
...@@ -66,6 +66,22 @@ ...@@ -66,6 +66,22 @@
<field name="descripcion" nolabel="1"/> <field name="descripcion" nolabel="1"/>
<h2>Mensajes</h2> <h2>Mensajes</h2>
<field name="ost_mensaje" nolabel="1"/> <field name="ost_mensaje" nolabel="1"/>
</group> -->
<group col="2" string="Mensajes">
<h3>Histórico de mensajes:</h3>
<field name="in_historico_mensajes" readonly="1" colspan="2" nolabel='1'/>
<field name="in_texto_mensaje" nolabel='1' />
<button name="enviarMensaje_in" class="oe_edit_only" string="Enviar Mensaje" type="object" />
</group>
<group>
<field name="in_mensajes" required="0" nolabel="1" >
<tree delete="false" create="false">
<field name="in_mens_fecha" attrs="{'readonly': True}" />
<field name="in_creador" attrs="{'readonly': True}" />
<field name="in_mensaje" attrs="{'readonly': True}" />
</tree>
</field>
</group> </group>
<notebook> <notebook>
......
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data noupdate="0">
<record id="action_hgt_incidencias_mensaje_act_window" model="ir.actions.act_window">
<field name="type">ir.actions.act_window</field>
<field name="name">Mensaje</field>
<field name="res_model">hgt.incidencias_mensaje</field>
<field name="view_mode">tree,form</field>
<field name="view_type">form</field>
<field name="target">current</field>
</record>
<record id="view_hgt_incidencias_mensaje_tree" model="ir.ui.view">
<field name="name">Mensaje</field>
<field name="model">hgt.incidencias_mensaje</field>
<field name="type">tree</field>
<field name="mode">primary</field>
<field name="priority" eval="16" />
<field name="active" eval="True" />
<field name="arch" type="xml">
<tree>
<field name="in_creador" />
<field name="in_mens_fecha"/>
<field name="in_interno"/>
</tree>
</field>
</record>
<record id="view_hgt_incidencias_mensaje_form" model="ir.ui.view">
<field name="name">Mensaje</field>
<field name="model">hgt.incidencias_mensaje</field>
<field name="type">form</field>
<field name="mode">primary</field>
<field name="priority" eval="16" />
<field name="active" eval="True" />
<field name="arch" type="xml">
<form>
<!--<sheet>-->
<group col="4" string="Mensaje">
<field name="in_mens_fecha" colspan="2" attrs="{'readonly': True}" />
<field name="in_creador" colspan="2" attrs="{'readonly': True}" />
<field name="in_mensaje" attrs="{'readonly': True}" />
</group>
<group col="4">
<field name="in_interno" colspan="2" attrs="{'readonly': True}"/>
</group>
<!--</sheet>-->
</form>
</field>
</record>
</data>
</odoo>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!