Skip to content

Commit 301f48b

Browse files
committed
fixing some incomplete django code examples
1 parent 14a32f0 commit 301f48b

8 files changed

+180
-1
lines changed

content/pages/examples/django/django-contrib-admin-helpers-actionform.markdown

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ class ConfirmImportForm(forms.Form):
5757

5858

5959

60+
def clean_import_file_name(self):
61+
data = self.cleaned_data['import_file_name']
62+
data = os.path.basename(data)
63+
return data
64+
6065

6166
class ExportForm(forms.Form):
6267
file_format = forms.ChoiceField(

content/pages/examples/django/django-contrib-admin-helpers-adminform.markdown

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ from cms import operations
5656
## ... source file abbreviated to get to AdminForm examples ...
5757

5858

59+
saved_successfully = False
60+
cancel_clicked = request.POST.get("_cancel", False)
61+
raw_fields = request.GET.get("edit_fields")
62+
fields = [field for field in raw_fields.split(",") if field in self.frontend_editable_fields]
63+
if not fields:
5964
context = {
6065
'opts': opts,
6166
'message': force_text(_("Field %s not found")) % raw_fields

content/pages/examples/django/django-contrib-admin-helpers.markdown

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ from ..utils.loader import load_model
6262
## ... source file abbreviated to get to helpers examples ...
6363

6464

65+
if "move-to-clipboard-%d" % (f.id,) in request.POST:
66+
clipboard = tools.get_user_clipboard(request.user)
67+
if f.has_edit_permission(request):
68+
tools.move_file_to_clipboard([f], clipboard)
69+
return HttpResponseRedirect(request.get_full_path())
6570
else:
6671
raise PermissionDenied
6772

@@ -112,6 +117,11 @@ from ..utils.loader import load_model
112117
## ... source file abbreviated to get to helpers examples ...
113118

114119

120+
self.log_deletion(request, f, force_text(f))
121+
f.delete()
122+
self.message_user(request, _("Successfully deleted %(count)d files and/or folders.") % {"count": n, })
123+
return None
124+
115125
if all_perms_needed or all_protected:
116126
title = _("Cannot delete files and/or folders")
117127
else:
@@ -162,6 +172,11 @@ from ..utils.loader import load_model
162172
## ... source file abbreviated to get to helpers examples ...
163173

164174

175+
conflicting_names = [folder.name for folder in self.get_queryset(request).filter(parent=destination, name__in=folders_queryset.values('name'))]
176+
if conflicting_names:
177+
messages.error(request, _("Folders with names %s already exist at the selected "
178+
"destination") % ", ".join(conflicting_names))
179+
elif n:
165180
self._move_files_and_folders_impl(files_queryset, folders_queryset, destination)
166181
self.message_user(request, _("Successfully moved %(count)d files and/or folders to folder '%(destination)s'.") % {
167182
"count": n,
@@ -212,6 +227,11 @@ from ..utils.loader import load_model
212227
## ... source file abbreviated to get to helpers examples ...
213228

214229

230+
raise PermissionDenied
231+
form = RenameFilesForm(request.POST)
232+
if form.is_valid():
233+
if files_queryset.count() + folders_queryset.count():
234+
n = self._rename_files_impl(files_queryset, folders_queryset, form.cleaned_data, 0)
215235
self.message_user(request, _("Successfully renamed %(count)d files.") % {
216236
"count": n,
217237
})
@@ -262,6 +282,11 @@ from ..utils.loader import load_model
262282
## ... source file abbreviated to get to helpers examples ...
263283

264284

285+
form = CopyFilesAndFoldersForm()
286+
287+
try:
288+
selected_destination_folder = int(request.POST.get('destination', 0))
289+
except ValueError:
265290
if current_folder:
266291
selected_destination_folder = current_folder.pk
267292
else:
@@ -312,6 +337,11 @@ from ..utils.loader import load_model
312337
## ... source file abbreviated to get to helpers examples ...
313338

314339

340+
form.cleaned_data['width'] = form.cleaned_data['thumbnail_option'].width
341+
form.cleaned_data['height'] = form.cleaned_data['thumbnail_option'].height
342+
form.cleaned_data['crop'] = form.cleaned_data['thumbnail_option'].crop
343+
form.cleaned_data['upscale'] = form.cleaned_data['thumbnail_option'].upscale
344+
if files_queryset.count() + folders_queryset.count():
315345
n = self._resize_images_impl(files_queryset, folders_queryset, form.cleaned_data)
316346
self.message_user(request, _("Successfully resized %(count)d images.") % {"count": n, })
317347
return None

content/pages/examples/django/django-contrib-admin-options-csrf-protect-m.markdown

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ class SearchChangeList(ChangeList):
5858
## ... source file abbreviated to get to csrf_protect_m examples ...
5959

6060

61+
result_count = paginator.count
62+
full_result_count = (
63+
SearchQuerySet(self.haystack_connection).models(self.model).all().count()
64+
)
65+
6166
can_show_all = result_count <= self.list_max_show_all
6267
multi_page = result_count > self.list_per_page
6368

content/pages/examples/django/django-contrib-admin-options-incorrectlookupparameters.markdown

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ The django-jet project is open source under the
2424

2525
```python
2626
# utils.py
27+
from django.template import Context
28+
from django.utils import translation
29+
from jet import settings
30+
from jet.models import PinnedApplication
31+
2732
try:
2833
from django.apps.registry import apps
2934
except ImportError:
@@ -71,6 +76,61 @@ def get_app_list(context, order=True):
7176
request = context['request']
7277

7378

79+
## ... source file abbreviated to get to IncorrectLookupParameters examples ...
80+
81+
82+
if hasattr(model_admin, 'get_search_fields') else model_admin.search_fields
83+
list_select_related = model_admin.get_list_select_related(request) \
84+
if hasattr(model_admin, 'get_list_select_related') else model_admin.list_select_related
85+
86+
actions = model_admin.get_actions(request)
87+
if actions:
88+
list_display = ['action_checkbox'] + list(list_display)
89+
90+
ChangeList = model_admin.get_changelist(request)
91+
92+
change_list_args = [
93+
request, model, list_display, list_display_links, list_filter,
94+
model_admin.date_hierarchy, search_fields, list_select_related,
95+
model_admin.list_per_page, model_admin.list_max_show_all,
96+
model_admin.list_editable, model_admin]
97+
98+
try:
99+
sortable_by = model_admin.get_sortable_by(request)
100+
change_list_args.append(sortable_by)
101+
except AttributeError:
102+
pass
103+
104+
try:
105+
cl = ChangeList(*change_list_args)
106+
queryset = cl.get_queryset(request)
107+
~~ except IncorrectLookupParameters:
108+
pass
109+
110+
return queryset
111+
112+
113+
def get_possible_language_codes():
114+
language_code = translation.get_language()
115+
116+
language_code = language_code.replace('_', '-').lower()
117+
language_codes = []
118+
119+
split = language_code.split('-', 2)
120+
if len(split) == 2:
121+
language_code = '%s-%s' % (split[0].lower(), split[1].upper()) if split[0] != split[1] else split[0]
122+
123+
language_codes.append(language_code)
124+
125+
if len(split) == 2:
126+
language_codes.append(split[0].lower())
127+
128+
return language_codes
129+
130+
131+
def get_original_menu_items(context):
132+
133+
74134
## ... source file continues with no further IncorrectLookupParameters examples...
75135

76136
```

content/pages/examples/django/django-contrib-admin-options-is-popup-var.markdown

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,47 @@ def check_files_read_permissions(request, files):
107107
if not f.has_read_permission(request):
108108

109109

110+
## ... source file abbreviated to get to IS_POPUP_VAR examples ...
111+
112+
113+
params = params or {}
114+
if popup_status(request):
115+
params[IS_POPUP_VAR] = '1'
116+
pick_type = popup_pick_type(request)
117+
if pick_type:
118+
params['_pick'] = pick_type
119+
return params
120+
121+
122+
def admin_url_params_encoded(request, first_separator='?', params=None):
123+
params = urlencode(
124+
sorted(admin_url_params(request, params=params).items())
125+
)
126+
if not params:
127+
return ''
128+
return '{0}{1}'.format(first_separator, params)
129+
130+
131+
class AdminContext(dict):
132+
def __init__(self, request):
133+
super(AdminContext, self).__init__()
134+
self.update(admin_url_params(request))
135+
136+
def __missing__(self, key):
137+
if key == 'popup':
138+
~~ return self.get(IS_POPUP_VAR, False) == '1'
139+
elif key == 'pick':
140+
return self.get('_pick', '')
141+
elif key.startswith('pick_'):
142+
return self.get('_pick', '') == key.split('pick_')[1]
143+
144+
def __getattr__(self, name):
145+
if name in ('popup', 'pick') or name.startswith('pick_'):
146+
return self.get(name)
147+
raise AttributeError
148+
149+
150+
110151
## ... source file continues with no further IS_POPUP_VAR examples...
111152

112153
```

content/pages/examples/django/django-contrib-admin-options-modeladmin.markdown

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,39 @@ class SearchChangeList(ChangeList):
5555
SearchQuerySet(self.haystack_connection)
5656

5757

58+
## ... source file abbreviated to get to ModelAdmin examples ...
59+
60+
61+
"cl": changelist,
62+
"media": media,
63+
"has_add_permission": self.has_add_permission(request),
64+
"opts": changelist.opts,
65+
"app_label": self.model._meta.app_label,
66+
"action_form": action_form,
67+
"actions_on_top": self.actions_on_top,
68+
"actions_on_bottom": self.actions_on_bottom,
69+
"actions_selection_counter": getattr(self, "actions_selection_counter", 0),
70+
}
71+
context.update(extra_context or {})
72+
request.current_app = self.admin_site.name
73+
app_name, model_name = get_model_ct_tuple(self.model)
74+
return render(
75+
request,
76+
self.change_list_template
77+
or [
78+
"admin/%s/%s/change_list.html" % (app_name, model_name),
79+
"admin/%s/change_list.html" % app_name,
80+
"admin/change_list.html",
81+
],
82+
context,
83+
)
84+
85+
86+
~~class SearchModelAdmin(SearchModelAdminMixin, ModelAdmin):
87+
pass
88+
89+
90+
5891
## ... source file continues with no further ModelAdmin examples...
5992

6093
```

content/pages/meta/00-change-log.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ on GitHub.
1616
## 2020
1717
### June
1818
* Added new example code for [Django](/django.html) modules:
19-
* [django.contrib.admin.helpers](/django-contrib-admin-helpers-examples.html),
19+
* [django.contrib.admin.helpers](/django-contrib-admin-helpers-examples.html)
2020
[ActionForm](/django-contrib-admin-helpers-actionform-examples.html),
2121
and
2222
[AdminForm](/django-contrib-admin-helpers-adminform-examples.html)

0 commit comments

Comments
 (0)