Revision 01bdbd17 snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
1432 | 1432 |
except Project.DoesNotExist: |
1433 | 1433 |
return None |
1434 | 1434 |
|
1435 |
def can_cancel(self): |
|
1436 |
return self.state == self.PENDING |
|
1437 |
|
|
1435 | 1438 |
def cancel(self): |
1436 |
if self.state != self.PENDING:
|
|
1439 |
if not self.can_cancel():
|
|
1437 | 1440 |
m = _("cannot cancel: application '%s' in state '%s'") % ( |
1438 | 1441 |
self.id, self.state) |
1439 | 1442 |
raise AssertionError(m) |
... | ... | |
1441 | 1444 |
self.state = self.CANCELLED |
1442 | 1445 |
self.save() |
1443 | 1446 |
|
1447 |
def can_dismiss(self): |
|
1448 |
return self.state == self.DENIED |
|
1449 |
|
|
1444 | 1450 |
def dismiss(self): |
1445 |
if self.state != self.DENIED:
|
|
1451 |
if not self.can_dismiss():
|
|
1446 | 1452 |
m = _("cannot dismiss: application '%s' in state '%s'") % ( |
1447 | 1453 |
self.id, self.state) |
1448 | 1454 |
raise AssertionError(m) |
... | ... | |
1450 | 1456 |
self.state = self.DISMISSED |
1451 | 1457 |
self.save() |
1452 | 1458 |
|
1459 |
def can_deny(self): |
|
1460 |
return self.state == self.PENDING |
|
1461 |
|
|
1453 | 1462 |
def deny(self): |
1454 |
if self.state != self.PENDING:
|
|
1463 |
if not self.can_deny():
|
|
1455 | 1464 |
m = _("cannot deny: application '%s' in state '%s'") % ( |
1456 | 1465 |
self.id, self.state) |
1457 | 1466 |
raise AssertionError(m) |
... | ... | |
1460 | 1469 |
self.response_date = datetime.now() |
1461 | 1470 |
self.save() |
1462 | 1471 |
|
1472 |
def can_approve(self): |
|
1473 |
return self.state == self.PENDING |
|
1474 |
|
|
1463 | 1475 |
def approve(self, approval_user=None): |
1464 | 1476 |
""" |
1465 | 1477 |
If approval_user then during owner membership acceptance |
... | ... | |
1473 | 1485 |
raise AssertionError("NOPE") |
1474 | 1486 |
|
1475 | 1487 |
new_project_name = self.name |
1476 |
if self.state != self.PENDING:
|
|
1488 |
if not self.can_approve():
|
|
1477 | 1489 |
m = _("cannot approve: project '%s' in state '%s'") % ( |
1478 | 1490 |
new_project_name, self.state) |
1479 |
raise PermissionDenied(m) # invalid argument
|
|
1491 |
raise AssertionError(m) # invalid argument
|
|
1480 | 1492 |
|
1481 | 1493 |
now = datetime.now() |
1482 | 1494 |
project = self._get_project_for_update() |
Also available in: Unified diff