Revision 9024ed2e snf-astakos-app/astakos/im/views/util.py
b/snf-astakos-app/astakos/im/views/util.py | ||
---|---|---|
33 | 33 |
|
34 | 34 |
from django.contrib import messages |
35 | 35 |
from django.contrib.auth.views import redirect_to_login |
36 |
from django.core.exceptions import PermissionDenied |
|
37 | 36 |
from django.core.xheaders import populate_xheaders |
38 | 37 |
from django.http import HttpResponse |
39 | 38 |
from django.shortcuts import redirect |
... | ... | |
86 | 85 |
return response |
87 | 86 |
|
88 | 87 |
|
89 |
@commit_on_success_strict() |
|
90 | 88 |
def _create_object(request, model=None, template_name=None, |
91 | 89 |
template_loader=template_loader, extra_context=None, |
92 | 90 |
post_save_redirect=None, login_required=False, |
... | ... | |
95 | 93 |
Based of django.views.generic.create_update.create_object which displays a |
96 | 94 |
summary page before creating the object. |
97 | 95 |
""" |
98 |
response = None |
|
99 | 96 |
|
100 | 97 |
if extra_context is None: |
101 | 98 |
extra_context = {} |
102 | 99 |
if login_required and not request.user.is_authenticated(): |
103 | 100 |
return redirect_to_login(request.path) |
104 |
try: |
|
105 |
|
|
106 |
model, form_class = get_model_and_form_class(model, form_class) |
|
107 |
extra_context['edit'] = 0 |
|
108 |
if request.method == 'POST': |
|
109 |
form = form_class(request.POST, request.FILES) |
|
110 |
if form.is_valid(): |
|
111 |
verify = request.GET.get('verify') |
|
112 |
edit = request.GET.get('edit') |
|
113 |
if verify == '1': |
|
114 |
extra_context['show_form'] = False |
|
115 |
extra_context['form_data'] = form.cleaned_data |
|
116 |
elif edit == '1': |
|
117 |
extra_context['show_form'] = True |
|
118 |
else: |
|
119 |
new_object = form.save() |
|
120 |
if not msg: |
|
121 |
msg = _( |
|
122 |
"The %(verbose_name)s was created successfully.") |
|
123 |
msg = msg % model._meta.__dict__ |
|
124 |
messages.success(request, msg, fail_silently=True) |
|
125 |
response = redirect(post_save_redirect, new_object) |
|
126 |
else: |
|
127 |
form = form_class() |
|
128 |
except (IOError, PermissionDenied), e: |
|
129 |
messages.error(request, e) |
|
130 |
return None |
|
101 |
|
|
102 |
model, form_class = get_model_and_form_class(model, form_class) |
|
103 |
extra_context['edit'] = 0 |
|
104 |
if request.method == 'POST': |
|
105 |
form = form_class(request.POST, request.FILES) |
|
106 |
if form.is_valid(): |
|
107 |
verify = request.GET.get('verify') |
|
108 |
edit = request.GET.get('edit') |
|
109 |
if verify == '1': |
|
110 |
extra_context['show_form'] = False |
|
111 |
extra_context['form_data'] = form.cleaned_data |
|
112 |
elif edit == '1': |
|
113 |
extra_context['show_form'] = True |
|
114 |
else: |
|
115 |
new_object = form.save() |
|
116 |
if not msg: |
|
117 |
msg = _( |
|
118 |
"The %(verbose_name)s was created successfully.") |
|
119 |
msg = msg % model._meta.__dict__ |
|
120 |
messages.success(request, msg, fail_silently=True) |
|
121 |
return redirect(post_save_redirect, new_object) |
|
131 | 122 |
else: |
132 |
if response is None: |
|
133 |
# Create the template, context, response |
|
134 |
if not template_name: |
|
135 |
template_name = "%s/%s_form.html" % \ |
|
136 |
(model._meta.app_label, model._meta.object_name.lower()) |
|
137 |
t = template_loader.get_template(template_name) |
|
138 |
c = RequestContext(request, { |
|
139 |
'form': form |
|
140 |
}, context_processors) |
|
141 |
apply_extra_context(extra_context, c) |
|
142 |
response = HttpResponse(t.render(c)) |
|
143 |
return response |
|
144 |
|
|
145 |
|
|
146 |
@commit_on_success_strict() |
|
123 |
form = form_class() |
|
124 |
|
|
125 |
# Create the template, context, response |
|
126 |
if not template_name: |
|
127 |
template_name = "%s/%s_form.html" % \ |
|
128 |
(model._meta.app_label, model._meta.object_name.lower()) |
|
129 |
t = template_loader.get_template(template_name) |
|
130 |
c = RequestContext(request, { |
|
131 |
'form': form |
|
132 |
}, context_processors) |
|
133 |
apply_extra_context(extra_context, c) |
|
134 |
return HttpResponse(t.render(c)) |
|
135 |
|
|
136 |
|
|
147 | 137 |
def _update_object(request, model=None, object_id=None, slug=None, |
148 | 138 |
slug_field='slug', template_name=None, |
149 | 139 |
template_loader=template_loader, extra_context=None, |
... | ... | |
154 | 144 |
Based of django.views.generic.create_update.update_object which displays a |
155 | 145 |
summary page before updating the object. |
156 | 146 |
""" |
157 |
response = None |
|
158 | 147 |
|
159 | 148 |
if extra_context is None: |
160 | 149 |
extra_context = {} |
161 | 150 |
if login_required and not request.user.is_authenticated(): |
162 | 151 |
return redirect_to_login(request.path) |
163 | 152 |
|
164 |
try: |
|
165 |
model, form_class = get_model_and_form_class(model, form_class) |
|
166 |
obj = lookup_object(model, object_id, slug, slug_field) |
|
167 |
|
|
168 |
if request.method == 'POST': |
|
169 |
form = form_class(request.POST, request.FILES, instance=obj) |
|
170 |
if form.is_valid(): |
|
171 |
verify = request.GET.get('verify') |
|
172 |
edit = request.GET.get('edit') |
|
173 |
if verify == '1': |
|
174 |
extra_context['show_form'] = False |
|
175 |
extra_context['form_data'] = form.cleaned_data |
|
176 |
elif edit == '1': |
|
177 |
extra_context['show_form'] = True |
|
178 |
else: |
|
179 |
obj = form.save() |
|
180 |
if not msg: |
|
181 |
msg = _( |
|
182 |
"The %(verbose_name)s was created successfully.") |
|
183 |
msg = msg % model._meta.__dict__ |
|
184 |
messages.success(request, msg, fail_silently=True) |
|
185 |
response = redirect(post_save_redirect, obj) |
|
186 |
else: |
|
187 |
form = form_class(instance=obj) |
|
188 |
except (IOError, PermissionDenied), e: |
|
189 |
messages.error(request, e) |
|
190 |
return None |
|
153 |
model, form_class = get_model_and_form_class(model, form_class) |
|
154 |
obj = lookup_object(model, object_id, slug, slug_field) |
|
155 |
|
|
156 |
if request.method == 'POST': |
|
157 |
form = form_class(request.POST, request.FILES, instance=obj) |
|
158 |
if form.is_valid(): |
|
159 |
verify = request.GET.get('verify') |
|
160 |
edit = request.GET.get('edit') |
|
161 |
if verify == '1': |
|
162 |
extra_context['show_form'] = False |
|
163 |
extra_context['form_data'] = form.cleaned_data |
|
164 |
elif edit == '1': |
|
165 |
extra_context['show_form'] = True |
|
166 |
else: |
|
167 |
obj = form.save() |
|
168 |
if not msg: |
|
169 |
msg = _( |
|
170 |
"The %(verbose_name)s was created successfully.") |
|
171 |
msg = msg % model._meta.__dict__ |
|
172 |
messages.success(request, msg, fail_silently=True) |
|
173 |
return redirect(post_save_redirect, obj) |
|
191 | 174 |
else: |
192 |
if response is None: |
|
193 |
if not template_name: |
|
194 |
template_name = "%s/%s_form.html" % \ |
|
195 |
(model._meta.app_label, model._meta.object_name.lower()) |
|
196 |
t = template_loader.get_template(template_name) |
|
197 |
c = RequestContext(request, { |
|
198 |
'form': form, |
|
199 |
template_object_name: obj, |
|
200 |
}, context_processors) |
|
201 |
apply_extra_context(extra_context, c) |
|
202 |
response = HttpResponse(t.render(c)) |
|
203 |
populate_xheaders(request, response, model, |
|
204 |
getattr(obj, obj._meta.pk.attname)) |
|
205 |
return response |
|
175 |
form = form_class(instance=obj) |
|
176 |
|
|
177 |
if not template_name: |
|
178 |
template_name = "%s/%s_form.html" % \ |
|
179 |
(model._meta.app_label, model._meta.object_name.lower()) |
|
180 |
t = template_loader.get_template(template_name) |
|
181 |
c = RequestContext(request, { |
|
182 |
'form': form, |
|
183 |
template_object_name: obj, |
|
184 |
}, context_processors) |
|
185 |
apply_extra_context(extra_context, c) |
|
186 |
response = HttpResponse(t.render(c)) |
|
187 |
populate_xheaders(request, response, model, |
|
188 |
getattr(obj, obj._meta.pk.attname)) |
|
189 |
return response |
|
206 | 190 |
|
207 | 191 |
|
208 | 192 |
def _resources_catalog(for_project=False, for_usage=False): |
Also available in: Unified diff