assigned domains

This commit is contained in:
David Kennedy 2024-10-07 15:16:40 -04:00
parent 58002de5e0
commit 15db31b3dc
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
4 changed files with 23 additions and 7 deletions

View file

@ -1,11 +1,11 @@
from django.db import models from django.db import models
from django.forms import ValidationError from django.forms import ValidationError
from registrar.models.user_domain_role import UserDomainRole
from registrar.utility.waffle import flag_is_active_for_user from registrar.utility.waffle import flag_is_active_for_user
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices
from .utility.time_stamped_model import TimeStampedModel from .utility.time_stamped_model import TimeStampedModel
from django.contrib.postgres.fields import ArrayField from django.contrib.postgres.fields import ArrayField
class UserPortfolioPermission(TimeStampedModel): class UserPortfolioPermission(TimeStampedModel):
"""This is a linking table that connects a user with a role on a portfolio.""" """This is a linking table that connects a user with a role on a portfolio."""
@ -67,6 +67,16 @@ class UserPortfolioPermission(TimeStampedModel):
def __str__(self): def __str__(self):
return f"User '{self.user}' on Portfolio '{self.portfolio}' " f"<Roles: {self.roles}>" if self.roles else "" return f"User '{self.user}' on Portfolio '{self.portfolio}' " f"<Roles: {self.roles}>" if self.roles else ""
def get_managed_domains_count(self):
"""Return the count of domains managed by the user for this portfolio."""
# Filter the UserDomainRole model to get domains where the user has a manager role
managed_domains = UserDomainRole.objects.filter(
user=self.user,
role=UserDomainRole.Roles.MANAGER,
domain__domain_info__portfolio=self.portfolio
).count()
return managed_domains
def _get_portfolio_permissions(self): def _get_portfolio_permissions(self):
""" """
Retrieve the permissions for the user's portfolio roles. Retrieve the permissions for the user's portfolio roles.

View file

@ -0,0 +1,6 @@
<h4 class="margin-bottom-0 text-primary">Assigned domains</h4>
{% if domain_count > 0 %}
<p class="margin-top-0">{{domain_count}}</p>
{% else %}
<p class="margin-top-0">This member does not manage any domains.{% if editable %} To assign this member a domain, click "Manage".{% endif %}</p>
{% endif %}

View file

@ -26,6 +26,8 @@
{% endif %} {% endif %}
{% if permissions %} {% if permissions %}
{% include "includes/member_permissions.html" with permissions=value %} {% include "includes/member_permissions.html" with permissions=value %}
{% elif domain_mgmt %}
{% include "includes/member_domain_mgmt.html" with domain_count=value %}
{% elif address %} {% elif address %}
{% include "includes/organization_address.html" with organization=value %} {% include "includes/organization_address.html" with organization=value %}
{% elif contact %} {% elif contact %}

View file

@ -68,12 +68,10 @@
{% include "includes/summary_item.html" with title='Member access and permissions' permissions='true' value=portfolio_invitation edit_link=edit_url editable=has_edit_members_portfolio_permission %} {% include "includes/summary_item.html" with title='Member access and permissions' permissions='true' value=portfolio_invitation edit_link=edit_url editable=has_edit_members_portfolio_permission %}
{% endif %} {% endif %}
{% if has_any_domains_portfolio_permission %} {% if portfolio_permission %}
{% if has_edit_members_portfolio_permission %} {% include "includes/summary_item.html" with title='Domain management' domain_mgmt='true' value=portfolio_permission.get_managed_domains_count edit_link='#' editable=has_edit_members_portfolio_permission manage_button='true' %}
{% include "includes/summary_item.html" with title='Domain management' value="Asdasd" edit_link='#' editable='true' manage_button='true' %} {% else %}
{% else %} {% include "includes/summary_item.html" with title='Domain management' domain_mgmt='true' value=0 edit_link='#' editable=has_edit_members_portfolio_permission manage_button='true' %}
{% include "includes/summary_item.html" with title='Domain management' value="Asdasd" edit_link='#' editable='true' view_button='true' %}
{% endif %}
{% endif %} {% endif %}
</div> </div>