Commit fdc2a386 by juan

Se agrega soporte a capturas y mejoras de seguridad

1 parent e01bb30d
......@@ -95,7 +95,35 @@ class hgt_soporte_incidencia(models.Model):
horas = fields.Float(string='Horas insumida por soporte',
readonly=True)
para_operacion = fields.Boolean(string='URGENTE (Detiene la empresa)')
file_name = fields.Char(string='Nombre', default='')
file = fields.Binary(string='Capturas')
archivos = fields.Html(string='Archivos',
default="")
@api.onchange('file', "archivos")
def _onchange_file(self):
if self.file == False:
return()
val = {"file": self.file,
"filename":self.file_name}
r = requests.post("http://192.168.15.121:8536/upload", json=val)
rta = r.json()
img_url = rta["url"]
#html = f"""<div><img src="{img_url}&w=500&h=350" alt="" width="500px" height="350px" /> \n<a>{img_url}</a></div> \n{self.archivos}"""
html = f"""<div>
<a download="custom-filename.jpg" href="{img_url}" title="ImageName">
<img src="{img_url}&w=500&h=350" alt="" width="500px" height="350px" />
</a>
</div>\n{self.archivos}"""
#print(html)
self.file = False
self.archivos = html
self.ActualizadorGereal()
def registrar_mensaje(self, mens):
text = mens.si_mensaje
......@@ -139,6 +167,9 @@ class hgt_soporte_incidencia(models.Model):
def enviarIncidencia(self):
#funcion para la creacion de incidencias en modulo incidencias
if not self.env.user.has_group('hgt_soporte.group_soporte_configurador'):
raise UserError("Usted no tiene permisos para generar tickets de soporte externos, genere un incidente interno y avise a su Referente Técnico interno o solicite permisos en su empresa para interactuar directamente con el proveedor.")
self.estado = "abierta"
self.subida = True
......@@ -156,6 +187,9 @@ class hgt_soporte_incidencia(models.Model):
'cliente_URL': URL_local,
'database': database,
'usuario': self.si_responsable.display_name,
'archivos':self.archivos,
'UID':self.env.user.id,
}
}
......@@ -223,19 +257,46 @@ class hgt_soporte_incidencia(models.Model):
'database': database,
'usuario': self.si_responsable.display_name,
'estado':"cerrada",
'archivos':self.archivos,
}
}
datos_json = json.dumps(datos)
f = requests.post(f"{HgtUrlBase}soporteIncidencias/crear", data=datos_json, headers=headers)
frespuesta = f.json()
if frespuesta["result"]["estado"] != "ok":
raise UserError(str(frespuesta))
#print(datos_json)
def ActualizadorGereal(self):
#if type(self.id) != int:
# return()
if self.subida == False:
return()
database = self.env.cr.dbname
datos = {
'params': { 'token':self.GenerarToken(),
'si_fecha': self.si_fecha,
'si_name': self.si_name,
'si_descripcion': self.si_descripcion,
'database': database,
'usuario': self.si_responsable.display_name,
'estado':self.estado,
'archivos':self.archivos,
}
}
print(datos_json)
datos_json = json.dumps(datos)
f = requests.post(f"{HgtUrlBase}soporteIncidencias/crear", data=datos_json, headers=headers)
frespuesta = f.json()
if frespuesta["result"]["estado"] != "ok":
raise UserError(str(frespuesta))
#print(hgt_soporte_incidencia.GenerarToken())
# si_url = fields.Char(string='Url de ticketera')
......
......@@ -54,30 +54,25 @@
<form>
<!--<sheet>-->
<header>
<button type="object" name="enviarIncidencia" string="Abrir y Notificar a HGT" attrs="{ 'invisible' :[('subida','=', True)] }" class="oe_highlight"/>
<button name="AbrirLocal" class="btn btn-success" string="Abrir Incidencia local" type="object" attrs="{ 'invisible' :[('estado','!=', 'borrador')] }"/>
<button type="object" name="enviarIncidencia" string="Abrir y Notificar a HGT" attrs="{ 'invisible' :[('estado','=', 'cerrada')] }" class="oe_highlight"/>
<button name="CerrarIncidencia" class="btn btn-danger" string="Cerrar incidencia" type="object" attrs="{ 'invisible' :[('estado','in', ['borrador','cerrada'])] }"/>
<field name="estado" widget="statusbar" readonly="1"/>
<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>
<group col="4" string="Incidencia">
<field name="si_name" colspan="2"/>
<!-- <field colspan="2" name="si_numero" readonly="1" /> -->
<field colspan="4" name="si_descripcion" attrs="{'readonly':[('estado','!=', 'borrador')]}"/>
<field colspan="2" name="si_fecha" readonly="1"/>
<field colspan="2" name="estado" readonly="1" />
<field colspan="2" name="si_responsabilidad" readonly="1"/>
<field name="usuario" readonly="1"/>
<field colspan="2" name="subida" invisible="1"/>
<field name="horas"/>
<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="file_name" invisible="1"/>
</group>
<group col="2" string="Mensajes">
<h3>Histórico de mensajes:</h3>
<field name="si_historico_mensajes" readonly="1" colspan="2" nolabel='1'/>
</group>
<group col="2">
<button name="AgregarMensaje" string="Agregar Mensaje" type="object" />
</group>
......@@ -90,9 +85,25 @@
<field name="remoto" attrs="{'readonly': True}" />
</tree>
</field>
</group>
<!--</sheet>-->
</form>
</group>
<group string="Imagenes" col="2" >
<field name="archivos" nolabel="1" readonly="1" force_save="1"/>
</group>
<!--</sheet>-->
<group col="4" string="Metadatos">
<field name="si_name" colspan="2"/>
<!-- <field colspan="2" name="si_numero" readonly="1" /> -->
<field colspan="2" name="si_fecha" readonly="1"/>
<field colspan="2" name="estado" readonly="1" />
<field colspan="2" name="si_responsabilidad" readonly="1"/>
<field name="usuario" readonly="1"/>
<field colspan="2" name="subida" invisible="1"/>
<field name="horas"/>
</group>
</form>
</field>
</record>
......
......@@ -5,20 +5,22 @@
<menuitem name="Soporte" sequence='97' id="hgt_soporte_soporte"/>
<!-- Elemento Grupe -->
<menuitem name="Incidencias Propias" sequence="10" id="hgt_soporte_incidencias_propias" parent="hgt_soporte_soporte"/>
<menuitem name="Representante Técnico" sequence="20" id="hgt_soporte_representante_tecnico" parent="hgt_soporte_soporte"/>
<menuitem name="Referente Tecnico" sequence="20" id="hgt_soporte_representante_tecnico" parent="hgt_soporte_soporte"/>
<menuitem name="Mis Incidencias"
sequence="10"
id="hgt_soporte_incidencias_propias_incidencias"
parent="hgt_soporte_incidencias_propias"
action="action_soporteincidencias_act_window"/>
action="action_soporteincidencias_act_window"
/>
<menuitem name="Incidencias"
sequence="10"
id="hgt_soporte_representante_tecnico_incidencias"
parent="hgt_soporte_representante_tecnico"
action="action_soporteincidenciasconfig_act_window"
groups="group_soporte_configurador"/>
groups="group_soporte_configurador"
/>
</data>
</odoo>
\ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!