Raise NotImplementedError in AuditableMixin if the model does not have the properties portfolio_id or application_id
This commit is contained in:
parent
5e2f00b1c2
commit
9f66bbafe5
@ -52,6 +52,10 @@ class Application(
|
|||||||
def displayname(self):
|
def displayname(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def application_id(self):
|
||||||
|
return self.id
|
||||||
|
|
||||||
def __repr__(self): # pragma: no cover
|
def __repr__(self): # pragma: no cover
|
||||||
return "<Application(name='{}', description='{}', portfolio='{}', id='{}')>".format(
|
return "<Application(name='{}', description='{}', portfolio='{}', id='{}')>".format(
|
||||||
self.name, self.description, self.portfolio.name, self.id
|
self.name, self.description, self.portfolio.name, self.id
|
||||||
|
@ -90,11 +90,11 @@ class AuditableMixin(object):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def portfolio_id(self):
|
def portfolio_id(self):
|
||||||
return None
|
raise NotImplementedError()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def application_id(self):
|
def application_id(self):
|
||||||
return None
|
raise NotImplementedError()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def displayname(self):
|
def displayname(self):
|
||||||
|
@ -68,9 +68,14 @@ class Portfolio(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
|||||||
def all_environments(self):
|
def all_environments(self):
|
||||||
return list(chain.from_iterable(p.environments for p in self.applications))
|
return list(chain.from_iterable(p.environments for p in self.applications))
|
||||||
|
|
||||||
def auditable_portfolio_id(self):
|
@property
|
||||||
|
def portfolio_id(self):
|
||||||
return self.id
|
return self.id
|
||||||
|
|
||||||
|
@property
|
||||||
|
def application_id(self):
|
||||||
|
return None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<Portfolio(name='{}', user_count='{}', id='{}')>".format(
|
return "<Portfolio(name='{}', user_count='{}', id='{}')>".format(
|
||||||
self.name, self.user_count, self.id
|
self.name, self.user_count, self.id
|
||||||
|
@ -25,3 +25,7 @@ class PortfolioInvitation(Base, TimestampsMixin, InvitesMixin, AuditableMixin):
|
|||||||
@property
|
@property
|
||||||
def portfolio_id(self):
|
def portfolio_id(self):
|
||||||
return self.role.portfolio_id
|
return self.role.portfolio_id
|
||||||
|
|
||||||
|
@property
|
||||||
|
def application_id(self):
|
||||||
|
return None
|
||||||
|
@ -164,6 +164,10 @@ class PortfolioRole(
|
|||||||
def full_name(self):
|
def full_name(self):
|
||||||
return self.user.full_name
|
return self.user.full_name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def application_id(self):
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
Index(
|
Index(
|
||||||
"portfolio_role_user_portfolio",
|
"portfolio_role_user_portfolio",
|
||||||
|
@ -96,6 +96,14 @@ class User(
|
|||||||
def displayname(self):
|
def displayname(self):
|
||||||
return self.full_name
|
return self.full_name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def portfolio_id(self):
|
||||||
|
return None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def application_id(self):
|
||||||
|
return None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<User(name='{}', dod_id='{}', email='{}', has_portfolios='{}', id='{}')>".format(
|
return "<User(name='{}', dod_id='{}', email='{}', has_portfolios='{}', id='{}')>".format(
|
||||||
self.full_name, self.dod_id, self.email, self.has_portfolios, self.id
|
self.full_name, self.dod_id, self.email, self.has_portfolios, self.id
|
||||||
|
Loading…
x
Reference in New Issue
Block a user