Commit 7df08155 by Maria Agustina

809 PARA TESTEAR

1 parent 319aabdc
......@@ -17,7 +17,7 @@ class controlador_incidencias(http.Controller):
return (True)
else:
nva_incidencia = self.crearIncidencia2(inci_model, kw)
return(nva_incidencia.id)
return(nva_incidencia.id)
def crearIncidencia2(self, model, kw):
nva_inci = model.create({
......@@ -27,7 +27,6 @@ class controlador_incidencias(http.Controller):
'descripcion': kw['descripcion'],
'in_id_si': kw["in_id_si"],
})
return(nva_inci)
\ No newline at end of file
......@@ -17,7 +17,7 @@ datos_json = json.dumps(datos)
f = requests.post(URL+'/soporte/alta/2', data=datos_json, headers=headers)
frespuesta = f.json()
print(frespuesta)
#print(frespuesta)
data = {
......
......@@ -4,7 +4,6 @@ from odoo import models, fields, api
from datetime import datetime
import requests, json
URL = 'http://s2.hgtec.com.ar:8005'
headers = {'Content-Type': 'application/json'}
class hgt_incidencias(models.Model):
......@@ -12,6 +11,11 @@ class hgt_incidencias(models.Model):
_order = "id desc"
_rec_name = "name"
in_cerrada = fields.Boolean(
string=u'Cerrada',
default=False,
)
responsabilidad = fields.Selection(
string=u'Responsabilidad',
selection=[('pro', 'Propia'), ('ter', 'Tercero'), ('cli', 'Cliente'), ('cat', 'Catástrofe')]
......@@ -34,17 +38,10 @@ class hgt_incidencias(models.Model):
string=u'Descripción',
)
in_name = fields.Text(
string=u'Nombre',
)
name = fields.Char(
string=u'Nombre',
)
descripcion = fields.Text(
string=u'Descripción',
)
in_fecha = fields.Datetime(
string = 'Fecha de creación',
......@@ -101,6 +98,11 @@ class hgt_incidencias(models.Model):
in_texto_mensaje = fields.Char(string='Mensaje')
in_in_interno = fields.Boolean(
string="Nota Interna?",
default=False
)
in_mensajes = fields.Many2many('hgt.incidencias_mensaje', string=u'Mensajes',
relation='hgt_incidencia_mensaje_rel',
column2='hgt_incidencias_id',
......@@ -118,6 +120,7 @@ class hgt_incidencias(models.Model):
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,
}
......@@ -129,7 +132,9 @@ class hgt_incidencias(models.Model):
self.in_mensajes = lista_msj
self.in_texto_mensaje = False
self.registrar_mensaje(nvo_mensaje)
self.enviar_mensaje(nvo_mensaje)
if (self.in_in_interno == False):
self.enviar_mensaje(nvo_mensaje)
def enviar_mensaje(self, mens):
#funcion para mandar el mensaje al modulo de incidencias
......@@ -141,30 +146,17 @@ class hgt_incidencias(models.Model):
'id_incide_original': self.in_id_si,
'si_fecha': self.in_fecha,
'responsable': self.responsable.id,
'name': self.in_name,
'name': self.name,
}
}
URL = self.env['ir.config_parameter'].sudo().search([('key','=','web.base.url')])
URL = str(URL.value)
datos_json = json.dumps(datos)
f = requests.post(URL+'/soporteMensaje', data=datos_json, headers=headers)
frespuesta = f.json()
print(frespuesta)
#Comento porque desde incidencias no creamos incidencias a soporte
# def enviarIncidencia(self):
# #funcion para la creacion de incidencias en modulo incidencias
# datos = {
# 'params': { 'token':"""sdfghjkjhgfds2568uyhgfds657875645324ghgjhfgdfsgdfghjk65""",
# 'si_fecha': self.in_fecha,
# 'responsable': self.responsable.id,
# 'name': self.in_name,
# 'si_id': self.id,
# }
# }
# datos_json = json.dumps(datos)
# f = requests.post(URL+'/soporteIncidencias/crear', data=datos_json, headers=headers)
# frespuesta = f.json()
# print(frespuesta)
#print(frespuesta)
def registrar_mensaje(self, mens):
......@@ -184,6 +176,59 @@ class hgt_incidencias(models.Model):
self.in_historico_mensajes = Texto
return(True)
def splitInci(self):
#funcion para insertar incidencia activa en popup y abrirlo
active_inc = self.id
datos = {
'split_incidencia': active_inc,
}
wizard = self.env['hgt.incidencias_temas_split'].create(datos)
return {
'type': 'ir.actions.act_window',
'name': 'Dividir incidencias por temas',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'hgt.incidencias_temas_split',
'res_id': wizard.id,
'target': 'new',
}
def cerrarIncidencia(self):
if (self.in_cerrada == True):
datos = {
'params': {
'token': """sdfghjkjhgfds2568uyhgfds657875645324ghgjhfgdfsgdfghjk65""",
'si_cerrada': True,
'id_incide_original': self.in_id_si,
}
}
URL = self.env['ir.config_parameter'].sudo().search([('key','=','web.base.url')])
URL = str(URL.value)
datos_json = json.dumps(datos)
f = requests.post(URL+'/soporteIncidencias/crear', data=datos_json, headers=headers)
frespuesta = f.json()
print(frespuesta)
#desde aca creamos incidencias a soporte solo desde split
def enviarIncidencia(self):
#funcion para la creacion de incidencias en modulo soporte
datos = {
'params': { 'token':"""sdfghjkjhgfds2568uyhgfds657875645324ghgjhfgdfsgdfghjk65""",
'si_fecha': self.in_fecha,
'responsable': self.responsable.id,
'name': self.name,
'descripcion': self.descripcion,
'id_original': self.in_id_si,
'si_cerrada': self.in_cerrada,
'responsabilidad': self.responsabilidad,
}
}
URL = self.env['ir.config_parameter'].sudo().search([('key','=','web.base.url')])
URL = str(URL.value)
datos_json = json.dumps(datos)
f = requests.post(URL+'/soporteIncidencias/crear', data=datos_json, headers=headers)
frespuesta = f.json()
self.in_id_si = frespuesta['result']
def generar_tareas(self):
#import ipdb; ipdb.set_trace()
......@@ -217,6 +262,9 @@ class hgt_incidencias(models.Model):
result['domain'] = {'accion' : [('id', 'in', ids)]}
return result
#parte vieja OSTICKET
url = fields.Char(string='Url de ticketera')
numero = fields.Char(string='Numero de ticket')
......@@ -234,68 +282,51 @@ class hgt_incidencias(models.Model):
ost_mensaje = fields.Text(string='Mensajes')
def splitInci(self):
#funcion para insertar incidencia activa en popup y abrirlo
active_inc = self.id
datos = {
'split_incidencia': active_inc,
}
wizard = self.env['hgt.incidencias_temas_split'].create(datos)
return {
'type': 'ir.actions.act_window',
'name': 'Dividir incidencias por temas',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'hgt.incidencias_temas_split',
'res_id': wizard.id,
'target': 'new',
}
# @api.model
# 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
# 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)
@api.model
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
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
from datetime import datetime
import requests, json
headers = {'Content-Type': 'application/json'}
class hgt_incidencias_temas(models.Model):
_name = 'hgt.incidencias_temas'
......@@ -23,4 +27,22 @@ class hgt_incidencias_temas(models.Model):
t_incidencias = fields.Many2many('hgt.incidencias', string=u'Incidencias',
relation='hgt_incidencia_temas_rel',
column1='hgt_incidencias_id',
column2='hgt_incidencias_temas_id')
\ No newline at end of file
column2='hgt_incidencias_temas_id')
t_texto_mensaje = fields.Char(string='Mensaje')
t_t_interno = fields.Boolean(
string="Nota Interna?",
default=False
)
def enviarMensaje_t(self):
for inci in self.t_incidencias:
inci.in_texto_mensaje = self.t_texto_mensaje
inci_in_in_interno = self.t_t_interno
inci.enviarMensaje_in()
inci.in_texto_mensaje = ""
inci_in_in_interno = False
self.t_texto_mensaje = ""
self.t_t_interno = False
return "Exito"
\ No newline at end of file
......@@ -27,6 +27,7 @@
<!-- <field name="url" widget="url"/> -->
<field colspan="2" name="cliente"/>
<field name="descripcion"/>
<field name="in_cerrada" />
</tree>
</field>
</record>
......@@ -42,50 +43,37 @@
<form>
<!--<sheet>-->
<header>
<button type="object" name="splitInci" string="Separar en temas" class="oe_highlight"/>
<button type="object" name="splitInci" string="Separar en incidencias" class="oe_highlight"/>
</header>
<group col="4" string="Incidencia">
<field name="name" colspan="2"/>
<field name="in_cerrada" invisible="1" />
<field name="name" colspan="2" attrs="{'readonly':[('in_cerrada','=',True)]}"/>
<!-- <field colspan="2" name="fecha_creacion"/> -->
<field colspan="2" name="in_fecha"/>
<field colspan="2" name="in_fecha" attrs="{'readonly':[('in_cerrada','=',True)]}"/>
<field colspan="2" name="descripcion"/>
<field colspan="2" name="estado"/>
<field colspan="2" name="descripcion" attrs="{'readonly':[('in_cerrada','=',True)]}"/>
<field colspan="2" name="estado" attrs="{'readonly':[('in_cerrada','=',True)]}"/>
</group>
<group col="4">
<field colspan="2" name="responsabilidad"/>
<field colspan="2" name="cliente"/>
<field colspan="2" name="responsabilidad" attrs="{'readonly':[('in_cerrada','=',True)]}"/>
<field colspan="2" name="cliente" attrs="{'readonly':[('in_cerrada','=',True)]}"/>
</group>
<!-- <h2>Ticket</h2>
<group col="2">
<field name="url" widget="url"/>
<field name="in_numero" />
<field name="ost_cliente" />
</group> -->
<!-- <group col="4">
<field name="ost_mail" />
<field name="ost_telefeno" />
</group>
<group col="1">
<h2>Asunto</h2>
<field name="ost_asunto" nolabel="1"/>
<h2>Descripcion</h2>
<field name="descripcion" nolabel="1"/>
<h2>Mensajes</h2>
<field name="ost_mensaje" nolabel="1"/>
</group> -->
<group col="1">
<h2>Temas</h2>
<field name="in_temas" nolabel="1"/>
<field name="in_temas" nolabel="1" attrs="{'readonly':[('in_cerrada','=',True)]}"/>
</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" />
<field name="in_historico_mensajes" readonly="1" colspan="2" nolabel='1' attrs="{'readonly':[('in_cerrada','=',True)]}"/>
</group>
<group col="2">
<field name="in_texto_mensaje" nolabel='1' colspan="1" attrs="{'readonly':[('in_cerrada','=',True)]}" />
<button name="enviarMensaje_in" attrs="{'readonly':[('in_cerrada','=',True)]}" class="oe_edit_only" colspan="1" string="Enviar Mensaje" type="object" />
<field name="in_in_interno" attrs="{'readonly':[('in_cerrada','=',True)]}" colspan="1"/>
</group>
<group>
<field name="in_mensajes" required="0" nolabel="1" >
......@@ -124,11 +112,38 @@
</notebook>
<!--</sheet>-->
<h2>MOD. VIEJO - OSTicket</h2>
<group col="2">
<field name="url" widget="url"/>
<field name="in_numero" />
<field name="ost_cliente" />
</group>
<group col="4">
<field name="ost_mail" />
<field name="ost_telefeno" />
</group>
<group col="1">
<h2>Asunto</h2>
<field name="ost_asunto" nolabel="1"/>
<h2>Descripcion</h2>
<field name="descripcion" nolabel="1"/>
<h2>Mensajes</h2>
<field name="ost_mensaje" nolabel="1"/>
</group>
</form>
</field>
</record>
<record id="view_incidencias_search" model="ir.ui.view">
<field name="name">Incidencias</field>
<field name="model">hgt.incidencias</field>
<field name="arch" type="xml">
<search>
<field name="name" />
</search>
</field>
</record>
</data>
</odoo>
......@@ -7,7 +7,6 @@
<menuitem name="Incidencias" id="hgt_incidencias_incidencias" parent="asw_crm.asw_crm_root" />
<menuitem name="Ver Incidencias" parent="hgt_incidencias_incidencias" id="hgt_incidencias_accion" action="action_incidencias_act_window" />
<menuitem name="Configuracion incidencia" parent="hgt_incidencias_incidencias" id="hgt_conf_incidencias_accion" action="action_incidenciasconfig_act_window" />
<menuitem name="BORRAR MENSAJES" parent="hgt_incidencias_incidencias" id="hgt_incidencias_mensajes" action="action_hgt_incidencias_mensaje_act_window" />
<menuitem name="Temas" id="hgt_incidencias_temas" parent="asw_crm.asw_crm_root" />
<menuitem name="Ver Temas" parent="hgt_incidencias_temas" id="hgt_temas_accion" action="action_hgt_incidencias_temas_act_window" />
<menuitem name="Agrupar Incidencias" parent="hgt_incidencias_temas" id="hgt_merge_it" action="action_hgt_merge_incidenciastemas_act_window" />
......
......@@ -49,6 +49,12 @@
<field name="t_incidencias" colspan="2" nolabel="1"/>
</group>
<group col="4" string="Responder a todas">
<field name="t_texto_mensaje" nolabel='1' colspan="1" />
<button name="enviarMensaje_t" class="oe_edit_only" colspan="1" string="Enviar Mensaje" type="object" />
<field name="t_t_interno" colspan="1"/>
</group>
<group col="4" string="Tareas">
<field name="t_tareas" colspan="2" nolabel="1"/>
</group>
......
......@@ -13,6 +13,11 @@ class hgt_incidencias_temas_split(models.TransientModel):
related="split_incidencia.name"
)
split_descripcion = fields.Text(
string=u'Descripción',
related="split_incidencia.descripcion"
)
split_responsabilidad = fields.Selection(
string=u'Responsabilidad',
related="split_incidencia.responsabilidad"
......@@ -23,9 +28,6 @@ class hgt_incidencias_temas_split(models.TransientModel):
related="split_incidencia.cliente"
)
# split_incidenciastd = fields.Many2one('hgt.split_tema_descr',
# string='Nuevas Incidencias')
split_incidenciastd = fields.One2many(
string='Nuevas incidencias',
comodel_name='hgt.split_tema_descr',
......@@ -33,18 +35,36 @@ class hgt_incidencias_temas_split(models.TransientModel):
)
def splitIncidencia(self):
#metodo que crea incidencias a partir de las descripciones aportadas x usuario y las reune en un mismo tema
titulo_tema = "Split - "+ self.split_name
descrip_tema = "Tema que reune la división en incidencias de la incidencia original " + self.split_name
datos_tema = {'t_titulo': titulo_tema, 't_descripcion': descrip_tema}
nvo_tema = self.env['hgt.incidencias_temas'].create(datos_tema)
texto = "TICKET CERRADO - SEPARADO EN: "
for inc in self.split_incidenciastd:
nombre = inc.splittd_descr
tema = inc.splittd_tema
nombre = inc.splittd_nom
descripcion = inc.splittd_descr
tema = nvo_tema
datos = {'name': nombre,
'descripcion': descripcion,
'responsabilidad': self.split_responsabilidad,
'cliente': self.split_cliente.id,
}
nva_inci = self.env['hgt.incidencias'].create(datos)
#nva_inci.in_temas = (4, tema.id)
temita = self.env['hgt.incidencias_temas'].search([('id', '=', tema.id)])
temita.t_incidencias = (4, nva_inci.id)
nva_inci = self.env['hgt.incidencias'].create(datos)
nvo_tema.t_incidencias = (4, nva_inci.id)
#creacion de las mismas incidencias en soporte p q el cliente las vea
nva_inci.enviarIncidencia()
texto += " -"+nombre
self.cerrarIncidencia(texto)
def cerrarIncidencia(self, texto):
self.split_incidencia.in_texto_mensaje = texto
self.split_incidencia.enviarMensaje_in()
self.split_incidencia.in_texto_mensaje = ""
self.split_incidencia.in_cerrada = True
self.split_incidencia.cerrarIncidencia()
return "Exito"
\ No newline at end of file
......@@ -20,19 +20,20 @@
<field name="arch" type="xml">
<form>
<!--<sheet>-->
<group col="4" string="Descripción incidencia original">
<field name="split_name" colspan="2" readonly="1" nolabel="1"/>
<group col="4" string="Incidencia original">
<field name="split_name" colspan="4" readonly="1" nolabel="1"/>
<field name="split_descripcion" colspan="4" readonly="1" nolabel="1"/>
</group>
<group col="4" string="Elegir temas y escribir descripción de nuevas incidencias">
<group col="4" string="Escribir descripción de nuevas incidencias">
<field name="split_incidenciastd" nolabel="1">
<tree create="1" edit="1" editable="1">
<field name="splittd_tema"/>
<field name="splittd_nom"/>
<field name="splittd_descr"/>
</tree>
</field>
</group>
<footer>
<button name="splitIncidencia" type="object" string="Dividir y crear nuevas incidencias"/>
<button name="splitIncidencia" type="object" class="oe_highlight" string="Dividir y crear nuevas incidencias"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
<!--</sheet>-->
......
......@@ -5,13 +5,14 @@ from odoo import models, fields, api
class hgt_split_tema_descr(models.TransientModel):
_name = "hgt.split_tema_descr"
splittd_tema = fields.Many2one('hgt.incidencias_temas',
string='Tema')
splittd_descr = fields.Text(
string=u'Descripción',
)
splittd_nom = fields.Char(
string=u'Nombre',
)
rel_split = fields.Many2one(
string='Split',
comodel_name='hgt.incidencias_temas_split',
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!