Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
pool = Pool()
super(ActionActWindowView, cls).write(windows, values, *args)
pool.get('ir.action.keyword')._get_keyword_cache.clear()
@classmethod
def delete(cls, windows):
pool = Pool()
super(ActionActWindowView, cls).delete(windows)
pool.get('ir.action.keyword')._get_keyword_cache.clear()
class ActionActWindowDomain(
sequence_ordered(), DeactivableMixin, ModelSQL, ModelView):
"Action act window domain"
__name__ = 'ir.action.act_window.domain'
name = fields.Char('Name', translate=True)
domain = fields.Char('Domain')
count = fields.Boolean('Count')
act_window = fields.Many2One('ir.action.act_window', 'Action',
select=True, required=True, ondelete='CASCADE')
@classmethod
def __register__(cls, module_name):
super().__register__(module_name)
table = cls.__table_handler__(module_name)
# Migration from 5.0: remove required on sequence
table.not_null_action('sequence', 'remove')
@classmethod
def default_count(cls):
)
from trytond.model import ModelView, ModelSQL, fields
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
from trytond import backend
__all__ = ['Tag', 'TaskTags']
__metaclass__ = PoolMeta
class Tag(ModelSQL, ModelView):
"Tags"
__name__ = "project.work.tag"
name = fields.Char('Name', required=True)
color = fields.Char('Color Code', required=True)
project = fields.Many2One(
'project.work', 'Project', required=True,
domain=[('type', '=', 'project')], ondelete='CASCADE',
)
@classmethod
def __setup__(cls):
super(Tag, cls).__setup__()
cls._sql_constraints += [
('unique_name_project', 'UNIQUE(name, project)', 'Duplicate Tag')
]
@staticmethod
def default_color():
'''
Default for color
help="RFC 4646 tag: http://tools.ietf.org/html/rfc4646")
translatable = fields.Boolean('Translatable', readonly=True)
parent = fields.Char("Parent Code", help="Code of the exceptional parent")
direction = fields.Selection([
('ltr', 'Left-to-right'),
('rtl', 'Right-to-left'),
], 'Direction', required=True)
# date
date = fields.Char('Date', required=True)
am = fields.Char("AM")
pm = fields.Char("PM")
# number
grouping = fields.Char('Grouping', required=True)
decimal_point = fields.Char('Decimal Separator', required=True)
thousands_sep = fields.Char('Thousands Separator')
# monetary formatting
mon_grouping = fields.Char('Grouping', required=True)
mon_decimal_point = fields.Char('Decimal Separator', required=True)
mon_thousands_sep = fields.Char('Thousands Separator')
p_sign_posn = fields.Integer('Positive Sign Position', required=True)
n_sign_posn = fields.Integer('Negative Sign Position', required=True)
positive_sign = fields.Char('Positive Sign')
negative_sign = fields.Char('Negative Sign')
p_cs_precedes = fields.Boolean('Positive Currency Symbol Precedes')
n_cs_precedes = fields.Boolean('Negative Currency Symbol Precedes')
p_sep_by_space = fields.Boolean('Positive Separate by Space')
n_sep_by_space = fields.Boolean('Negative Separate by Space')
"Language"
__name__ = "ir.lang"
name = fields.Char('Name', required=True, translate=True)
code = fields.Char('Code', required=True,
help="RFC 4646 tag: http://tools.ietf.org/html/rfc4646")
translatable = fields.Boolean('Translatable', readonly=True)
parent = fields.Char("Parent Code", help="Code of the exceptional parent")
direction = fields.Selection([
('ltr', 'Left-to-right'),
('rtl', 'Right-to-left'),
], 'Direction', required=True)
# date
date = fields.Char('Date', required=True)
am = fields.Char("AM")
pm = fields.Char("PM")
# number
grouping = fields.Char('Grouping', required=True)
decimal_point = fields.Char('Decimal Separator', required=True)
thousands_sep = fields.Char('Thousands Separator')
# monetary formatting
mon_grouping = fields.Char('Grouping', required=True)
mon_decimal_point = fields.Char('Decimal Separator', required=True)
mon_thousands_sep = fields.Char('Thousands Separator')
p_sign_posn = fields.Integer('Positive Sign Position', required=True)
n_sign_posn = fields.Integer('Negative Sign Position', required=True)
positive_sign = fields.Char('Positive Sign')
negative_sign = fields.Char('Negative Sign')
p_cs_precedes = fields.Boolean('Positive Currency Symbol Precedes')
# 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.cache import Cache
from trytond.config import config
from trytond.model import ModelSQL, ModelSingleton, fields
class Configuration(ModelSingleton, ModelSQL):
'Configuration'
__name__ = 'ir.configuration'
language = fields.Char('language')
hostname = fields.Char("Hostname")
_get_language_cache = Cache('ir_configuration.get_language')
@staticmethod
def default_language():
return config.get('database', 'language')
@classmethod
def get_language(cls):
language = cls._get_language_cache.get(None)
if language is not None:
return language
config = cls(1)
language = config.language
if not language:
language = config.get('database', 'language')
states={
'readonly': Bool(Eval('module')),
},
depends=['module'])
relation = fields.Char('Model Relation',
states={
'readonly': Bool(Eval('module')),
},
depends=['module'])
model = fields.Many2One('ir.model', 'Model', required=True,
select=True, ondelete='CASCADE',
states={
'readonly': Bool(Eval('module')),
},
depends=['module'])
field_description = fields.Char('Field Description', translate=True,
loading='lazy',
states={
'readonly': Bool(Eval('module')),
},
depends=['module'])
ttype = fields.Char('Field Type',
states={
'readonly': Bool(Eval('module')),
},
depends=['module'])
help = fields.Text('Help', translate=True, loading='lazy',
states={
'readonly': Bool(Eval('module')),
},
depends=['module'])
module = fields.Char('Module',
parent = fields.Char("Parent Code", help="Code of the exceptional parent")
direction = fields.Selection([
('ltr', 'Left-to-right'),
('rtl', 'Right-to-left'),
], 'Direction', required=True)
# date
date = fields.Char('Date', required=True)
am = fields.Char("AM")
pm = fields.Char("PM")
# number
grouping = fields.Char('Grouping', required=True)
decimal_point = fields.Char('Decimal Separator', required=True)
thousands_sep = fields.Char('Thousands Separator')
# monetary formatting
mon_grouping = fields.Char('Grouping', required=True)
mon_decimal_point = fields.Char('Decimal Separator', required=True)
mon_thousands_sep = fields.Char('Thousands Separator')
p_sign_posn = fields.Integer('Positive Sign Position', required=True)
n_sign_posn = fields.Integer('Negative Sign Position', required=True)
positive_sign = fields.Char('Positive Sign')
negative_sign = fields.Char('Negative Sign')
p_cs_precedes = fields.Boolean('Positive Currency Symbol Precedes')
n_cs_precedes = fields.Boolean('Negative Currency Symbol Precedes')
p_sep_by_space = fields.Boolean('Positive Separate by Space')
n_sep_by_space = fields.Boolean('Negative Separate by Space')
_lang_cache = Cache('ir.lang')
_code_cache = Cache('ir.lang.code', context=False)
class Translation(ModelSQL, ModelView):
"Translation"
__name__ = "ir.translation"
name = fields.Char('Field Name', required=True)
res_id = fields.Integer('Resource ID', select=True, required=True)
lang = fields.Selection('get_language', string='Language')
type = fields.Selection(TRANSLATION_TYPE, string='Type',
required=True)
src = fields.Text('Source')
value = fields.Text('Translation Value')
module = fields.Char('Module', readonly=True)
fuzzy = fields.Boolean('Fuzzy')
model = fields.Function(fields.Char('Model'), 'get_model',
searcher='search_model')
overriding_module = fields.Char('Overriding Module', readonly=True)
_translation_cache = Cache('ir.translation', size_limit=10240,
context=False)
_get_language_cache = Cache('ir.translation.get_language')
@classmethod
def __register__(cls, module_name):
transaction = Transaction()
cursor = transaction.connection.cursor()
ir_translation = cls.__table__()
table = cls.__table_handler__(module_name)
# Migration from 5.0: remove src_md5
if table.column_exist('src_md5'):
table.drop_constraint('translation_md5_uniq')
table.drop_column('src_md5')
store_prefix = config.get('attachment', 'store_prefix', default=None)
else:
file_id = None
store_prefix = None
class Attachment(ResourceMixin, ModelSQL, ModelView):
"Attachment"
__name__ = 'ir.attachment'
name = fields.Char('Name', required=True)
type = fields.Selection([
('data', 'Data'),
('link', 'Link'),
], 'Type', required=True)
description = fields.Text('Description')
summary = fields.Function(fields.Char('Summary'), 'on_change_with_summary')
link = fields.Char('Link', states={
'invisible': Eval('type') != 'link',
}, depends=['type'])
data = fields.Binary('Data', filename='name',
file_id=file_id, store_prefix=store_prefix,
states={
'invisible': Eval('type') != 'data',
}, depends=['type'])
file_id = fields.Char('File ID', readonly=True)
data_size = fields.Function(fields.Integer('Data size', states={
'invisible': Eval('type') != 'data',
}, depends=['type']), 'get_size')
@classmethod
def __setup__(cls):
super().__setup__()
return res
class RequestHistory(ModelSQL, ModelView):
"Request history"
__name__ = 'res.request.history'
name = fields.Char('Summary', required=True, readonly=True)
request = fields.Many2One('res.request', 'Request', required=True,
ondelete='CASCADE', select=True, readonly=True)
act_from = fields.Many2One('res.user', 'From', required=True,
readonly=True)
act_to = fields.Many2One('res.user', 'To', required=True, readonly=True)
body = fields.Text('Body', readonly=True)
date_sent = fields.DateTime('Date sent', required=True, readonly=True)
state = fields.Selection(_STATES, 'State', required=True, readonly=True)
subject = fields.Char('Subject', required=True, readonly=True)
number_references = fields.Integer('References', readonly=True)
priority = fields.Selection(_PRIORITIES, 'Priority', required=True,
readonly=True)
@classmethod
def __setup__(cls):
super(RequestHistory, cls).__setup__()
cls._order.insert(0, ('date_sent', 'DESC'))
@staticmethod
def default_name():
return 'No Name'
@staticmethod
def default_act_from():
return int(Transaction().user)