20 __authors__ = [ |
20 __authors__ = [ |
21 '"Lennard de Rijk" <ljvderijk@gmail.com>', |
21 '"Lennard de Rijk" <ljvderijk@gmail.com>', |
22 ] |
22 ] |
23 |
23 |
24 |
24 |
|
25 import os |
|
26 |
25 from django import forms |
27 from django import forms |
26 from django.utils import simplejson |
28 from django.utils import simplejson |
27 |
29 |
|
30 from soc.logic import accounts |
28 from soc.logic import cleaning |
31 from soc.logic import cleaning |
29 from soc.logic import dicts |
32 from soc.logic import dicts |
|
33 from soc.logic import mail_dispatcher |
30 from soc.logic import models as model_logic |
34 from soc.logic import models as model_logic |
31 from soc.logic.models import program as program_logic |
35 from soc.logic.models import program as program_logic |
32 from soc.logic.models import org_app as org_app_logic |
36 from soc.logic.models import org_app as org_app_logic |
33 from soc.views.helper import access |
37 from soc.views.helper import access |
34 from soc.views.helper import decorators |
38 from soc.views.helper import decorators |
122 new_params['url_name'] = "org_app" |
126 new_params['url_name'] = "org_app" |
123 new_params['group_name'] = "Organization" |
127 new_params['group_name'] = "Organization" |
124 new_params['group_url_name'] = 'org' |
128 new_params['group_url_name'] = 'org' |
125 |
129 |
126 new_params['review_template'] = 'soc/org_app/review.html' |
130 new_params['review_template'] = 'soc/org_app/review.html' |
|
131 new_params['accepted_mail_template'] = 'soc/org_app/mail/accepted.html' |
|
132 new_params['rejected_mail_template'] = 'soc/org_app/mail/rejected.html' |
127 |
133 |
128 params = dicts.merge(params, new_params) |
134 params = dicts.merge(params, new_params) |
129 |
135 |
130 super(View, self).__init__(params=params) |
136 super(View, self).__init__(params=params) |
131 |
137 |
166 content = entity.org_admin_agreement.content |
172 content = entity.org_admin_agreement.content |
167 |
173 |
168 form.fields['admin_agreement'].widget.text = content |
174 form.fields['admin_agreement'].widget.text = content |
169 |
175 |
170 def _review(self, request, params, app_entity, status, **kwargs): |
176 def _review(self, request, params, app_entity, status, **kwargs): |
171 """Sends out an email if an org_app has been reviewed and accepted. |
177 """Sends out an email if an org_app has been accepted or rejected. |
172 |
178 |
173 For params see group_app.View._review(). |
179 For params see group_app.View._review(). |
174 """ |
180 """ |
175 |
181 |
176 if status == 'accepted': |
182 if status == 'accepted' or status == 'rejected': |
177 #TODO(ljvderijk) create the email template |
183 |
178 pass |
184 default_sender = mail_dispatcher.getDefaultMailSender() |
179 elif status == 'rejected': |
185 |
180 #TODO(ljvderijk) create the rejected email template |
186 if not default_sender: |
181 pass |
187 # no default sender abort |
|
188 return |
|
189 else: |
|
190 (sender_name, sender) = default_sender |
|
191 |
|
192 # construct the contents of the email |
|
193 user_entity = app_entity.applicant |
|
194 to = accounts.denormalizeAccount(user_entity.account).email() |
|
195 |
|
196 context = {'sender': sender, |
|
197 'to': to, |
|
198 'sender_name': sender_name, |
|
199 'to_name': user_entity.name, |
|
200 'program_name': app_entity.scope.name} |
|
201 |
|
202 if status == 'accepted': |
|
203 # use the accepted template and subject |
|
204 template = params['accepted_mail_template'] |
|
205 context['subject'] = 'Congratulations!' |
|
206 context['HTTP_host'] = os.environ['HTTP_HOST'] |
|
207 elif status == 'rejected': |
|
208 # use the rejected template and subject |
|
209 template = params['rejected_mail_template'] |
|
210 context['subject'] = 'Thank you for your application' |
|
211 |
|
212 # send out the constructed email |
|
213 mail_dispatcher.sendMailFromTemplate(template, context) |
182 |
214 |
183 @decorators.merge_params |
215 @decorators.merge_params |
184 @decorators.check_access |
216 @decorators.check_access |
185 def bulkAccept(self, request, access_type, |
217 def bulkAccept(self, request, access_type, |
186 page_name=None, params=None, **kwargs): |
218 page_name=None, params=None, **kwargs): |