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):
|