repo_group.py
90 lines
| 3.1 KiB
| text/x-python
|
PythonLexer
r5608 | # Copyright (C) 2016-2024 RhodeCode GmbH | |||
Martin Bornhold
|
r556 | # | ||
# This program is free software: you can redistribute it and/or modify | ||||
# it under the terms of the GNU Affero General Public License, version 3 | ||||
# (only), as published by the Free Software Foundation. | ||||
# | ||||
# 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 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 <http://www.gnu.org/licenses/>. | ||||
# | ||||
# This program is dual-licensed. If you wish to learn more about the | ||||
# RhodeCode Enterprise Edition, including its added features, Support services, | ||||
# and proprietary license terms, please see https://rhodecode.com/licenses/ | ||||
import logging | ||||
from rhodecode.translation import lazy_ugettext | ||||
r2921 | from rhodecode.events.base import RhodeCodeIntegrationEvent | |||
Martin Bornhold
|
r556 | |||
Martin Bornhold
|
r565 | |||
Martin Bornhold
|
r566 | log = logging.getLogger(__name__) | ||
Martin Bornhold
|
r556 | |||
r2921 | class RepoGroupEvent(RhodeCodeIntegrationEvent): | |||
Martin Bornhold
|
r556 | """ | ||
Base class for events acting on a repository group. | ||||
r5623 | :param repo_group: a :class:`RepositoryGroup` instance | |||
Martin Bornhold
|
r556 | """ | ||
r5623 | def __init__(self, repo_group, context=None): | |||
super().__init__(context=context) | ||||
Martin Bornhold
|
r556 | self.repo_group = repo_group | ||
r5623 | self.context = self._context | |||
Martin Bornhold
|
r556 | |||
Martin Bornhold
|
r565 | def as_dict(self): | ||
r5095 | data = super().as_dict() | |||
r5623 | data.update( | |||
{ | ||||
"repo_group": { | ||||
"group_id": self.repo_group.group_id, | ||||
"group_name": self.repo_group.group_name, | ||||
"group_parent_id": self.repo_group.group_parent_id, | ||||
"group_description": self.repo_group.group_description, | ||||
"user_id": self.repo_group.user_id, | ||||
"created_by": self.repo_group.user.username, | ||||
"created_on": self.repo_group.created_on, | ||||
"enable_locking": self.repo_group.enable_locking, | ||||
}, | ||||
"context": self.context | ||||
Martin Bornhold
|
r565 | } | ||
r5623 | ) | |||
Martin Bornhold
|
r565 | return data | ||
Martin Bornhold
|
r556 | |||
class RepoGroupCreateEvent(RepoGroupEvent): | ||||
""" | ||||
An instance of this class is emitted as an :term:`event` whenever a | ||||
repository group is created. | ||||
""" | ||||
r5623 | ||||
name = "repo-group-create" | ||||
display_name = lazy_ugettext("repository group created") | ||||
description = lazy_ugettext("Event triggered after a repository group was created") | ||||
Martin Bornhold
|
r556 | |||
class RepoGroupDeleteEvent(RepoGroupEvent): | ||||
""" | ||||
An instance of this class is emitted as an :term:`event` whenever a | ||||
repository group is deleted. | ||||
""" | ||||
r5623 | ||||
name = "repo-group-delete" | ||||
display_name = lazy_ugettext("repository group deleted") | ||||
description = lazy_ugettext("Event triggered after a repository group was deleted") | ||||
Martin Bornhold
|
r556 | |||
class RepoGroupUpdateEvent(RepoGroupEvent): | ||||
""" | ||||
An instance of this class is emitted as an :term:`event` whenever a | ||||
repository group is updated. | ||||
""" | ||||
r5623 | ||||
name = "repo-group-update" | ||||
display_name = lazy_ugettext("repository group update") | ||||
description = lazy_ugettext("Event triggered after a repository group was updated") | ||||