Changeset 3891
- Timestamp:
- 10/03/06 08:19:19 (2 years ago)
- Files:
-
- django/branches/per-object-permissions/django/contrib/admin/templates/admin/edit_inline_stacked.html (modified) (2 diffs)
- django/branches/per-object-permissions/django/contrib/admin/templates/admin/edit_inline_tabular.html (modified) (2 diffs)
- django/branches/per-object-permissions/django/contrib/admin/templatetags/admin_modify.py (modified) (3 diffs)
- django/branches/per-object-permissions/django/contrib/admin/templatetags/row_level_permission.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/per-object-permissions/django/contrib/admin/templates/admin/edit_inline_stacked.html
r3464 r3891 2 2 <fieldset class="module aligned"> 3 3 {% for fcw in bound_related_object.form_field_collection_wrappers %} 4 {% load row_level_permission %} 5 {% check_rlp_inline fcw.original %} 4 6 <h2>{{ bound_related_object.relation.opts.verbose_name|capfirst|escape }} #{{ forloop.counter }}</h2> 5 7 {% if bound_related_object.show_url %}{% if fcw.obj.original %} … … 13 15 {% endif %} 14 16 {% endfor %} 17 {% end_check_rlp_inline %} 15 18 {% endfor %} 16 19 </fieldset> django/branches/per-object-permissions/django/contrib/admin/templates/admin/edit_inline_tabular.html
r3583 r3891 10 10 </tr></thead> 11 11 {% for fcw in bound_related_object.form_field_collection_wrappers %} 12 {% load row_level_permission %} 13 {% check_rlp_inline fcw.original %} 12 14 {% if change %}{% if original_row_needed %} 13 15 {% if fcw.obj.original %} … … 32 34 </td>{% endif %} 33 35 </tr> 34 36 37 {% end_check_rlp_inline %} 35 38 {% endfor %} </table> 36 39 django/branches/per-object-permissions/django/contrib/admin/templatetags/admin_modify.py
r3810 r3891 120 120 def __init__(self, field_mapping, fields, index): 121 121 self.field_mapping = field_mapping 122 self.original = field_mapping['original'] 122 123 self.fields = fields 123 124 self.bound_fields = [AdminBoundField(field, self.field_mapping, field_mapping['original']) … … 128 129 def __init__(self, related_object, field_mapping, original): 129 130 super(TabularBoundRelatedObject, self).__init__(related_object, field_mapping, original) 131 130 132 self.field_wrapper_list = [FieldWrapper(field) for field in self.relation.editable_fields()] 131 133 132 134 fields = self.relation.editable_fields() 133 135 134 136 self.form_field_collection_wrappers = [FormFieldCollectionWrapper(field_mapping, fields, i) 135 137 for (i,field_mapping) in self.field_mappings.items() ] 138 136 139 self.original_row_needed = max([fw.use_raw_id_admin() for fw in self.field_wrapper_list]) 140 if original: 141 self.original = original 137 142 self.show_url = original and hasattr(self.relation.opts, 'get_absolute_url') 138 143 … … 148 153 self.form_field_collection_wrappers = [FormFieldCollectionWrapper(field_mapping ,fields, i) 149 154 for (i,field_mapping) in self.field_mappings.items()] 155 156 if original: 157 self.original = original 158 150 159 self.show_url = original and hasattr(self.relation.opts, 'get_absolute_url') 151 160 django/branches/per-object-permissions/django/contrib/admin/templatetags/row_level_permission.py
r3810 r3891 35 35 return objref_class(tok) 36 36 37 def check_rlp_inline(parser, token): 38 tokens = token.split_contents() 39 if len(tokens)!=2: 40 raise template.TemplateSyntaxError, "%r tag requires only 1 arguments" % tokens[0] 41 42 nodelist = parser.parse(('end_'+tokens[0],)) 43 token = parser.next_token() 44 45 object_var = parser.compile_filter(tokens[1]) 46 47 return CheckRLPInlineNode(object_var, nodelist) 48 49 class CheckRLPInlineNode(template.Node): 50 def __init__(self, object_var, nodelist): 51 self.object_var = object_var 52 self.nodelist = nodelist 53 54 def render(self, context): 55 if self.object_var: 56 try: 57 object = self.object_var.resolve(context) 58 except template.VariableDoesNotExist: 59 return self.nodelist.render(context) 60 else: 61 return self.nodelist.render(context) 62 63 if object is None: 64 return self.nodelist.render(context) 65 66 if not object._meta.row_level_permissions: 67 return self.nodelist.render(context) 68 69 try: 70 user = template.resolve_variable("user", context) 71 except template.VariableDoesNotExist: 72 return settings.TEMPLATE_STRING_IF_INVALID 73 74 permission = object._meta.get_change_permission() 75 76 bool_perm = user.has_perm(object._meta.app_label+'.'+permission, object=object) 77 78 if bool_perm: 79 return self.nodelist.render(context) 80 return "" 81 82 83 84 85 37 86 #From: http://code.djangoproject.com/wiki/PaginatorTag 38 87 def paginator(context, adjacent_pages=2): … … 59 108 60 109 register.tag('objref', objref) 110 register.tag('check_rlp_inline', check_rlp_inline)
