diff -r 4ec5ae89a7b0 -r 0c01050f9717 src/cm/views/site.py --- a/src/cm/views/site.py Wed Feb 10 14:34:08 2010 +0100 +++ b/src/cm/views/site.py Thu Feb 11 16:28:10 2010 +0100 @@ -148,7 +148,7 @@ class SettingsForm(forms.Form): workspace_name = forms.CharField(label=ugettext_lazy("Workspace name"), widget=forms.TextInput, - required=True, + required=False, ) workspace_tagline = forms.CharField(label=ugettext_lazy("Workspace tagline"), @@ -156,6 +156,8 @@ required=False, ) + workspace_logo_file = forms.FileField(label=ugettext_lazy("Workspace logo"),required=False) + workspace_registration = forms.BooleanField(label=ugettext_lazy("Workspace registration"), help_text=ugettext_lazy("Can users register themselves into the workspace? (if not, only invitations by managers can create new users)"), required=False, @@ -171,6 +173,8 @@ choices=role_models_choices, required=False, ) + + # fields to save in the Configuration objects conf_fields = ['workspace_name', 'workspace_tagline', 'workspace_registration', 'workspace_registration_moderation', 'workspace_role_model'] @@ -185,15 +189,28 @@ if field in self.conf_fields: val = self.cleaned_data[field] Configuration.objects.set_key(field, val) + #handle_uploaded_file() + def save_file(self, logo_file): + attach = Attachment.objects.create_attachment(filename='wp_logo', data=logo_file.read(), text_version=None) + Configuration.objects.set_key('workspace_logo_file_key', attach.key) + print attach.key @has_global_perm('can_manage_workspace') def settingss(request): if request.method == 'POST': - form = SettingsForm(data=request.POST) - if form.is_valid() : - form.save() + if 'delete_logo' in request.POST: + Configuration.objects.del_key('workspace_logo_file_key') display_message(request, _(u'Settings saved')) - return HttpResponseRedirect(reverse('index')) + return HttpResponseRedirect(reverse('index')) + else: + form = SettingsForm(data=request.POST) + if form.is_valid() : + form.save() + logo_file = request.FILES.get('workspace_logo_file',None) + if logo_file: + form.save_file(logo_file) + display_message(request, _(u'Settings saved')) + return HttpResponseRedirect(reverse('index')) else: form = SettingsForm()