root / env / lib / python2.7 / site-packages / django / contrib / admin / templatetags / admin_modify.py @ 1a305335
History | View | Annotate | Download (2.24 KB)
1 | 1a305335 | officers | from django import template |
---|---|---|---|
2 | |||
3 | register = template.Library() |
||
4 | |||
5 | @register.inclusion_tag('admin/prepopulated_fields_js.html', takes_context=True) |
||
6 | def prepopulated_fields_js(context): |
||
7 | """
|
||
8 | Creates a list of prepopulated_fields that should render Javascript for
|
||
9 | the prepopulated fields for both the admin form and inlines.
|
||
10 | """
|
||
11 | prepopulated_fields = [] |
||
12 | if context['add'] and 'adminform' in context: |
||
13 | prepopulated_fields.extend(context['adminform'].prepopulated_fields)
|
||
14 | if 'inline_admin_formsets' in context: |
||
15 | for inline_admin_formset in context['inline_admin_formsets']: |
||
16 | for inline_admin_form in inline_admin_formset: |
||
17 | if inline_admin_form.original is None: |
||
18 | prepopulated_fields.extend(inline_admin_form.prepopulated_fields) |
||
19 | context.update({'prepopulated_fields': prepopulated_fields})
|
||
20 | return context
|
||
21 | |||
22 | @register.inclusion_tag('admin/submit_line.html', takes_context=True) |
||
23 | def submit_row(context): |
||
24 | """
|
||
25 | Displays the row of buttons for delete and save.
|
||
26 | """
|
||
27 | opts = context['opts']
|
||
28 | change = context['change']
|
||
29 | is_popup = context['is_popup']
|
||
30 | save_as = context['save_as']
|
||
31 | return {
|
||
32 | 'onclick_attrib': (opts.get_ordered_objects() and change |
||
33 | and 'onclick="submitOrderForm();"' or ''), |
||
34 | 'show_delete_link': (not is_popup and context['has_delete_permission'] |
||
35 | and (change or context['show_delete'])), |
||
36 | 'show_save_as_new': not is_popup and change and save_as, |
||
37 | 'show_save_and_add_another': context['has_add_permission'] and |
||
38 | not is_popup and (not save_as or context['add']), |
||
39 | 'show_save_and_continue': not is_popup and context['has_change_permission'], |
||
40 | 'is_popup': is_popup,
|
||
41 | 'show_save': True |
||
42 | } |
||
43 | |||
44 | @register.filter
|
||
45 | def cell_count(inline_admin_form): |
||
46 | """Returns the number of cells used in a tabular inline"""
|
||
47 | count = 1 # Hidden cell with hidden 'id' field |
||
48 | for fieldset in inline_admin_form: |
||
49 | # Loop through all the fields (one per cell)
|
||
50 | for line in fieldset: |
||
51 | for field in line: |
||
52 | count += 1
|
||
53 | if inline_admin_form.formset.can_delete:
|
||
54 | # Delete checkbox
|
||
55 | count += 1
|
||
56 | return count |