You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
939 B
Python
37 lines
939 B
Python
from members.models import Freizeit
|
|
from contrib.rules import memberize_user
|
|
from rules import predicate
|
|
from members.rules import _is_leader
|
|
|
|
|
|
@predicate
|
|
@memberize_user
|
|
def is_creator(self, statement):
|
|
assert statement is not None
|
|
return statement.created_by == self
|
|
|
|
|
|
@predicate
|
|
@memberize_user
|
|
def not_submitted(self, statement):
|
|
assert statement is not None
|
|
if isinstance(statement, Freizeit):
|
|
if hasattr(statement, 'statement'):
|
|
return not statement.statement.submitted
|
|
else:
|
|
return True
|
|
return not statement.submitted
|
|
|
|
|
|
@predicate
|
|
@memberize_user
|
|
def leads_excursion(self, statement):
|
|
assert statement is not None
|
|
if isinstance(statement, Freizeit):
|
|
return _is_leader(self, statement)
|
|
if not hasattr(statement, 'excursion'):
|
|
return False
|
|
if statement.excursion is None:
|
|
return False
|
|
return _is_leader(self, statement.excursion)
|