You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

114 lines
3.7 KiB

# Copyright 2019 Myceliandre - Nicolas JEUDY
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class PersonalDataCategory(models.Model):
_name = "privacy.subject.category"
_description = "Subjects category"
name = fields.Char("Name", index=True, required=True, translate=True)
class PersonalDataLegal(models.Model):
_name = "privacy.legal"
_description = "Legal"
name = fields.Char("Name", index=True, required=True, translate=True)
class ComputingSystem(models.Model):
_name = "privacy.computing_system"
_description = "Computing System"
name = fields.Char("Name", index=True, required=True, translate=True)
class PrivacyActivity(models.Model):
_inherit = "privacy.activity"
def _default_company(self):
return self.env["res.company"]._company_default_get("privacy.activity")
@api.multi
def _compute_has_sensitive(self):
for record in self:
record.has_sensitive = "sensitive" in record.personal_data_ids.mapped(
"type"
)
value = fields.Boolean(compute="_get_value")
personal_data_ids = fields.Many2many("privacy.personal.data")
subjects_categ_ids = fields.Many2many("privacy.subject.category")
has_sensitive = fields.Boolean(compute="_compute_has_sensitive")
legal_ids = fields.Many2many("privacy.legal")
controller_ids = fields.Many2many(
"res.partner",
"privacy_activity_res_partner_controler_ids",
string="Controllers",
)
define_objective = fields.Boolean(
"Define objective",
help="Add detailed objectif from a custom list.",
)
objective_ids = fields.Many2many("privacy.objective", string="Details")
company_id = fields.Many2one(
"res.company", "Company", index=True, default=_default_company
)
define_medium = fields.Boolean("Define Medium")
recipient_ids = fields.Many2many("res.partner", string="Recipients")
contract_duration = fields.Boolean("Contract Duration")
erase_type = fields.Selection(
[("legal", "Legal"), ("internal", "Internal")], string="Erase Type"
)
hr_department_ids = fields.Many2many("hr.department", string="Hr Department")
legal_erase = fields.Integer("Legal Erase (month)")
keep_for_life = fields.Integer("Keep for life")
legal_erase_year = fields.Float("Nb Year")
medium_ids = fields.One2many(
"privacy.storage_medium", "privacy_activity_id", string="Support and storage"
)
person_right = fields.Html("Right to the person")
priority = fields.Selection(
[
("0", "Low"),
("1", "Normal"),
("2", "High"),
("3", "Very High"),
],
string="priority",
)
ref = fields.Char("Reference")
risk_value = fields.Selection(
[
("yes", "Yes"),
("no", "No"),
("recommended", "Recommended"),
("not_retained", "Not Retained"),
],
string="Risk Value",
)
class PrivacyObjective(models.Model):
_name = "privacy.objective"
_description = "Objective database"
name = fields.Char("Name", index=True, required=True, translate=True)
description = fields.Html("Description")
active = fields.Boolean(
default=True,
index=True,
)
class StorageMedium(models.Model):
_name = "privacy.storage_medium"
_description = "Storage Medium"
name = fields.Char("Name", index=True, required=True, translate=True)
computing_system_id = fields.Many2one(
"privacy.computing_system", string="Computing System"
)
privacy_activity_id = fields.Many2one("privacy.activity", string="Privacy Activity")