Revision d1c95ad9 snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
1854 | 1854 |
q = self.model.Q_ACTUALLY_ACCEPTED |
1855 | 1855 |
return self.filter(q) |
1856 | 1856 |
|
1857 |
def initialized(self, projects=None): |
|
1858 |
q = Q(initialized=True) |
|
1859 |
if projects is not None: |
|
1860 |
q &= Q(project__in=projects) |
|
1861 |
return self.filter(q) |
|
1862 |
|
|
1857 | 1863 |
def requested(self): |
1858 | 1864 |
return self.filter(state=ProjectMembership.REQUESTED) |
1859 | 1865 |
|
... | ... | |
1912 | 1918 |
state = models.IntegerField(default=REQUESTED, |
1913 | 1919 |
db_index=True) |
1914 | 1920 |
|
1921 |
initialized = models.BooleanField(default=False) |
|
1915 | 1922 |
objects = ProjectMembershipManager() |
1916 | 1923 |
|
1917 | 1924 |
# Compiled queries |
... | ... | |
1973 | 1980 |
self.state = to_state |
1974 | 1981 |
self.save() |
1975 | 1982 |
|
1983 |
def is_active(self): |
|
1984 |
return (self.project.state == Project.NORMAL and |
|
1985 |
self.state in self.ACTUALLY_ACCEPTED) |
|
1986 |
|
|
1976 | 1987 |
ACTION_CHECKS = { |
1977 | 1988 |
"join": lambda m: m.state not in m.ASSOCIATED_STATES, |
1978 | 1989 |
"accept": lambda m: m.state == m.REQUESTED, |
... | ... | |
2014 | 2025 |
s = self.ACTION_STATES[action] |
2015 | 2026 |
except KeyError: |
2016 | 2027 |
raise ValueError("No such action '%s'" % action) |
2028 |
if action == "accept": |
|
2029 |
self.initialized = True |
|
2017 | 2030 |
return self.set_state(s, actor=actor, reason=reason) |
2018 | 2031 |
|
2019 | 2032 |
|
Also available in: Unified diff