Revision 9efd0075 snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
1368 | 1368 |
return self.APPLICATION_STATE_DISPLAY.get(self.state, _('Unknown')) |
1369 | 1369 |
|
1370 | 1370 |
@property |
1371 |
def grants(self): |
|
1372 |
return self.projectresourcegrant_set.values('member_capacity', |
|
1373 |
'resource__name') |
|
1371 |
def resource_set(self): |
|
1372 |
return self.projectresourcegrant_set.order_by('resource__name') |
|
1374 | 1373 |
|
1375 | 1374 |
@property |
1376 | 1375 |
def resource_policies(self): |
... | ... | |
1496 | 1495 |
def display_member_capacity(self): |
1497 | 1496 |
return units.show(self.member_capacity, self.resource.unit) |
1498 | 1497 |
|
1498 |
def display_project_capacity(self): |
|
1499 |
return units.show(self.project_capacity, self.resource.unit) |
|
1500 |
|
|
1501 |
def project_diffs(self): |
|
1502 |
project = self.project_application.chain |
|
1503 |
try: |
|
1504 |
project_resource = project.resource_set.get(resource=self.resource) |
|
1505 |
except ProjectResourceQuota.DoesNotExist: |
|
1506 |
return [self.project_capacity, self.member_capacity] |
|
1507 |
|
|
1508 |
project_diff = \ |
|
1509 |
self.project_capacity - project_resource.project_capacity |
|
1510 |
member_diff = self.member_capacity - project_resource.member_capacity |
|
1511 |
return [project_diff, member_diff] |
|
1512 |
|
|
1513 |
def display_project_diff(self): |
|
1514 |
proj, member = self.project_diffs() |
|
1515 |
proj_abs, member_abs = abs(proj), abs(member) |
|
1516 |
unit = self.resource.unit |
|
1517 |
|
|
1518 |
def disp(v): |
|
1519 |
sign = u'+' if v >= 0 else u'-' |
|
1520 |
return sign + unicode(units.show(v, unit)) |
|
1521 |
return map(disp, [proj_abs, member_abs]) |
|
1522 |
|
|
1499 | 1523 |
def __str__(self): |
1500 | 1524 |
return 'Max %s per user: %s' % (self.resource.pluralized_display_name, |
1501 | 1525 |
self.display_member_capacity()) |
... | ... | |
1747 | 1771 |
def set_deleted(self, actor=None, reason=None): |
1748 | 1772 |
self.set_state(self.DELETED, actor=actor, reason=reason) |
1749 | 1773 |
|
1750 |
### Logical checks |
|
1774 |
def can_modify(self): |
|
1775 |
return self.state not in [self.UNINITIALIZED, self.DELETED] |
|
1751 | 1776 |
|
1777 |
### Logical checks |
|
1752 | 1778 |
@property |
1753 | 1779 |
def is_alive(self): |
1754 | 1780 |
return self.state in [self.NORMAL, self.SUSPENDED] |
... | ... | |
1792 | 1818 |
policy = self.member_leave_policy |
1793 | 1819 |
return presentation.PROJECT_MEMBER_LEAVE_POLICIES.get(policy) |
1794 | 1820 |
|
1821 |
@property |
|
1822 |
def resource_set(self): |
|
1823 |
return self.projectresourcequota_set.order_by('resource__name') |
|
1824 |
|
|
1795 | 1825 |
|
1796 | 1826 |
def create_project(**kwargs): |
1797 | 1827 |
if "uuid" not in kwargs: |
... | ... | |
1819 | 1849 |
class Meta: |
1820 | 1850 |
unique_together = ("resource", "project") |
1821 | 1851 |
|
1852 |
def display_member_capacity(self): |
|
1853 |
return units.show(self.member_capacity, self.resource.unit) |
|
1854 |
|
|
1855 |
def display_project_capacity(self): |
|
1856 |
return units.show(self.project_capacity, self.resource.unit) |
|
1857 |
|
|
1822 | 1858 |
|
1823 | 1859 |
class ProjectLogManager(models.Manager): |
1824 | 1860 |
def last_deactivations(self, projects): |
Also available in: Unified diff