Merge pull request #4 from jedie/develop

Develop
pull/7/head
Jens Diemer 2020-10-17 18:41:12 +02:00 zatwierdzone przez GitHub
commit b50210bb72
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
14 zmienionych plików z 753 dodań i 47 usunięć

Wyświetl plik

@ -4,7 +4,7 @@
:license: GNU GPL v3 or above, see LICENSE for more details.
"""
__version__ = "0.0.1"
__version__ = "0.1.0"
# https://docs.djangoproject.com/en/2.0/ref/applications/#configuring-applications-ref
default_app_config = "inventory.apps.InventoryConfig"

Wyświetl plik

@ -1,9 +1,70 @@
import tagulous
from adminsortable2.admin import SortableInlineAdminMixin
from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
from inventory.admin.base import BaseUserAdmin
from inventory.models import ItemModel
from inventory.models import ItemLinkModel, ItemModel
class ItemLinkModelInline(SortableInlineAdminMixin, admin.TabularInline):
model = ItemLinkModel
extra = 1
@admin.register(ItemModel)
class ItemModelAdmin(BaseUserAdmin):
pass
date_hierarchy = 'create_dt'
list_display = (
'kind', 'producer',
'parent', 'name',
'location', 'received_date', 'update_dt'
)
list_display_links = ('name',)
list_filter = ('kind', 'location', 'producer', 'tags')
search_fields = ('name', 'description')
fieldsets = (
(_('Internals'), {
'classes': ('collapse',),
'fields': (
'id',
'user',
)
}),
(_('Meta'), {
'classes': ('collapse',),
'fields': (
'create_dt', 'update_dt'
)
}),
(_('Basic'), {'fields': (
'kind',
('producer', 'name'),
'description',
'tags',
'fcc_id',
'parent',
'location',
)}),
(_('Lent'), {
'classes': ('collapse',),
'fields': (
'lent_to',
('lent_from_date', 'lent_until_date',)
)}),
(_('Received'), {
'classes': ('collapse',),
'fields': (
('received_from', 'received_date', 'received_price'),
)}),
(_('Handed over'), {
'classes': ('collapse',),
'fields': (
('handed_over_to', 'handed_over_date', 'handed_over_price'),
)}),
)
readonly_fields = ('id', 'create_dt', 'update_dt', 'user')
inlines = (ItemLinkModelInline,)
tagulous.admin.enhance(ItemModel, ItemModelAdmin)

Wyświetl plik

@ -1,2 +1,2 @@
from inventory.models.item import ItemModel # noqa
from inventory.models.item import ItemLinkModel, ItemModel # noqa
from inventory.models.location import LocationModel # noqa

Wyświetl plik

@ -30,11 +30,14 @@ class BaseModel(TimetrackingBaseModel):
)
tags = TagField(
blank=True,
force_lowercase=True,
force_lowercase=False,
max_count=10,
verbose_name=_('BaseModel.tags.verbose_name'),
help_text=_('BaseModel.tags.help_text')
)
def __str__(self):
return self.name
class Meta:
abstract = True

Wyświetl plik

@ -1,14 +1,28 @@
from ckeditor_uploader.fields import RichTextUploadingField
from django.db import models
from django.utils.translation import ugettext_lazy as _
from tagulous.models import TagField
from inventory.models.base import BaseModel
from inventory.models.links import BaseLink
class ItemModel(BaseModel):
"""
A Item that can be described and store somewhere ;)
"""
kind = TagField(
force_lowercase=False,
max_count=3,
verbose_name=_('ItemModel.kind.verbose_name'),
help_text=_('ItemModel.kind.help_text')
)
producer = TagField(
force_lowercase=False, blank=True,
max_count=1,
verbose_name=_('ItemModel.producer.verbose_name'),
help_text=_('ItemModel.producer.help_text')
)
description = RichTextUploadingField(
config_name='ItemModel.description',
verbose_name=_('ItemModel.description.verbose_name'),
@ -26,13 +40,107 @@ class ItemModel(BaseModel):
verbose_name=_('ItemModel.location.verbose_name'),
help_text=_('ItemModel.location.help_text')
)
parent = models.ForeignKey(
'self',
on_delete=models.SET_NULL,
blank=True, null=True,
verbose_name=_('ItemModel.parent.verbose_name'),
help_text=_('ItemModel.parent.help_text')
)
# ________________________________________________________________________
# lent
lent_to = models.CharField(
max_length=64,
blank=True, null=True,
verbose_name=_('ItemModel.lent_to.verbose_name'),
help_text=_('ItemModel.lent_to.help_text')
)
lent_from_date = models.DateField(
blank=True, null=True,
verbose_name=_('ItemModel.lent_from_date.verbose_name'),
help_text=_('ItemModel.lent_from_date.help_text')
)
lent_until_date = models.DateField(
blank=True, null=True,
verbose_name=_('ItemModel.lent_until_date.verbose_name'),
help_text=_('ItemModel.lent_until_date.help_text')
)
# ________________________________________________________________________
# received
received_from = models.CharField(
max_length=64,
blank=True, null=True,
verbose_name=_('ItemModel.received_from.verbose_name'),
help_text=_('ItemModel.received_from.help_text')
)
received_date = models.DateField(
blank=True, null=True,
verbose_name=_('ItemModel.received_date.verbose_name'),
help_text=_('ItemModel.received_date.help_text')
)
received_price = models.DecimalField(
decimal_places=2, max_digits=6, # up to 9999 with a resolution of 2 decimal places
blank=True, null=True,
verbose_name=_('ItemModel.received_price.verbose_name'),
help_text=_('ItemModel.received_price.help_text')
)
# ________________________________________________________________________
# handed over
handed_over_to = models.CharField(
max_length=64,
blank=True, null=True,
verbose_name=_('ItemModel.handed_over_to.verbose_name'),
help_text=_('ItemModel.handed_over_to.help_text')
)
handed_over_date = models.DateField(
blank=True, null=True,
verbose_name=_('ItemModel.handed_over_date.verbose_name'),
help_text=_('ItemModel.handed_over_date.help_text')
)
handed_over_price = models.DecimalField(
decimal_places=2, max_digits=6, # up to 9999 with a resolution of 2 decimal places
blank=True, null=True,
verbose_name=_('ItemModel.handed_over_price.verbose_name'),
help_text=_('ItemModel.handed_over_price.help_text')
)
def __str__(self):
if self.location_id is None:
return self.name
if self.parent_id is None:
title = self.name
else:
return f'{self.name} ({self.location})'
title = f'{self.name} {self.parent}'
if self.producer:
title = f'{self.producer} - {title}'
if self.location_id is not None:
title = f'{title} ({self.location})'
return title
class Meta:
verbose_name = _('ItemModel.verbose_name')
verbose_name_plural = _('ItemModel.verbose_name_plural')
class ItemLinkModel(BaseLink):
item = models.ForeignKey(
ItemModel, on_delete=models.CASCADE
)
def full_clean(self, **kwargs):
if self.user_id is None:
# inherit owner of this link from item instance
self.user_id = self.item.user_id
return super().full_clean(**kwargs)
class Meta:
verbose_name = _('ItemLinkModel.verbose_name')
verbose_name_plural = _('ItemLinkModel.verbose_name_plural')
ordering = ('position',)

Wyświetl plik

@ -0,0 +1,82 @@
import logging
import re
import requests
from django.db import models
from django.template.defaultfilters import striptags
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from urllib3.exceptions import HTTPError
from inventory.models.base import BaseModel
logger = logging.getLogger(__name__)
class BaseLink(BaseModel):
name = models.CharField(
max_length=255, blank=True, null=True,
verbose_name=_('BaseLink.name.verbose_name'),
help_text=_('BaseLink.name.help_text')
)
url = models.URLField(
verbose_name=_('Link.url.verbose_name'),
help_text=_('Link.url.help_text')
)
last_check = models.DateField(
blank=True, null=True, editable=False,
verbose_name=_('Link.url.verbose_name'),
help_text=_('Link.url.help_text')
)
status_code = models.PositiveSmallIntegerField(
blank=True, null=True, editable=False,
verbose_name=_('Link.status_code.verbose_name'),
help_text=_('Link.status_code.help_text')
)
page_title = models.CharField(
max_length=255, blank=True, null=True, editable=False,
verbose_name=_('Link.page_title.verbose_name'),
help_text=_('Link.page_title.help_text')
)
position = models.PositiveSmallIntegerField(
# Note: Will be set in admin via adminsortable2
# The JavaScript which performs the sorting is 1-indexed !
default=0, blank=False, null=False
)
def update_response_info(self):
try:
r = requests.get(url=self.url, allow_redirects=True, timeout=10)
except HTTPError as err:
logger.exception(f'Error get {self.url!r}', err)
self.status_code = None
self.page_title = None
return
logger.debug('%r: %r', self.url, r.headers)
self.last_check = timezone.now()
self.status_code = r.status_code
if r.status_code == 200:
titles = re.findall(r'<title>(.+?)</title>', r.text)
if not titles:
logger.warning(f'No title found in {self.url!r}')
else:
title = titles[0]
logger.info('Found title: %r', title)
self.page_title = striptags(title) # TODO: remove with a better clean method!
if not self.name:
logger.debug('set name to: %r', self.page_title)
self.name = self.page_title
def full_clean(self, **kwargs):
if self.url is not None:
self.update_response_info()
return super().full_clean(**kwargs)
class Meta:
abstract = True

Wyświetl plik

@ -26,7 +26,7 @@ class LocationModel(BaseModel):
if self.parent_id is None:
return self.name
else:
return f'{self.name} -> {self.parent}'
return f'{self.name} {self.parent}'
class Meta:
verbose_name = _('LocationModel.verbose_name')

Wyświetl plik

@ -39,12 +39,14 @@ INSTALLED_APPS = (
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'debug_toolbar', # https://github.com/jazzband/django-debug-toolbar/
'debug_toolbar', # https://github.com/jazzband/django-debug-toolbar
'bx_py_utils', # https://github.com/boxine/bx_py_utils
'import_export', # https://github.com/django-import-export/django-import-export
'ckeditor', # https://github.com/django-ckeditor/django-ckeditor
'reversion', # https://github.com/etianen/django-reversion
'reversion_compare', # https://github.com/jedie/django-reversion-compare
'tagulous', # https://github.com/radiac/django-tagulous
'adminsortable2', # https://github.com/jrief/django-admin-sortable2
'inventory.apps.InventoryConfig',
)

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -7,17 +7,49 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-16 19:49+0200\n"
"PO-Revision-Date: 2020-10-16 19:56+0200\n"
"POT-Creation-Date: 2020-10-17 18:03+0200\n"
"PO-Revision-Date: 2020-10-17 18:05+0200\n"
"Last-Translator: Jens Diemer\n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Last-Translator: Jens Diemer\n"
"Language-Team: \n"
"X-Generator: Poedit 2.3\n"
#: inventory/admin/item.py:18 inventory/models/item.py:17
msgid "ItemModel.kind.verbose_name"
msgstr "Art"
#: inventory/admin/item.py:23 inventory/models/item.py:23
msgid "ItemModel.producer.verbose_name"
msgstr "Hersteller"
#: inventory/admin/item.py:34
msgid "Internals"
msgstr "Intern"
#: inventory/admin/item.py:41
msgid "Meta"
msgstr ""
#: inventory/admin/item.py:47
msgid "Basic"
msgstr ""
#: inventory/admin/item.py:56
msgid "Lent"
msgstr "Verleih"
#: inventory/admin/item.py:62
msgid "Received"
msgstr "Erhalt"
#: inventory/admin/item.py:67
msgid "Handed over"
msgstr "Abgabe"
#: inventory/models/base.py:15
msgid "BaseModel.id.verbose_name"
msgstr "ID"
@ -32,7 +64,9 @@ msgstr "Benutzer"
#: inventory/models/base.py:24
msgid "BaseModel.user.help_text"
msgstr "Der Benutzer dem dieser Eintrag gehört und verwalten kann (Wird automatisch gesetzt)"
msgstr ""
" Der Benutzer dem dieser Eintrag gehört und verwalten kann (Wird automatisch "
"gesetzt)"
#: inventory/models/base.py:28
msgid "BaseModel.name.verbose_name"
@ -50,38 +84,168 @@ msgstr "Tags"
msgid "BaseModel.tags.help_text"
msgstr " "
#: inventory/models/item.py:14
#: inventory/models/item.py:18
msgid "ItemModel.kind.help_text"
msgstr "Type / Sorte / Gattung"
#: inventory/models/item.py:24
msgid "ItemModel.producer.help_text"
msgstr " "
#: inventory/models/item.py:28
msgid "ItemModel.description.verbose_name"
msgstr "Beschreibung"
#: inventory/models/item.py:15
#: inventory/models/item.py:29
msgid "ItemModel.description.help_text"
msgstr " "
#: inventory/models/item.py:20
#: inventory/models/item.py:34
msgid "ItemModel.fcc_id.verbose_name"
msgstr "FCC ID"
#: inventory/models/item.py:21
#: inventory/models/item.py:35
msgid "ItemModel.fcc_id.help_text"
msgstr "Eindeutige Nummer der FCC"
#: inventory/models/item.py:26
#: inventory/models/item.py:40
msgid "ItemModel.location.verbose_name"
msgstr "Standort"
#: inventory/models/item.py:27
#: inventory/models/item.py:41
msgid "ItemModel.location.help_text"
msgstr "Wo ist dieser Gegenstand eingelagert?"
#: inventory/models/item.py:34
#: inventory/models/item.py:47
msgid "ItemModel.parent.verbose_name"
msgstr "Übergeordnet"
#: inventory/models/item.py:48
msgid "ItemModel.parent.help_text"
msgstr ""
"Eingebaut in einem anderen Gegenstand? (e.g.: Grafikkarte eingebaut in "
"Rechner)"
#: inventory/models/item.py:57
msgid "ItemModel.lent_to.verbose_name"
msgstr "Verliehen an"
#: inventory/models/item.py:58
msgid "ItemModel.lent_to.help_text"
msgstr " "
#: inventory/models/item.py:62
msgid "ItemModel.lent_from_date.verbose_name"
msgstr "Verleih Abgabe Datum"
#: inventory/models/item.py:63
msgid "ItemModel.lent_from_date.help_text"
msgstr "Zeitpunkt ab dem dieser Gegenstand verliehen wurde"
#: inventory/models/item.py:67
msgid "ItemModel.lent_until_date.verbose_name"
msgstr "Verliehen bis"
#: inventory/models/item.py:68
msgid "ItemModel.lent_until_date.help_text"
msgstr "Bis wann sollte der Gegenstand wieder zurück sein?"
#: inventory/models/item.py:77
msgid "ItemModel.received_from.verbose_name"
msgstr "Erhalten von"
#: inventory/models/item.py:78
msgid "ItemModel.received_from.help_text"
msgstr "Von wem wurde dieser Gegenstand erhalten?"
#: inventory/models/item.py:82
msgid "ItemModel.received_date.verbose_name"
msgstr "Erhalten am"
#: inventory/models/item.py:83
msgid "ItemModel.received_date.help_text"
msgstr "Wann wurde dieser Gegenstand erhalten?"
#: inventory/models/item.py:88
msgid "ItemModel.received_price.verbose_name"
msgstr "Preis"
#: inventory/models/item.py:89
msgid "ItemModel.received_price.help_text"
msgstr "Welcher Preis wurde für diesen Gegenstand gezahlt?"
#: inventory/models/item.py:98
msgid "ItemModel.handed_over_to.verbose_name"
msgstr "Abgabe an"
#: inventory/models/item.py:99
msgid "ItemModel.handed_over_to.help_text"
msgstr "An wem wurde dieser Gegenstand abgegeben?"
#: inventory/models/item.py:103
msgid "ItemModel.handed_over_date.verbose_name"
msgstr "Abgabedatum"
#: inventory/models/item.py:104
msgid "ItemModel.handed_over_date.help_text"
msgstr "Zeitpunkt der Abgabe"
#: inventory/models/item.py:109
msgid "ItemModel.handed_over_price.verbose_name"
msgstr "Abgabepreis"
#: inventory/models/item.py:110
msgid "ItemModel.handed_over_price.help_text"
msgstr "Wurde bei der Abgabe Geld eingenommen?"
#: inventory/models/item.py:128
msgid "ItemModel.verbose_name"
msgstr "Gegenstand"
#: inventory/models/item.py:35
#: inventory/models/item.py:129
msgid "ItemModel.verbose_name_plural"
msgstr "Gegenstände"
#: inventory/models/item.py:144
msgid "ItemLinkModel.verbose_name"
msgstr "Link"
#: inventory/models/item.py:145
msgid "ItemLinkModel.verbose_name_plural"
msgstr "Links"
#: inventory/models/links.py:20
msgid "BaseLink.name.verbose_name"
msgstr "Name"
#: inventory/models/links.py:21
msgid "BaseLink.name.help_text"
msgstr " "
#: inventory/models/links.py:24 inventory/models/links.py:29
msgid "Link.url.verbose_name"
msgstr "URL"
#: inventory/models/links.py:25 inventory/models/links.py:30
msgid "Link.url.help_text"
msgstr ""
#: inventory/models/links.py:34
msgid "Link.status_code.verbose_name"
msgstr "Status-Code"
#: inventory/models/links.py:35
msgid "Link.status_code.help_text"
msgstr "Der Server meldete diesen Status-Code beim letzten abruf zurück."
#: inventory/models/links.py:39
msgid "Link.page_title.verbose_name"
msgstr "Seitentitel"
#: inventory/models/links.py:40
msgid "Link.page_title.help_text"
msgstr "Der Seiten-Titel wird automatisch ermittelt."
#: inventory/models/location.py:14
msgid "LocationModel.description.verbose_name"
msgstr "Beschreibung"
@ -98,18 +262,38 @@ msgstr "Übergeordneter Standort"
msgid "LocationModel.parent.help_text"
msgstr "Standorte können verschachtelt werden. Bsp: Der Karton 12 in Schrank 3"
#: inventory/models/location.py:29
#: inventory/models/location.py:32
msgid "LocationModel.verbose_name"
msgstr "Standort"
#: inventory/models/location.py:30
#: inventory/models/location.py:33
msgid "LocationModel.verbose_name_plural"
msgstr "Standorte"
#: inventory_project/settings.py:110
#: inventory_project/settings.py:111
msgid "German"
msgstr ""
#: inventory_project/settings.py:111
#: inventory_project/settings.py:112
msgid "English"
msgstr ""
#, fuzzy
#~| msgid "ItemModel.fcc_id.verbose_name"
#~ msgid "ItemModel.received_url.verbose_name"
#~ msgstr "FCC ID"
#, fuzzy
#~| msgid "ItemModel.fcc_id.help_text"
#~ msgid "ItemModel.received_url.help_text"
#~ msgstr "Eindeutige Nummer der FCC"
#, fuzzy
#~| msgid "ItemModel.verbose_name"
#~ msgid "ItemModel.handed_over_url.verbose_name"
#~ msgstr "Gegenstand"
#, fuzzy
#~| msgid "ItemModel.location.help_text"
#~ msgid "ItemModel.handed_over_url.help_text"
#~ msgstr "Wo ist dieser Gegenstand eingelagert?"

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -7,17 +7,53 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-16 19:49+0200\n"
"POT-Creation-Date: 2020-10-17 18:03+0200\n"
"PO-Revision-Date: 2020-10-16 19:58+0200\n"
"Last-Translator: Jens Diemer\n"
"Language-Team: \n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Last-Translator: Jens Diemer\n"
"Language-Team: \n"
"X-Generator: Poedit 2.3\n"
#: inventory/admin/item.py:18 inventory/models/item.py:17
#, fuzzy
#| msgid "ItemModel.verbose_name"
msgid "ItemModel.kind.verbose_name"
msgstr "Item"
#: inventory/admin/item.py:23 inventory/models/item.py:23
#, fuzzy
#| msgid "ItemModel.verbose_name"
msgid "ItemModel.producer.verbose_name"
msgstr "Item"
#: inventory/admin/item.py:34
msgid "Internals"
msgstr ""
#: inventory/admin/item.py:41
msgid "Meta"
msgstr ""
#: inventory/admin/item.py:47
msgid "Basic"
msgstr ""
#: inventory/admin/item.py:56
msgid "Lent"
msgstr ""
#: inventory/admin/item.py:62
msgid "Received"
msgstr ""
#: inventory/admin/item.py:67
msgid "Handed over"
msgstr ""
#: inventory/models/base.py:15
msgid "BaseModel.id.verbose_name"
msgstr "ID"
@ -32,7 +68,9 @@ msgstr "User"
#: inventory/models/base.py:24
msgid "BaseModel.user.help_text"
msgstr "The user who is the owner of this entry and can manage it (will be set automatically)"
msgstr ""
" The user who is the owner of this entry and can manage it (will be set "
"automatically)"
#: inventory/models/base.py:28
msgid "BaseModel.name.verbose_name"
@ -50,38 +88,230 @@ msgstr "Tags"
msgid "BaseModel.tags.help_text"
msgstr " "
#: inventory/models/item.py:14
#: inventory/models/item.py:18
#, fuzzy
#| msgid "ItemModel.fcc_id.help_text"
msgid "ItemModel.kind.help_text"
msgstr "Unique number from the FCC"
#: inventory/models/item.py:24
#, fuzzy
#| msgid "ItemModel.fcc_id.help_text"
msgid "ItemModel.producer.help_text"
msgstr "Unique number from the FCC"
#: inventory/models/item.py:28
msgid "ItemModel.description.verbose_name"
msgstr "Description"
#: inventory/models/item.py:15
#: inventory/models/item.py:29
msgid "ItemModel.description.help_text"
msgstr " "
#: inventory/models/item.py:20
#: inventory/models/item.py:34
msgid "ItemModel.fcc_id.verbose_name"
msgstr "FCC ID"
#: inventory/models/item.py:21
#: inventory/models/item.py:35
msgid "ItemModel.fcc_id.help_text"
msgstr "Unique number from the FCC"
#: inventory/models/item.py:26
#: inventory/models/item.py:40
msgid "ItemModel.location.verbose_name"
msgstr "Location"
#: inventory/models/item.py:27
#: inventory/models/item.py:41
msgid "ItemModel.location.help_text"
msgstr " "
#: inventory/models/item.py:34
#: inventory/models/item.py:47
#, fuzzy
#| msgid "ItemModel.fcc_id.verbose_name"
msgid "ItemModel.parent.verbose_name"
msgstr "FCC ID"
#: inventory/models/item.py:48
#, fuzzy
#| msgid "ItemModel.fcc_id.help_text"
msgid "ItemModel.parent.help_text"
msgstr "Unique number from the FCC"
#: inventory/models/item.py:57
#, fuzzy
#| msgid "ItemModel.location.verbose_name"
msgid "ItemModel.lent_to.verbose_name"
msgstr "Location"
#: inventory/models/item.py:58
#, fuzzy
#| msgid "ItemModel.location.help_text"
msgid "ItemModel.lent_to.help_text"
msgstr " "
#: inventory/models/item.py:62
#, fuzzy
#| msgid "ItemModel.location.verbose_name"
msgid "ItemModel.lent_from_date.verbose_name"
msgstr "Location"
#: inventory/models/item.py:63
#, fuzzy
#| msgid "ItemModel.location.help_text"
msgid "ItemModel.lent_from_date.help_text"
msgstr " "
#: inventory/models/item.py:67
#, fuzzy
#| msgid "ItemModel.location.verbose_name"
msgid "ItemModel.lent_until_date.verbose_name"
msgstr "Location"
#: inventory/models/item.py:68
#, fuzzy
#| msgid "ItemModel.location.help_text"
msgid "ItemModel.lent_until_date.help_text"
msgstr " "
#: inventory/models/item.py:77
#, fuzzy
#| msgid "ItemModel.fcc_id.verbose_name"
msgid "ItemModel.received_from.verbose_name"
msgstr "FCC ID"
#: inventory/models/item.py:78
#, fuzzy
#| msgid "ItemModel.fcc_id.help_text"
msgid "ItemModel.received_from.help_text"
msgstr "Unique number from the FCC"
#: inventory/models/item.py:82
#, fuzzy
#| msgid "ItemModel.fcc_id.verbose_name"
msgid "ItemModel.received_date.verbose_name"
msgstr "FCC ID"
#: inventory/models/item.py:83
#, fuzzy
#| msgid "ItemModel.fcc_id.help_text"
msgid "ItemModel.received_date.help_text"
msgstr "Unique number from the FCC"
#: inventory/models/item.py:88
#, fuzzy
#| msgid "ItemModel.description.verbose_name"
msgid "ItemModel.received_price.verbose_name"
msgstr "Description"
#: inventory/models/item.py:89
#, fuzzy
#| msgid "ItemModel.description.help_text"
msgid "ItemModel.received_price.help_text"
msgstr " "
#: inventory/models/item.py:98
#, fuzzy
#| msgid "ItemModel.description.verbose_name"
msgid "ItemModel.handed_over_to.verbose_name"
msgstr "Description"
#: inventory/models/item.py:99
#, fuzzy
#| msgid "ItemModel.description.help_text"
msgid "ItemModel.handed_over_to.help_text"
msgstr " "
#: inventory/models/item.py:103
#, fuzzy
#| msgid "ItemModel.description.verbose_name"
msgid "ItemModel.handed_over_date.verbose_name"
msgstr "Description"
#: inventory/models/item.py:104
#, fuzzy
#| msgid "ItemModel.description.help_text"
msgid "ItemModel.handed_over_date.help_text"
msgstr " "
#: inventory/models/item.py:109
#, fuzzy
#| msgid "ItemModel.description.verbose_name"
msgid "ItemModel.handed_over_price.verbose_name"
msgstr "Description"
#: inventory/models/item.py:110
#, fuzzy
#| msgid "ItemModel.description.help_text"
msgid "ItemModel.handed_over_price.help_text"
msgstr " "
#: inventory/models/item.py:128
msgid "ItemModel.verbose_name"
msgstr "Item"
#: inventory/models/item.py:35
#: inventory/models/item.py:129
msgid "ItemModel.verbose_name_plural"
msgstr "Items"
#: inventory/models/item.py:144
#, fuzzy
#| msgid "ItemModel.verbose_name"
msgid "ItemLinkModel.verbose_name"
msgstr "Item"
#: inventory/models/item.py:145
#, fuzzy
#| msgid "ItemModel.verbose_name_plural"
msgid "ItemLinkModel.verbose_name_plural"
msgstr "Items"
#: inventory/models/links.py:20
#, fuzzy
#| msgid "BaseModel.name.verbose_name"
msgid "BaseLink.name.verbose_name"
msgstr "Name"
#: inventory/models/links.py:21
#, fuzzy
#| msgid "BaseModel.name.help_text"
msgid "BaseLink.name.help_text"
msgstr " "
#: inventory/models/links.py:24 inventory/models/links.py:29
#, fuzzy
#| msgid "LocationModel.verbose_name"
msgid "Link.url.verbose_name"
msgstr "Location"
#: inventory/models/links.py:25 inventory/models/links.py:30
#, fuzzy
#| msgid "LocationModel.parent.help_text"
msgid "Link.url.help_text"
msgstr "Locations can be nested. Example: The box 12 in cupboard 3"
#: inventory/models/links.py:34
#, fuzzy
#| msgid "LocationModel.verbose_name"
msgid "Link.status_code.verbose_name"
msgstr "Location"
#: inventory/models/links.py:35
#, fuzzy
#| msgid "BaseModel.id.help_text"
msgid "Link.status_code.help_text"
msgstr " "
#: inventory/models/links.py:39
#, fuzzy
#| msgid "LocationModel.parent.verbose_name"
msgid "Link.page_title.verbose_name"
msgstr "Parent"
#: inventory/models/links.py:40
#, fuzzy
#| msgid "LocationModel.parent.help_text"
msgid "Link.page_title.help_text"
msgstr "Locations can be nested. Example: The box 12 in cupboard 3"
#: inventory/models/location.py:14
msgid "LocationModel.description.verbose_name"
msgstr "Description"
@ -98,18 +328,38 @@ msgstr "Parent"
msgid "LocationModel.parent.help_text"
msgstr "Locations can be nested. Example: The box 12 in cupboard 3"
#: inventory/models/location.py:29
#: inventory/models/location.py:32
msgid "LocationModel.verbose_name"
msgstr "Location"
#: inventory/models/location.py:30
#: inventory/models/location.py:33
msgid "LocationModel.verbose_name_plural"
msgstr "Locations"
#: inventory_project/settings.py:110
#: inventory_project/settings.py:111
msgid "German"
msgstr ""
#: inventory_project/settings.py:111
#: inventory_project/settings.py:112
msgid "English"
msgstr ""
#, fuzzy
#~| msgid "ItemModel.fcc_id.verbose_name"
#~ msgid "ItemModel.received_url.verbose_name"
#~ msgstr "FCC ID"
#, fuzzy
#~| msgid "ItemModel.fcc_id.help_text"
#~ msgid "ItemModel.received_url.help_text"
#~ msgstr "Unique number from the FCC"
#, fuzzy
#~| msgid "ItemModel.verbose_name"
#~ msgid "ItemModel.handed_over_url.verbose_name"
#~ msgstr "Item"
#, fuzzy
#~| msgid "ItemModel.location.help_text"
#~ msgid "ItemModel.handed_over_url.help_text"
#~ msgstr " "

22
poetry.lock wygenerowano
Wyświetl plik

@ -63,7 +63,7 @@ webencodings = "*"
[[package]]
name = "bx-py-utils"
version = "0.0.1"
version = "0.0.2"
description = "Various Python / Django utility functions"
category = "main"
optional = false
@ -204,6 +204,17 @@ sqlparse = ">=0.2.2"
argon2 = ["argon2-cffi (>=16.1.0)"]
bcrypt = ["bcrypt"]
[[package]]
name = "django-admin-sortable2"
version = "0.7.7"
description = "Generic drag-and-drop sorting for the List, the Stacked- and the Tabular-Inlines Views in the Django Admin"
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
Django = ">=1.8,<3.2"
[[package]]
name = "django-ckeditor"
version = "6.0.0"
@ -968,7 +979,7 @@ testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pyt
[metadata]
lock-version = "1.1"
python-versions = ">=3.7,<4.0.0"
content-hash = "81bfc3b102483db10838f298a425e9436883c93f06940662e7e7b85b4b9d8308"
content-hash = "d164a00462dfbb50f85ba6882679350cdfc82ff65e48a0d5d2b0fda6068a4b30"
[metadata.files]
appdirs = [
@ -995,8 +1006,8 @@ bleach = [
{file = "bleach-3.2.1.tar.gz", hash = "sha256:52b5919b81842b1854196eaae5ca29679a2f2e378905c346d3ca8227c2c66080"},
]
bx-py-utils = [
{file = "bx_py_utils-0.0.1-py3-none-any.whl", hash = "sha256:f553db431f98482abf6a7cf4b416af882922ddd7487bcf0713fd3031b5855a09"},
{file = "bx_py_utils-0.0.1.tar.gz", hash = "sha256:8ed6cd3c6dd31da01ff72b06f2d85983f5680d494c37d058ae6ba2a82f0ab3e5"},
{file = "bx_py_utils-0.0.2-py3-none-any.whl", hash = "sha256:c39c6be8d18c959dd314febfc8a3b7d8f73315cd1cba91fbbb4e602e5e97fd0c"},
{file = "bx_py_utils-0.0.2.tar.gz", hash = "sha256:f956772cbf84329c3d9cd22b00d5e01a37ca578104bd9474e15dabc6e6bf6529"},
]
certifi = [
{file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
@ -1131,6 +1142,9 @@ django = [
{file = "Django-2.2.16-py3-none-any.whl", hash = "sha256:83ced795a0f239f41d8ecabf51cc5fad4b97462a6008dc12e5af3cb9288724ec"},
{file = "Django-2.2.16.tar.gz", hash = "sha256:62cf45e5ee425c52e411c0742e641a6588b7e8af0d2c274a27940931b2786594"},
]
django-admin-sortable2 = [
{file = "django-admin-sortable2-0.7.7.tar.gz", hash = "sha256:65c8a02300e178b4a02c904b6f4dce6e528c58f5ecab3907dfba3540da51b862"},
]
django-ckeditor = [
{file = "django-ckeditor-6.0.0.tar.gz", hash = "sha256:29fd1a333cb9741ac2c3fd4e427a5c00115ed33a2389716a09af7656022dcdde"},
{file = "django_ckeditor-6.0.0-py2.py3-none-any.whl", hash = "sha256:cc2d377f1bdcd4ca1540caeebe85f7e2cd006198d57328ef6c718d3eaa5a0846"},

Wyświetl plik

@ -50,6 +50,8 @@ django-reversion-compare = "*" # https://github.com/jedie/django-reversion-comp
django-ckeditor = "*" # https://github.com/django-ckeditor/django-ckeditor
bx_py_utils = "*" # https://github.com/boxine/bx_py_utils
django-tagulous = "*" # https://github.com/radiac/django-tagulous
django-admin-sortable2 = "*" # https://github.com/jrief/django-admin-sortable2
requests = "*" # https://github.com/psf/requests
[tool.poetry.dev-dependencies]
poetry-publish = "*" # https://github.com/jedie/poetry-publish