Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def count_ip(cls):
cursor = Transaction().connection.cursor()
table = cls.__table__()
_, ip_network = cls.ipaddress()
cursor.execute(*table.select(Count(Literal('*')),
where=(table.ip_network == str(ip_network))
& (table.create_date >= cls.delay())))
return cursor.fetchone()[0]
del _login_size
class UserAction(ModelSQL):
'User - Action'
__name__ = 'res.user-ir.action'
user = fields.Many2One('res.user', 'User', ondelete='CASCADE', select=True,
required=True)
action = fields.Many2One('ir.action', 'Action', ondelete='CASCADE',
select=True, required=True)
@staticmethod
def _convert_values(values):
pool = Pool()
Action = pool.get('ir.action')
values = values.copy()
if values.get('action'):
values['action'] = Action.get_action_id(values['action'])
return values
@classmethod
def create(cls, vlist):
vlist = [cls._convert_values(values) for values in vlist]
class ModelField(ModelSQL, ModelView):
"Model field"
__name__ = 'ir.model.field'
name = fields.Char('Name', required=True,
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'])
__name__ = 'project.iteration.backlog'
iteration = fields.Many2One(
'project.iteration', 'Iteration', required=True, select=True
)
task = fields.Many2One(
'project.work', 'Task', required=True, select=True,
domain=[('type', '=', 'task')]
)
progress_state = fields.Selection(
PROGRESS_STATES, 'Progress State', select=True
)
owner = fields.Many2One(
'nereid.user', 'Task Owner', select=True
)
assigned_to = fields.Many2One(
'nereid.user', 'Assigned To', select=True
)
project = fields.Many2One(
'project.work', 'Project', select=True,
domain=[('type', '=', 'project')]
)
"""
from trytond.model import fields
from trytond.pool import PoolMeta
from nereid import request
__all__ = ['Activity']
__metaclass__ = PoolMeta
class Activity:
'''
Nereid user activity
'''
__name__ = "nereid.activity"
project = fields.Many2One(
'project.work', 'Project', domain=[('type', '=', 'project')]
)
@classmethod
def get_activity_stream_domain(cls):
'''
Returns the domain to get activity stream of project where current user
is participant
'''
return [
'OR', [
('project.members.user', '=', request.nereid_user.id),
], [
('project.participants', '=', request.nereid_user.id)
], [
('actor', '=', request.nereid_user.id)
super(Lang, cls).write(langs, values, *args)
# Restart the cache for get_preferences
Pool().get('res.user')._get_preferences_cache.clear()
class SequenceType(metaclass=PoolMeta):
__name__ = 'ir.sequence.type'
groups = fields.Many2Many('ir.sequence.type-res.group', 'sequence_type',
'group', 'User Groups',
help='Groups allowed to edit the sequences of this type.')
class SequenceTypeGroup(ModelSQL):
'Sequence Type - Group'
__name__ = 'ir.sequence.type-res.group'
sequence_type = fields.Many2One('ir.sequence.type', 'Sequence Type',
ondelete='CASCADE', select=True, required=True)
group = fields.Many2One('res.group', 'User Groups',
ondelete='CASCADE', select=True, required=True)
@classmethod
def delete(cls, records):
Rule = Pool().get('ir.rule')
super(SequenceTypeGroup, cls).delete(records)
# Restart the cache on the domain_get method of ir.rule
Rule._domain_get_cache.clear()
@classmethod
def create(cls, vlist):
Rule = Pool().get('ir.rule')
res = super(SequenceTypeGroup, cls).create(vlist)
# Restart the cache on the domain_get method of ir.rule
if request.method == 'POST' and request.is_xhr:
self.delete([self])
return jsonify({
'success': True,
})
flash("Could not delete tag! Try again.")
return redirect(request.referrer)
class TaskTags(ModelSQL):
'Task Tags'
__name__ = 'project.work-project.work.tag'
task = fields.Many2One(
'project.work', 'Project',
ondelete='CASCADE', select=1, required=True,
domain=[('type', '=', 'task')]
)
tag = fields.Many2One(
'project.work.tag', 'Tag', select=1, required=True, ondelete='CASCADE',
)
@classmethod
def __register__(cls, module_name):
'''
Register class and update table name to new.
'''
cursor = Transaction().cursor
TableHandler = backend.get('TableHandler')
"Product"
__name__ = "product.product"
asin = fields.Function(fields.Many2One(
'product.product.code', 'ASIN'
), 'get_codes')
ean = fields.Function(fields.Many2One(
'product.product.code', 'EAN'
), 'get_codes')
upc = fields.Function(fields.Many2One(
'product.product.code', 'UPC'
), 'get_codes')
isbn = fields.Function(fields.Many2One(
'product.product.code', 'ISBN'
), 'get_codes')
gtin = fields.Function(fields.Many2One(
'product.product.code', 'GTIN'
), 'get_codes')
@classmethod
def get_codes(cls, products, names):
ProductCode = Pool().get('product.product.code')
res = {}
for name in names:
res[name] = {}
for product in products:
code = ProductCode.search([
('product', '=', product.id),
('code_type', '=', name)
])
res[name][product.id] = code and code[0].id or None
Pool().get('res.user')._get_preferences_cache.clear()
class SequenceType(metaclass=PoolMeta):
__name__ = 'ir.sequence.type'
groups = fields.Many2Many('ir.sequence.type-res.group', 'sequence_type',
'group', 'User Groups',
help='Groups allowed to edit the sequences of this type.')
class SequenceTypeGroup(ModelSQL):
'Sequence Type - Group'
__name__ = 'ir.sequence.type-res.group'
sequence_type = fields.Many2One('ir.sequence.type', 'Sequence Type',
ondelete='CASCADE', select=True, required=True)
group = fields.Many2One('res.group', 'User Groups',
ondelete='CASCADE', select=True, required=True)
@classmethod
def delete(cls, records):
Rule = Pool().get('ir.rule')
super(SequenceTypeGroup, cls).delete(records)
# Restart the cache on the domain_get method of ir.rule
Rule._domain_get_cache.clear()
@classmethod
def create(cls, vlist):
Rule = Pool().get('ir.rule')
res = super(SequenceTypeGroup, cls).create(vlist)
# Restart the cache on the domain_get method of ir.rule
Rule._domain_get_cache.clear()
return res
}),
getter='get_password', setter='set_password')
password_reset = fields.Char(
"Reset Password",
states={
'invisible': not _has_password,
})
password_reset_expire = fields.Timestamp(
"Reset Password Expire",
states={
'required': Bool(Eval('password_reset')),
'invisible': not _has_password,
},
depends=['password_reset'])
signature = fields.Text('Signature')
menu = fields.Many2One('ir.action', 'Menu Action',
domain=[('usage', '=', 'menu')], required=True)
pyson_menu = fields.Function(fields.Char('PySON Menu'), 'get_pyson_menu')
actions = fields.Many2Many('res.user-ir.action', 'user', 'action',
'Actions', help='Actions that will be run at login.')
groups = fields.Many2Many('res.user-res.group',
'user', 'group', 'Groups')
applications = fields.One2Many(
'res.user.application', 'user', "Applications")
language = fields.Many2One('ir.lang', 'Language',
domain=['OR',
('translatable', '=', True),
])
language_direction = fields.Function(fields.Char('Language Direction'),
'get_language_direction')
email = fields.Char('Email')
status_bar = fields.Function(fields.Char('Status Bar'), 'get_status_bar')
@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):
return False
@classmethod