diff --git a/app/access/forms/team.py b/app/access/forms/team.py new file mode 100644 index 00000000..d0d63f69 --- /dev/null +++ b/app/access/forms/team.py @@ -0,0 +1,80 @@ +from django import forms +from django.contrib.auth.models import Permission +from django.db.models import Q +from django.forms import inlineformset_factory + +from app import settings + +from .team_users import TeamUsersForm, TeamUsers +from access.models import Team + + +TeamUserFormSet = inlineformset_factory( + model=TeamUsers, + parent_model= Team, + extra = 1, + fields=[ + 'user', + 'manager' + ] +) + +class TeamForm(forms.ModelForm): + + class Meta: + model = Team + fields = [ + 'name', + 'permissions', + ] + + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.fields['created'] = forms.DateTimeField( + label="Created", + input_formats=settings.DATETIME_FORMAT, + initial=kwargs['instance'].created, + disabled=True, + required=False, + ) + + self.fields['modified'] = forms.DateTimeField( + label="Modified", + input_formats=settings.DATETIME_FORMAT, + initial=kwargs['instance'].modified, + disabled=True, + required=False, + ) + + self.fields['permissions'].widget.attrs = {'style': "height: 200px;"} + + apps = [ + 'access', + 'config_management', + 'core', + 'itam', + 'settings', + ] + + exclude_models = [ + 'appsettings', + 'organization' + 'settings', + 'usersettings', + ] + + exclude_permissions = [ + 'add_organization', + 'change_organization', + 'delete_organization', + ] + + self.fields['permissions'].queryset = Permission.objects.filter( + content_type__app_label__in=apps, + ).exclude( + content_type__model__in=exclude_models + ).exclude( + codename__in = exclude_permissions + ) diff --git a/app/access/templates/access/team.html.j2 b/app/access/templates/access/team.html.j2 index d5d7a5b4..b17f3a79 100644 --- a/app/access/templates/access/team.html.j2 +++ b/app/access/templates/access/team.html.j2 @@ -5,23 +5,9 @@ {% block content %}
{% csrf_token %} -
- -
-
-
-
-
- -
-
-
+ + {{ form.as_div }} + {% include 'icons/issue_link.html.j2' with issue=13 %}
diff --git a/app/access/views/team.py b/app/access/views/team.py index 6479482e..b7c93ca8 100644 --- a/app/access/views/team.py +++ b/app/access/views/team.py @@ -4,25 +4,27 @@ from django.utils.decorators import method_decorator from django.urls import reverse from django.views import generic +from access.forms.team import TeamForm +# from access.forms.team_users import TeamUsersForm from access.models import Team, TeamUsers, Organization from access.mixin import * class View(OrganizationPermission, generic.UpdateView): + + context_object_name = "team" + + form_class = TeamForm + model = Team + permission_required = [ 'access.view_team', 'access.change_team', ] - template_name = 'access/team.html.j2' - fields = [ - "name", - 'id', - 'organization', - 'permissions' - ] + template_name = 'access/team.html.j2' def get_context_data(self, **kwargs): @@ -37,7 +39,6 @@ class View(OrganizationPermission, generic.UpdateView): teamusers = TeamUsers.objects.filter(team=self.kwargs['pk']) context['teamusers'] = teamusers - context['permissions'] = Permission.objects.filter() context['model_pk'] = self.kwargs['pk'] context['model_name'] = self.model._meta.verbose_name.replace(' ', '')