first commit

This commit is contained in:
root
2026-03-14 09:42:12 +00:00
commit 0adbd20c2c
10991 changed files with 1646955 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import ModelSQL, fields
from trytond.pool import PoolMeta
from .mixin import MarketingAutomationMixin
class Party(MarketingAutomationMixin, metaclass=PoolMeta):
__name__ = 'party.party'
marketing_scenario_unsubscribed = fields.Many2Many(
'party.party-unsubscribed-marketing.automation.scenario',
'party', 'scenario', "Marketing Automation Scenario Unsubscribed")
def get_marketing_party(self, name):
return self.id
@classmethod
def search_marketing_party(cls, name, clause):
_, operator, operand, *extra = clause[:3]
nested = clause[0][len(name):]
if not nested:
if operator.endswith('where'):
query = cls.search(operand, order=[], query=True)
if operator.startswith('not'):
return [('id', 'not in', query)]
else:
return [('id', 'in', query)]
elif isinstance(operand, str):
nested = 'rec_name'
else:
nested = 'id'
else:
nested = nested[1:]
return [(nested, operator, operand, *extra)]
class PartyUnsubscribedScenario(ModelSQL):
__name__ = 'party.party-unsubscribed-marketing.automation.scenario'
party = fields.Many2One(
'party.party', "Party", required=True, ondelete='CASCADE')
scenario = fields.Many2One(
'marketing.automation.scenario', "Scenario",
required=True, ondelete='CASCADE')