143 pass |
143 pass |
144 |
144 |
145 from cm.role_models import role_models_choices |
145 from cm.role_models import role_models_choices |
146 from django.utils.safestring import mark_safe |
146 from django.utils.safestring import mark_safe |
147 |
147 |
148 class SettingsForm(forms.Form): |
148 class BaseSettingsForm(forms.Form): |
|
149 def __init__(self, data=None, initial=None): |
|
150 forms.Form.__init__(self, data=data, initial=initial) |
|
151 for field in self.fields: |
|
152 if field in self.conf_fields: |
|
153 self.fields[field].initial = Configuration.objects.get_key(field) |
|
154 |
|
155 self.fields[field].initial = Configuration.objects.get_key(field) |
|
156 |
|
157 def save(self): |
|
158 for field in self.fields: |
|
159 if field in self.conf_fields: |
|
160 val = self.cleaned_data[field] |
|
161 Configuration.objects.set_key(field, val) |
|
162 |
|
163 class SettingsForm(BaseSettingsForm): |
149 workspace_name = forms.CharField(label=ugettext_lazy("Workspace name"), |
164 workspace_name = forms.CharField(label=ugettext_lazy("Workspace name"), |
150 widget=forms.TextInput, |
165 widget=forms.TextInput, |
151 required=False, |
166 required=False, |
152 ) |
167 ) |
153 |
168 |
154 workspace_tagline = forms.CharField(label=ugettext_lazy("Workspace tagline"), |
169 workspace_tagline = forms.CharField(label=ugettext_lazy("Workspace tagline"), |
155 widget=forms.TextInput, |
170 widget=forms.TextInput, |
156 required=False, |
171 required=False, |
157 ) |
172 ) |
158 |
|
159 workspace_logo_file = forms.FileField(label=ugettext_lazy("Workspace logo"),required=False) |
|
160 |
173 |
161 workspace_registration = forms.BooleanField(label=ugettext_lazy("Workspace registration"), |
174 workspace_registration = forms.BooleanField(label=ugettext_lazy("Workspace registration"), |
162 help_text=ugettext_lazy("Can users register themselves into the workspace? (if not, only invitations by managers can create new users)"), |
175 help_text=ugettext_lazy("Can users register themselves into the workspace? (if not, only invitations by managers can create new users)"), |
163 required=False, |
176 required=False, |
164 ) |
177 ) |
176 |
189 |
177 |
190 |
178 # fields to save in the Configuration objects |
191 # fields to save in the Configuration objects |
179 conf_fields = ['workspace_name', 'workspace_tagline', 'workspace_registration', 'workspace_registration_moderation', 'workspace_role_model'] |
192 conf_fields = ['workspace_name', 'workspace_tagline', 'workspace_registration', 'workspace_registration_moderation', 'workspace_role_model'] |
180 |
193 |
181 def __init__(self, data=None, initial=None): |
194 |
182 forms.Form.__init__(self, data=data, initial=initial) |
|
183 for field in self.fields: |
|
184 if field in self.conf_fields: |
|
185 self.fields[field].initial = Configuration.objects.get_key(field) |
|
186 |
|
187 def save(self): |
|
188 for field in self.fields: |
|
189 if field in self.conf_fields: |
|
190 val = self.cleaned_data[field] |
|
191 Configuration.objects.set_key(field, val) |
|
192 #handle_uploaded_file() |
|
193 def save_file(self, logo_file): |
|
194 attach = Attachment.objects.create_attachment(filename='wp_logo', data=logo_file.read(), text_version=None) |
|
195 Configuration.objects.set_key('workspace_logo_file_key', attach.key) |
|
196 |
|
197 @has_global_perm('can_manage_workspace') |
195 @has_global_perm('can_manage_workspace') |
198 def settingss(request): |
196 def settingss(request): |
199 if request.method == 'POST': |
197 if request.method == 'POST': |
200 if 'delete_logo' in request.POST: |
198 if 'delete_logo' in request.POST: |
201 Configuration.objects.del_key('workspace_logo_file_key') |
199 Configuration.objects.del_key('workspace_logo_file_key') |
202 display_message(request, _(u'Settings saved')) |
200 display_message(request, _(u'Settings saved')) |
203 return HttpResponseRedirect(reverse('index')) |
201 return HttpResponseRedirect(reverse('index')) |
204 else: |
202 else: |
205 form = SettingsForm(data=request.POST) |
203 form = SettingsForm(data=request.POST) |
|
204 if form.is_valid() : |
|
205 form.save() |
|
206 display_message(request, _(u'Settings saved')) |
|
207 return HttpResponseRedirect(reverse('index')) |
|
208 else: |
|
209 form = SettingsForm() |
|
210 |
|
211 return render_to_response('site/settings.html', {'form' : form, 'help_links' : {'workspace_role_model':'role_model'}}, context_instance=RequestContext(request)) |
|
212 |
|
213 class SettingsDesignForm(BaseSettingsForm): |
|
214 workspace_logo_file = forms.FileField(label=ugettext_lazy("Workspace logo"),required=False) |
|
215 |
|
216 workspace_code = forms.CharField(label=ugettext_lazy("Workspace html code"), |
|
217 help_text=(ugettext_lazy("Add stylesheets etc. Warning: this code will be added to the workspace code, make sure you know what you're doing before adding something here.")), |
|
218 widget=forms.Textarea, |
|
219 required=False, |
|
220 ) |
|
221 |
|
222 conf_fields = ['workspace_code'] |
|
223 |
|
224 def save_file(self, logo_file): |
|
225 attach = Attachment.objects.create_attachment(filename='wp_logo', data=logo_file.read(), text_version=None) |
|
226 Configuration.objects.set_key('workspace_logo_file_key', attach.key) |
|
227 |
|
228 |
|
229 @has_global_perm('can_manage_workspace') |
|
230 def settings_design(request): |
|
231 if request.method == 'POST': |
|
232 if 'delete_logo' in request.POST: |
|
233 Configuration.objects.del_key('workspace_logo_file_key') |
|
234 display_message(request, _(u'Settings saved')) |
|
235 return HttpResponseRedirect(reverse('index')) |
|
236 else: |
|
237 form = SettingsDesignForm(data=request.POST) |
206 if form.is_valid() : |
238 if form.is_valid() : |
207 form.save() |
239 form.save() |
208 logo_file = request.FILES.get('workspace_logo_file',None) |
240 logo_file = request.FILES.get('workspace_logo_file',None) |
209 if logo_file: |
241 if logo_file: |
210 form.save_file(logo_file) |
242 form.save_file(logo_file) |
211 display_message(request, _(u'Settings saved')) |
243 display_message(request, _(u'Settings saved')) |
212 return HttpResponseRedirect(reverse('index')) |
244 return HttpResponseRedirect(reverse('index')) |
213 else: |
245 else: |
214 form = SettingsForm() |
246 form = SettingsDesignForm() |
215 |
247 |
216 return render_to_response('site/settings.html', {'form' : form, 'help_links' : {'workspace_role_model':'role_model'}}, context_instance=RequestContext(request)) |
248 return render_to_response('site/settings_design.html', {'form' : form}, context_instance=RequestContext(request)) |
217 |
249 |
218 def help(request): |
250 def help(request): |
219 return render_to_response('site/help.html', context_instance=RequestContext(request)) |
251 return render_to_response('site/help.html', context_instance=RequestContext(request)) |
220 |
252 |