31 |
31 |
32 from django import http |
32 from django import http |
33 from django import shortcuts |
33 from django import shortcuts |
34 from django import newforms as forms |
34 from django import newforms as forms |
35 |
35 |
|
36 import soc.logic |
36 from soc.logic import out_of_band |
37 from soc.logic import out_of_band |
37 from soc.logic import validate |
38 from soc.logic import validate |
38 from soc.logic.site import id_user |
39 from soc.logic.site import id_user |
39 from soc.logic.helper import access |
40 from soc.logic.helper import access |
40 from soc.views import simple |
41 from soc.views import simple |
44 import soc.views.helper.templates |
45 import soc.views.helper.templates |
45 import soc.views.helper.widgets |
46 import soc.views.helper.widgets |
46 |
47 |
47 import soc.models.site_settings |
48 import soc.models.site_settings |
48 import soc.models.document |
49 import soc.models.document |
49 import soc.logic.document |
|
50 import soc.logic.site.settings |
|
51 |
50 |
52 |
51 |
53 class DocumentForm(helper.forms.DbModelForm): |
52 class DocumentForm(helper.forms.DbModelForm): |
54 content = forms.fields.CharField(widget=helper.widgets.TinyMCE()) |
53 content = forms.fields.CharField(widget=helper.widgets.TinyMCE()) |
55 |
54 |
105 A subclass of django.http.HttpResponse with generated template. |
104 A subclass of django.http.HttpResponse with generated template. |
106 """ |
105 """ |
107 # create default template context for use with any templates |
106 # create default template context for use with any templates |
108 context = helper.responses.getUniversalContext(request) |
107 context = helper.responses.getUniversalContext(request) |
109 |
108 |
110 site_settings = soc.logic.site.settings.getSiteSettings(DEF_SITE_SETTINGS_PATH) |
109 site_settings = soc.logic.settings_logic.getFromFields(path=DEF_SITE_SETTINGS_PATH) |
111 |
110 |
112 if site_settings: |
111 if site_settings: |
113 context['site_settings'] = site_settings |
112 context['site_settings'] = site_settings |
114 site_doc = site_settings.home |
113 site_doc = site_settings.home |
115 |
114 |
116 if site_doc: |
115 if site_doc: |
117 site_doc.content = helper.templates.unescape(site_doc.content) |
116 site_doc.content = helper.templates.unescape(site_doc.content) |
118 context['site_document'] = site_doc |
117 context['site_document'] = site_doc |
119 |
118 |
120 return helper.responses.respond(request, template, context) |
119 return helper.responses.respond(request, template, context=context) |
121 |
120 |
122 |
121 |
123 DEF_SITE_HOME_EDIT_TMPL = 'soc/site/home/edit.html' |
122 DEF_SITE_HOME_EDIT_TMPL = 'soc/site/home/edit.html' |
124 |
123 |
125 def edit(request, template=DEF_SITE_HOME_EDIT_TMPL): |
124 def edit(request, template=DEF_SITE_HOME_EDIT_TMPL): |
147 if request.method == 'POST': |
146 if request.method == 'POST': |
148 document_form = DocumentForm(request.POST) |
147 document_form = DocumentForm(request.POST) |
149 settings_form = SiteSettingsForm(request.POST) |
148 settings_form = SiteSettingsForm(request.POST) |
150 |
149 |
151 if document_form.is_valid() and settings_form.is_valid(): |
150 if document_form.is_valid() and settings_form.is_valid(): |
152 title = document_form.cleaned_data.get('title') |
|
153 link_name = DEF_SITE_HOME_DOC_LINK_NAME |
151 link_name = DEF_SITE_HOME_DOC_LINK_NAME |
154 short_name = document_form.cleaned_data.get('short_name') |
152 partial_path=DEF_SITE_SETTINGS_PATH |
155 abstract = document_form.cleaned_data.get('abstract') |
|
156 content = document_form.cleaned_data.get('content') |
|
157 |
|
158 logged_in_id = users.get_current_user() |
153 logged_in_id = users.get_current_user() |
159 |
154 user = soc.logic.user_logic.getFromFields(email=logged_in_id) |
160 site_doc = soc.logic.document.updateOrCreateDocument( |
155 |
161 partial_path=DEF_SITE_SETTINGS_PATH, link_name=link_name, |
156 properties = {} |
162 title=title, short_name=short_name, abstract=abstract, |
157 properties['title'] = document_form.cleaned_data.get('title') |
163 content=content, user=id_user.getUserFromId(logged_in_id)) |
158 properties['short_name'] = document_form.cleaned_data.get('short_name') |
|
159 properties['abstract'] = document_form.cleaned_data.get('abstract') |
|
160 properties['content'] = document_form.cleaned_data.get('content') |
|
161 properties['link_name'] = link_name |
|
162 properties['partial_path'] = partial_path |
|
163 properties['id'] = logged_in_id |
|
164 properties['user'] = user |
|
165 |
|
166 #bla = dir(logged_in_id) |
|
167 #raise self |
|
168 |
|
169 site_doc = soc.logic.document_logic.updateOrCreateFromFields( |
|
170 properties, partial_path=partial_path, link_name=link_name) |
164 |
171 |
165 feed_url = settings_form.cleaned_data.get('feed_url') |
172 feed_url = settings_form.cleaned_data.get('feed_url') |
166 |
173 |
167 site_settings = soc.logic.site.settings.updateOrCreateSiteSettings( |
174 site_settings = soc.logic.settings_logic.updateOrCreateFromFields( |
168 DEF_SITE_SETTINGS_PATH, home=site_doc, feed_url=feed_url) |
175 {'feed_url' : feed_url, 'home' : site_doc}, path=DEF_SITE_SETTINGS_PATH) |
169 |
176 |
170 context['notice'] = 'Site Settings saved.' |
177 context['notice'] = 'Site Settings saved.' |
171 else: # request.method == 'GET' |
178 else: # request.method == 'GET' |
172 # try to fetch SiteSettings entity by unique key_name |
179 # try to fetch SiteSettings entity by unique key_name |
173 site_settings = soc.logic.site.settings.getSiteSettings( |
180 site_settings = soc.logic.settings_logic.getFromFields( |
174 DEF_SITE_SETTINGS_PATH) |
181 path=DEF_SITE_SETTINGS_PATH) |
175 |
182 |
176 if site_settings: |
183 if site_settings: |
177 # populate form with the existing SiteSettings entity |
184 # populate form with the existing SiteSettings entity |
178 settings_form = SiteSettingsForm(instance=site_settings) |
185 settings_form = SiteSettingsForm(instance=site_settings) |
179 site_doc = site_settings.home |
186 site_doc = site_settings.home |