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