DigitalSignage/models/dss_kileads.py

110 lines
4.7 KiB
Python

import ast
import datetime
import uuid
import logging
from PIL import Image,ImageDraw,ImageFont
from odoo import api, fields, models, _
from odoo import tools
from odoo.exceptions import ValidationError
from datetime import date
from datetime import datetime
from dateutil.relativedelta import relativedelta
from pyffmpeg import FFmpeg
from tuya_iot import TuyaOpenAPI, TUYA_LOGGER
from tuya_connector import TuyaOpenAPI, TUYA_LOGGER
from webdav4.client import Client
from webdav4.fsspec import WebdavFileSystem
import sys
TUYA_LOGGER.setLevel(logging.DEBUG)
_logger = logging.getLogger(__name__)
class dsskileadscategories(models.Model):
_name = "dss.kileads.categories"
_description = "DigitalSignage KI Lead Kategorien"
_rec_name = "uuid"
# _inherit = ['mail.thread', 'mail.activity.mixin']
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
date_create = fields.Date('Erstellungsdatum',default=lambda self: self._default_create_date())
date_lastedit = fields.Date('Änderungsdatum')
user_create = fields.Char('Erstellungsuser',default=lambda self: self._default_create_user())
user_lastedit = fields.Char('Änderungsuser')
categorie = fields.Char(string="Kategorie", required=True)
@api.model
def _default_uuid(self):
return str(uuid.uuid4())
@api.model
def _default_create_date(self):
return datetime.now().strftime('%Y-%m-%d %H:%M:%S')
@api.model
def _default_create_user(self):
return self.env.user.name if self.env.user else 'System'
class dsskileads(models.Model):
_name = "dss.kileads"
_description = "DigitalSignage KI Leads"
_inherit = ['mail.thread','mail.activity.mixin']
_rec_name = "uuid"
# _inherit = ['mail.thread', 'mail.activity.mixin']
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
date_create = fields.Date('Erstellungsdatum',default=lambda self: self._default_create_date())
date_lastedit = fields.Date('Änderungsdatum')
user_create = fields.Char('Erstellungsuser',default=lambda self: self._default_create_user())
user_lastedit = fields.Char('Änderungsuser')
lead_request = fields.Many2one('dss.kileads.requests', string="Anfrage des Leads",tracking=True)
lead_id = fields.Char(string="Lead ID", required=True, tracking=True)
lead_request_id = fields.Char(related="lead_request.request_id")
lead_converted = fields.Boolean(string='Lead ausgewertet',tracking=True)
lead_raw_data = fields.Char(string="Raw Antwort der Anfrage")
#lead_crm_lead = fields.Many2one("crm.leads")
lead_nummer = fields.Integer(string="Nummer im Request")
lead_name = fields.Char(string="Name",tracking=True)
lead_address = fields.Char(string="Adresse",tracking=True)
lead_address_city = fields.Char(string="Adresse Stadt",tracking=True)
lead_address_street = fields.Char(string="Adresse Strasse",tracking=True)
lead_address_country = fields.Char(string="Adresse Land",tracking=True)
lead_address_district = fields.Char(string="Adresse Bezirk",tracking=True)
lead_address_state = fields.Char(string="Adresse Bundenland",tracking=True)
lead_address_zip = fields.Char(string="Adresse PLZ",tracking=True)
lead_google_id = fields.Char(string="Google ID",tracking=True)
lead_place_id = fields.Char(string="Google Place ID",tracking=True)
lead_main_category = fields.Char(string="Tätigkeitsfeld",tracking=True)
#lead_categories = fields.Many2many("dss.kileads.categories",string="Kategorien")
lead_phone = fields.Char(string="Telefon",tracking=True)
lead_website = fields.Char(string="Webseite",tracking=True)
lead_latitude = fields.Char(string="Latitude",tracking=True)
lead_longitude = fields.Char(string="Longitude",tracking=True)
lead_picture_url = fields.Char(string="Bild",tracking=True)
lead_exported_ignore_caller = fields.Boolean(string="vom Caller zu ignorieren",tracking=True)
lead_exported_to_caller = fields.Boolean(string="zum Caller exportiert",tracking=True)
lead_caller_response = fields.Char(string="Antwort vom Caller",tracking=True)
lead_used_in_crm = fields.Boolean(string="In CRM verwendet",tracking=True)
@api.model
def _default_uuid(self):
return str(uuid.uuid4())
@api.model
def _default_create_date(self):
return datetime.now().strftime('%Y-%m-%d %H:%M:%S')
@api.model
def _default_create_user(self):
return self.env.user.name if self.env.user else 'System'
@api.model
def exportcallercsv(self):
for record in self:
record.lead_exported_to_caller = True