kopia lustrzana https://github.com/jedie/PyInventory
"merge" nested items
rodzic
0e28d53743
commit
2a4d6a1988
|
@ -45,15 +45,30 @@ class ItemModelChangeList(ChangeList):
|
||||||
@admin.register(ItemModel)
|
@admin.register(ItemModel)
|
||||||
class ItemModelAdmin(ImportExportMixin, BaseUserAdmin):
|
class ItemModelAdmin(ImportExportMixin, BaseUserAdmin):
|
||||||
form = ItemModelModelForm
|
form = ItemModelModelForm
|
||||||
|
|
||||||
|
def column_item(self, obj):
|
||||||
|
qs = ItemModel.objects.filter(user=self.user)
|
||||||
|
qs = qs.filter(parent=obj)
|
||||||
|
context = {
|
||||||
|
'base_item': obj,
|
||||||
|
'sub_items': qs
|
||||||
|
}
|
||||||
|
return render_to_string(
|
||||||
|
template_name='admin/inventory/item/column_item.html',
|
||||||
|
context=context,
|
||||||
|
)
|
||||||
|
|
||||||
|
column_item.short_description = _('ItemModel.verbose_name_plural')
|
||||||
|
|
||||||
date_hierarchy = 'create_dt'
|
date_hierarchy = 'create_dt'
|
||||||
list_display = (
|
list_display = (
|
||||||
'kind', 'producer',
|
'kind', 'producer',
|
||||||
'name',
|
'column_item',
|
||||||
'parent', 'location',
|
'location',
|
||||||
'received_date', 'update_dt'
|
'received_date', 'update_dt'
|
||||||
)
|
)
|
||||||
ordering = ('kind', 'producer', 'name')
|
ordering = ('kind', 'producer', 'name')
|
||||||
list_display_links = ('name',)
|
list_display_links = None
|
||||||
list_filter = ('kind', 'location', 'producer', 'tags')
|
list_filter = ('kind', 'location', 'producer', 'tags')
|
||||||
search_fields = ('name', 'description')
|
search_fields = ('name', 'description')
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import tagulous.models
|
import tagulous.models
|
||||||
from ckeditor_uploader.fields import RichTextUploadingField
|
from ckeditor_uploader.fields import RichTextUploadingField
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.urls import reverse
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from inventory.models.base import BaseModel
|
from inventory.models.base import BaseModel
|
||||||
|
@ -117,6 +118,14 @@ class ItemModel(BaseModel):
|
||||||
help_text=_('ItemModel.handed_over_price.help_text')
|
help_text=_('ItemModel.handed_over_price.help_text')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def local_admin_link(self):
|
||||||
|
url = reverse('admin:inventory_itemmodel_change', args=[self.id])
|
||||||
|
return url
|
||||||
|
|
||||||
|
def verbose_name(self):
|
||||||
|
parts = [str(part) for part in (self.kind, self.producer, self.name)]
|
||||||
|
return ' - '.join(part for part in parts if part)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if self.parent_id is None:
|
if self.parent_id is None:
|
||||||
title = self.name
|
title = self.name
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<strong><a href="{{ base_item.local_admin_link }}">{{ base_item.name }}</a></strong>
|
||||||
|
{% if sub_items %}
|
||||||
|
<ul>
|
||||||
|
{% for item in sub_items %}
|
||||||
|
<li><a href="{{ item.local_admin_link }}">{{ item.verbose_name }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
Ładowanie…
Reference in New Issue