Revision db9a498c snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
668 | 668 |
return mark_safe(message + u' '+ msg_extra) |
669 | 669 |
|
670 | 670 |
def owns_project(self, project): |
671 |
return project.user_status(self) == 100
|
|
671 |
return project.owner == self
|
|
672 | 672 |
|
673 | 673 |
def is_project_member(self, project): |
674 | 674 |
return project.user_status(self) in [0,1,2,3] |
... | ... | |
1135 | 1135 |
return self.filter(q) |
1136 | 1136 |
|
1137 | 1137 |
|
1138 |
PROJECT_STATE_DISPLAY = { |
|
1139 |
'Pending': _('Pending review'), |
|
1140 |
'Approved': _('Active'), |
|
1141 |
'Replaced': _('Replaced'), |
|
1142 |
'Unknown': _('Unknown') |
|
1143 |
} |
|
1144 |
|
|
1145 |
USER_STATUS_DISPLAY = { |
|
1146 |
100: _('Owner'), |
|
1147 |
0: _('Join requested'), |
|
1148 |
1: _('Pending'), |
|
1149 |
2: _('Accepted member'), |
|
1150 |
3: _('Removing'), |
|
1151 |
4: _('Removed'), |
|
1152 |
-1: _('Not a member'), |
|
1153 |
} |
|
1154 |
|
|
1138 | 1155 |
class ProjectApplication(models.Model): |
1139 | 1156 |
PENDING, APPROVED, REPLACED, UNKNOWN = 'Pending', 'Approved', 'Replaced', 'Unknown' |
1140 | 1157 |
applicant = models.ForeignKey( |
... | ... | |
1177 | 1194 |
def __unicode__(self): |
1178 | 1195 |
return "%s applied by %s" % (self.name, self.applicant) |
1179 | 1196 |
|
1197 |
def state_display(self): |
|
1198 |
return PROJECT_STATE_DISPLAY.get(self.state, _('Unknown')) |
|
1199 |
|
|
1180 | 1200 |
def add_resource_policy(self, service, resource, uplimit): |
1181 | 1201 |
"""Raises ObjectDoesNotExist, IntegrityError""" |
1182 | 1202 |
q = self.projectresourcegrant_set |
... | ... | |
1193 | 1213 |
4 REMOVED |
1194 | 1214 |
-1 User has no association with the project |
1195 | 1215 |
""" |
1196 |
if user == self.owner: |
|
1197 |
status = 100 |
|
1198 |
else: |
|
1199 |
try: |
|
1200 |
membership = self.project.projectmembership_set.get(person=user) |
|
1201 |
status = membership.state |
|
1202 |
except Project.DoesNotExist: |
|
1203 |
status = -1 |
|
1204 |
except ProjectMembership.DoesNotExist: |
|
1205 |
status = -1 |
|
1216 |
try: |
|
1217 |
membership = self.project.projectmembership_set.get(person=user) |
|
1218 |
status = membership.state |
|
1219 |
except Project.DoesNotExist: |
|
1220 |
status = -1 |
|
1221 |
except ProjectMembership.DoesNotExist: |
|
1222 |
status = -1 |
|
1206 | 1223 |
|
1207 | 1224 |
return status |
1208 | 1225 |
|
1226 |
def user_status_display(self, user): |
|
1227 |
return USER_STATUS_DISPLAY.get(self.user_status(user), _('Unknown')) |
|
1228 |
|
|
1209 | 1229 |
def members_count(self): |
1210 | 1230 |
return self.project.approved_memberships.count() |
1211 | 1231 |
|
Also available in: Unified diff