forked from enviPath/enviPy
[Bug] Fixes for Group handling, Load all objects only if necessary (#113)
Fixes #109 Fixes #110 Fixes #111 Fixes #112 Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Reviewed-on: enviPath/enviPy#113
This commit is contained in:
@ -265,7 +265,7 @@ class GroupManager(object):
|
|||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def update_members(caller: User, group: Group, member: Union[User, Group], add_or_remove: str):
|
def update_members(caller: User, group: Group, member: Union[User, Group], add_or_remove: str):
|
||||||
|
|
||||||
if caller != group.owner:
|
if caller != group.owner and not caller.is_superuser:
|
||||||
raise ValueError('Only the group Owner is allowed to add members!')
|
raise ValueError('Only the group Owner is allowed to add members!')
|
||||||
|
|
||||||
if isinstance(member, Group):
|
if isinstance(member, Group):
|
||||||
|
|||||||
@ -181,7 +181,7 @@ class Group(TimeStampedModel):
|
|||||||
public = models.BooleanField(verbose_name='Public Group', default=False)
|
public = models.BooleanField(verbose_name='Public Group', default=False)
|
||||||
description = models.TextField(blank=False, null=False, verbose_name='Descriptions', default='no description')
|
description = models.TextField(blank=False, null=False, verbose_name='Descriptions', default='no description')
|
||||||
user_member = models.ManyToManyField("User", verbose_name='User members', related_name='users_in_group')
|
user_member = models.ManyToManyField("User", verbose_name='User members', related_name='users_in_group')
|
||||||
group_member = models.ManyToManyField("Group", verbose_name='Group member', related_name='groups_in_group')
|
group_member = models.ManyToManyField("Group", verbose_name='Group member', related_name='groups_in_group', blank=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.name} (pk={self.pk})"
|
return f"{self.name} (pk={self.pk})"
|
||||||
|
|||||||
@ -258,18 +258,21 @@
|
|||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% if object_type != 'package' %}
|
|
||||||
<div id="load-all-loading" class="spinner-widget">
|
<div id="load-all-loading" class="spinner-widget" style="display: none">
|
||||||
<img id="loading-gif" src="{% static '/images/wait.gif' %}" alt="Loading...">
|
<img id="loading-gif" src="{% static '/images/wait.gif' %}" alt="Loading...">
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
|
|
||||||
$('#object-search').show();
|
$('#object-search').show();
|
||||||
|
|
||||||
{% if object_type != 'package' %}
|
{% if object_type != 'package' and object_type != 'user' and object_type != 'group' %}
|
||||||
|
{% if reviewed_objects|length > 50 or unreviewed_objects|length > 50 %}
|
||||||
|
$('#load-all-loading').show()
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$('#load-all-error').hide();
|
$('#load-all-error').hide();
|
||||||
|
|
||||||
@ -295,6 +298,7 @@
|
|||||||
|
|
||||||
}, 2500);
|
}, 2500);
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
$('#modal-form-delete-submit').on('click', function (e) {
|
$('#modal-form-delete-submit').on('click', function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|||||||
Reference in New Issue
Block a user