20 __authors__ = [ |
20 __authors__ = [ |
21 '"Sverre Rabbelier" <sverre@rabbelier.nl>', |
21 '"Sverre Rabbelier" <sverre@rabbelier.nl>', |
22 ] |
22 ] |
23 |
23 |
24 |
24 |
|
25 from soc.logic import accounts |
25 from soc.logic import dicts |
26 from soc.logic import dicts |
|
27 from soc.logic.models import host as host_logic |
26 from soc.logic.models import user as user_logic |
28 from soc.logic.models import user as user_logic |
27 from soc.logic.models import sponsor as sponsor_logic |
29 from soc.logic.models import sponsor as sponsor_logic |
28 from soc.views import helper |
30 from soc.views import helper |
29 from soc.views.models import role |
31 from soc.views.models import role |
30 from soc.views.models import sponsor as sponsor_view |
32 from soc.views.models import sponsor as sponsor_view |
32 |
34 |
33 import soc.models.host |
35 import soc.models.host |
34 import soc.logic.models.host |
36 import soc.logic.models.host |
35 import soc.views.helper |
37 import soc.views.helper |
36 import soc.views.models.sponsor |
38 import soc.views.models.sponsor |
|
39 |
|
40 tolist = list |
37 |
41 |
38 |
42 |
39 class CreateForm(helper.forms.BaseForm): |
43 class CreateForm(helper.forms.BaseForm): |
40 """Django form displayed when creating a Host. |
44 """Django form displayed when creating a Host. |
41 """ |
45 """ |
110 |
115 |
111 params = dicts.merge(params, new_params) |
116 params = dicts.merge(params, new_params) |
112 |
117 |
113 super(View, self).__init__(params=params) |
118 super(View, self).__init__(params=params) |
114 |
119 |
|
120 def list(self, request, access_type, |
|
121 page_name=None, params=None, filter=None): |
|
122 """See base.View.list |
|
123 |
|
124 Passes a filter to base.View.list so that only hosts from a sponsor |
|
125 that this user is host for are listed. |
|
126 """ |
|
127 |
|
128 user = user_logic.logic.getForCurrentAccount() |
|
129 |
|
130 # Don't bother looking up everything if there's no user |
|
131 if user and (not accounts.isDeveloper(user=user)): |
|
132 hosts = host_logic.logic.getForFields({'user': user}) |
|
133 sponsors = tolist((host.scope for host in hosts)) |
|
134 |
|
135 new_filter = {'scope': sponsors} |
|
136 filter = dicts.merge(filter, new_filter) |
|
137 |
|
138 return super(View, self).list(request, access_type, page_name=page_name, |
|
139 params=params, filter=filter) |
|
140 |
115 def _editPost(self, request, entity, fields): |
141 def _editPost(self, request, entity, fields): |
116 """See base.View._editPost(). |
142 """See base.View._editPost(). |
117 """ |
143 """ |
118 |
144 |
119 user = user_logic.logic.getFromKeyName(fields['link_id']) |
145 user = user_logic.logic.getFromKeyName(fields['link_id']) |