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