Commit e463d7c2 by juan

Adjuntos locales y urgencia

1 parent f94e1fd6
......@@ -26,6 +26,8 @@
'security/permisos.xml',
'security/ir.model.access.csv',
'wizard/generarmensaje.xml',
'wizard/adjuntar.xml',
'wizard/bajr.xml',
'views/incidencia_view.xml',
'views/mensaje_view.xml',
'views/menu.xml',
......
# -*- coding: utf-8 -*-
from . import incidencia
from . import estados
from . import mensaje
\ No newline at end of file
from . import mensaje
from . import adjuntos
\ No newline at end of file
# -*- coding: utf-8 -*-
from odoo import models, fields, api
import datetime
from datetime import datetime
class hgt_soporte_adjunto(models.Model):
_name = 'hgt.soporte_adjunto'
_order = 'id desc'
name = fields.Char(string='Codigo')
creador = fields.Many2one(
string = 'Creador',
comodel_name = 'res.users',
ondelete = 'set null',
default = lambda self: self.env.user.id,
)
fecha = fields.Datetime(
string = u'Fecha de envío',
default=lambda self: datetime.now().strftime('%Y-%m-%d %H:%M:%S')
)
incidencia = fields.Many2one(
comodel_name='hgt.soporte_incidencia',
string='Incidencia')
remoto = fields.Boolean(string='Remoto')
usuario = fields.Char(string='Usuario',
default=lambda self: self.env.user.display_name,
readonly=True)
orden = fields.Integer(string='Archivo')
file_name = fields.Char(string='Nombre', default='')
file = fields.Binary(string='Capturas')
def CodigoBase(self):
"""Codigo que se mostrara en el id de archivo"""
return("ADJ_LOC")
def GenerarCodigoArchivo(self):
self.name = f"""{self.CodigoBase()}{str(self.id).zfill(5)}"""
def DescargarArchivo(self):
vals = {
"file_name": self.file_name,
"file": self.file,
}
adjunto = self.env['soporte.descarga_wiz'].create(vals)
return {
'name': "Adjunto",
'type': 'ir.actions.act_window',
'res_model': 'soporte.descarga_wiz',
'view_mode': 'form',
'view_type': 'form',
'res_id': adjunto.id,
'target': 'new',
}
......@@ -55,7 +55,11 @@ class hgt_soporte_incidencia(models.Model):
si_responsabilidad = fields.Selection(
string=u'Responsabilidad',
selection=[('pro', 'Propia'), ('ter', 'Tercero'), ('cli', 'Cliente'), ('cat', 'Catástrofe')]
selection=[
('pro', 'Propia'),
('ter', 'Tercero'),
('cli', 'Cliente'),
('cat', 'Catástrofe')]
)
si_historico_mensajes = fields.Text(string='Mensajes')
......@@ -67,7 +71,8 @@ class hgt_soporte_incidencia(models.Model):
default=False
)
si_mensajes = fields.Many2many('hgt.soporte_mensaje', string=u'Mensajes',
si_mensajes = fields.Many2many('hgt.soporte_mensaje',
string=u'Mensajes',
relation='hgt_soporte_incidencia_mensaje_rel',
column1='hgt_soporte_incidencia_id',
column2='hgt_soporte_mensaje_id')
......@@ -109,6 +114,22 @@ class hgt_soporte_incidencia(models.Model):
telefonos = fields.Char(string='Telefonos de aviso',
default="")
adjunto = fields.One2many(
comodel_name='hgt.soporte_adjunto',
inverse_name='incidencia',
string='Adjuntos')
conclucion = fields.Text(string='Informe Final',
readonly = True)
urgencia = fields.Selection(string='Urgencia',
selection=[
('urgente', 'Urgente'),
('no_urgente', 'No Urgente'),],
default="no_urgente",
required=True)
def AgregarTelefonoAviso(self):
"""Agregar telefono a la lista de telefonos de aviso"""
......@@ -224,6 +245,7 @@ class hgt_soporte_incidencia(models.Model):
'archivos':self.archivos,
'UID':self.env.user.id,
'telefonos':self.telefonos,
'urgencia':self.urgencia
}
}
......@@ -358,6 +380,18 @@ class hgt_soporte_incidencia(models.Model):
mensaje.usuario = usuario
mensaje.si_mens_fecha = fecha
mensaje.remoto = True
def AgregarAdjunto(self):
msj = self.env['soporte.adjunto_wiz'].create({"incidencia":self.id})
return {
'name': "Mensaje",
'type': 'ir.actions.act_window',
'res_model': 'soporte.adjunto_wiz',
'view_mode': 'form',
'view_type': 'form',
'res_id': msj.id,
'target': 'new',
}
#print(hgt_soporte_incidencia.GenerarToken())
# si_url = fields.Char(string='Url de ticketera')
......
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_hgt_soporte_incidencia,access_hgt_soporte_incidencia,model_hgt_soporte_incidencia,,1,1,1,1
access_hgt_soporte_estado,access_hgt_soporte_estado,model_hgt_soporte_estado,,1,1,1,1
access_hgt_soporte_mensaje,access_hgt_soporte_mensaje,model_hgt_soporte_mensaje,,1,1,1,1
\ No newline at end of file
access_hgt_soporte_mensaje,access_hgt_soporte_mensaje,model_hgt_soporte_mensaje,,1,1,1,1
access_hgt_soporte_adjunto,access_hgt_soporte_adjunto,model_hgt_soporte_adjunto,,1,1,1,1
\ No newline at end of file
......@@ -61,9 +61,11 @@
<field name="si_cerrada" invisible="1" />
</header>
<h6>NOTA1: Ingrese la información del incidente de forma que sea fácil de interpretar. Indique ¿cuando?¿cómo?¿qué? adjunte capturas de pantalla, fotos o archivos. Recuerde que cada interacción implica tiempo de soporte y que hasta que el área técnica no entienda el problema o necesidad no puede trabajar en ella. Ahorre tiempo y dinero sea claro y específico.</h6>
<h6>NOTA2: Un solo tema por Incidente, si necesita abordar más de un tema genere varios incidentes</h6>
<group col="4" string="Incidencia">
<field colspan="4" nolabel="1" name="si_descripcion" attrs="{'readonly':[('estado','!=', 'borrador')]}"/>
<field name="file" filename="file_name" attrs="{ 'invisible' :[('estado','in', ['borrador','cerrada'])] }"/>
<field name="urgencia" attrs="{'readonly':[('estado','!=', 'borrador')]}"/>
<field name="file" filename="file_name" attrs="{ 'invisible' :[('estado','in', ['cerrada'])] }"/>
<field name="file_name" invisible="1"/>
</group>
......@@ -74,6 +76,7 @@
<group col="2">
<button name="AgregarMensaje" string="Agregar Mensaje" type="object" />
<button name="AgregarAdjunto" string="Agregar Adjunto" type="object" />
</group>
<group>
......@@ -87,6 +90,22 @@
</field>
</group>
<group>
<field name="adjunto" required="0" nolabel="1" >
<tree delete="false" create="false">
<field name="name" attrs="{'readonly': True}" />
<field name="usuario" attrs="{'readonly': True}" />
<field name="fecha" attrs="{'readonly': True}" />
<field name="file_name" attrs="{'readonly': True}" />
<button name="DescargarArchivo" icon="fa-download" string="Descarga" type="object" />
</tree>
</field>
</group>
<group string="Conclucion" col="4" attrs="{'invisible':[('estado','!=', 'cerrada')]}">
<field name="conclucion" nolabel="1"/>
</group>
<group string="Imagenes" col="2" >
<field name="archivos" nolabel="1" readonly="1" force_save="1"/>
</group>
......
# -*- coding: utf-8 -*-
from . import generarmensaje
\ No newline at end of file
from . import generarmensaje
from . import adjuntar
from . import bajar
\ No newline at end of file
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import UserError
import requests, json
headers = {'Content-Type': 'application/json'}
class tpv_generar_nota(models.TransientModel):
_name = 'soporte.adjunto_wiz'
_description = 'Agregar adjunto'
incidencia = fields.Many2one(
string=u'incidencia origen',
comodel_name='hgt.soporte_incidencia',
)
file_name = fields.Char(string='Nombre', default='')
file = fields.Binary(string='Archivo')
def CargarAdjunto(self):
if self.file == False:
raise UserError("No se selecciono archivo")
vals = {
"file_name": self.file_name,
"file": self.file,
"incidencia": self.incidencia.id
}
adjunto = self.env["hgt.soporte_adjunto"].create(vals)
adjunto.GenerarCodigoArchivo()
self.PostProcesado(adjunto)
def PostProcesado(self,adjunto):
"""Luego de agregar el adjunto se debe Notificar al server externo
Via webservice"""
pass
def EnviarMensajeSoporte(self):
if self.incidencia.subida == False:
raise UserError("El responsable tecnico debe notificar a HGT primero")
self.Generarmensajeinterno()
self.incidencia.AgregarTelefonoAviso()
self.mensaje.remoto = True
Url = self.incidencia.GetUrlBase()
#print(self.mensaje)
datos = {
'params': { 'token':self.incidencia.GenerarToken(),
'si_mens_fecha': self.mensaje.si_mens_fecha,
'si_mensaje': self.mensaje.si_mensaje,
'codigo': self.incidencia.si_name,
'usuario': self.env.user.display_name,
'telefonos':self.incidencia.telefonos,
}
}
datos_json = json.dumps(datos)
f = requests.post(Url+'/soporteIncidencias/soporteMensaje', data=datos_json, headers=headers)
frespuesta = f.json()
if frespuesta["result"]["estado"] != "ok":
raise UserError(str(frespuesta))
def generar_notaCred(self):
return {
'name': "Nota de Débito",
'type': 'ir.actions.act_window',
'res_model': 'asw.comprobante',
'view_mode': 'form',
'view_type': 'form',
'res_id': contra_comprobante.id,
'target': 'self',
}
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<data noupdate="0">
<record id="soporte_adjuntador_wizzard_view_form" model="ir.ui.view">
<field name="name">Adjuntar a incidencia</field>
<field name="model">soporte.adjunto_wiz</field>
<field name="arch" type="xml">
<form>
<group col='4'>
<field name="file" filename="file_name"/>
<field name="file_name" invisible="1"/>
</group>
<div style='text-align:center'>
<button name="CargarAdjunto" class="btn btn-success" string="Adjuntar" type="object" />
</div>
<footer>
<button special='cancel' string="Cancelar"/>
</footer>
</form>
</field>
</record>
<!-- soporte.mensaje_wiz action window -->
<record id="soporte_adjuntador_wizzard_action" model="ir.actions.act_window">
<field name="name">Agregar Adjunto</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">soporte.adjunto_wiz</field>
<field name="src_model">soporte.adjunto_wiz</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="multi">True</field>
</record>
</data>
</odoo>
\ No newline at end of file
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import UserError
import requests, json
headers = {'Content-Type': 'application/json'}
class soporte_bajar_adjunto(models.TransientModel):
_name = 'soporte.descarga_wiz'
_description = 'Bajar Adjunto'
file_name = fields.Char(string='Nombre',
default='',
readonly=True)
file = fields.Binary(string='Archivo',
readonly=True)
\ No newline at end of file
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<data noupdate="0">
<record id="soporte_bajadordor_wizzard_view_form" model="ir.ui.view">
<field name="name">Bajar Archivo</field>
<field name="model">soporte.descarga_wiz</field>
<field name="arch" type="xml">
<form>
<group col='4'>
<field name="file" filename="file_name"/>
<field name="file_name" invisible="1"/>
</group>
<footer>
<button special='cancel' string="Cerrar Ventana"/>
</footer>
</form>
</field>
</record>
<!-- soporte.mensaje_wiz action window -->
<record id="soporte_bajadordor_wizzard_action" model="ir.actions.act_window">
<field name="name">Bajar Adjunto</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">soporte.descarga_wiz</field>
<field name="src_model">soporte.descarga_wiz</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="multi">True</field>
</record>
</data>
</odoo>
\ No newline at end of file
......@@ -10,7 +10,7 @@
<field name="texto"/>
</group>
<div style='text-align:center'>
<button name="EnviarMensajeSoporte" class="btn btn-info" string="Enviar mensaje a HGT" type="object" />
<button name="EnviarMensajeSoporte" class="btn btn-info" string="Mensaje HGT - Cliente" type="object" />
<button name="Generarmensajeinterno" class="btn btn-success" string="Mensaje interno" type="object" />
</div>
<footer>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!