From 70abc1c563f74d2c855e1380bebcc5f9268eae30 Mon Sep 17 00:00:00 2001 From: MuK IT GmbH Date: Tue, 12 Mar 2019 14:34:32 +0000 Subject: [PATCH] publish muk_utils - 11.0 --- muk_utils/__manifest__.py | 2 +- muk_utils/models/res_groups.py | 4 +- muk_utils/tools/helper.py | 107 ++++++++++++++++----------------- 3 files changed, 56 insertions(+), 57 deletions(-) diff --git a/muk_utils/__manifest__.py b/muk_utils/__manifest__.py index bade4e6..b9ae057 100644 --- a/muk_utils/__manifest__.py +++ b/muk_utils/__manifest__.py @@ -20,7 +20,7 @@ { "name": "MuK Utils", "summary": """Utility Features""", - "version": '11.0.1.0.15', + "version": '11.0.1.0.16', "category": 'Extra Tools', "license": "AGPL-3", "website": "https://www.mukit.at", diff --git a/muk_utils/models/res_groups.py b/muk_utils/models/res_groups.py index e539a94..32298ac 100644 --- a/muk_utils/models/res_groups.py +++ b/muk_utils/models/res_groups.py @@ -62,7 +62,7 @@ class ResGroups(models.Model): model = self.env[model_name].sudo() if not model._abstract: model_recs[model_name] = model.search([['groups', 'in', self.mapped('id')]]) - result = super(ResGroups, self).unlink() + result = super(ResGroups, self).unlink(vals) for tuple in model_recs.items(): tuple[1].trigger_computation(['users']) - return result + return result \ No newline at end of file diff --git a/muk_utils/tools/helper.py b/muk_utils/tools/helper.py index 1810483..c35663f 100644 --- a/muk_utils/tools/helper.py +++ b/muk_utils/tools/helper.py @@ -1,55 +1,54 @@ -################################################################################### -# -# Copyright (C) 2018 MuK IT GmbH -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -################################################################################### - -import re -import sys -import time -import logging -import unicodedata - -_logger = logging.getLogger(__name__) - -#---------------------------------------------------------- -# Functions -#---------------------------------------------------------- - -def slugify(value): - value = str(unicodedata.normalize('NFKD', value)) - if sys.version_info < (3,): - value = str(value.encode('ascii', 'ignore')) - value = str(re.sub('[^\w\s-]', '', value).strip().lower()) - value = str(re.sub('[-\s]+', '-', value)) - return value - -#---------------------------------------------------------- -# Decorators -#---------------------------------------------------------- - -def timeout(func, delay=30): - def wrapper(*args, **kwargs): - if args[0]._name in wrapper.timeouts: - timeout = wrapper.timeouts[args[0]._name] - if time.time() > timeout + delay: - wrapper.timeouts[args[0]._name] = time.time() - return func(*args, **kwargs) - else: - wrapper.timeouts[args[0]._name] = time.time() - return func(*args, **kwargs) - wrapper.timeouts = {} +################################################################################### +# +# Copyright (C) 2018 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +import re +import sys +import time +import logging +import unicodedata + +_logger = logging.getLogger(__name__) + +#---------------------------------------------------------- +# Functions +#---------------------------------------------------------- + +def slugify(value): + value = str(unicodedata.normalize('NFKD', value)) + value = str(value.encode('ascii', 'ignore')) + value = str(re.sub('[^\w\s-]', '', value).strip().lower()) + value = str(re.sub('[-\s]+', '-', value)) + return value + +#---------------------------------------------------------- +# Decorators +#---------------------------------------------------------- + +def timeout(func, delay=30): + def wrapper(*args, **kwargs): + if args[0]._name in wrapper.timeouts: + timeout = wrapper.timeouts[args[0]._name] + if time.time() > timeout + delay: + wrapper.timeouts[args[0]._name] = time.time() + return func(*args, **kwargs) + else: + wrapper.timeouts[args[0]._name] = time.time() + return func(*args, **kwargs) + wrapper.timeouts = {} return wrapper \ No newline at end of file