diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py index 66dd1a0674..86381c70ee 100644 --- a/InvenTree/InvenTree/api_version.py +++ b/InvenTree/InvenTree/api_version.py @@ -2,11 +2,18 @@ # InvenTree API version -INVENTREE_API_VERSION = 68 +INVENTREE_API_VERSION = 69 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about +v69 -> 2022-08-01 : https://github.com/inventree/InvenTree/pull/3443 + - Updates the PartCategory list API: + - Improve query efficiency: O(n) becomes O(1) + - Rename 'parts' field to 'part_count' + - Updates the StockLocation list API: + - Improve query efficiency: O(n) becomes O(1) + v68 -> 2022-07-27 : https://github.com/inventree/InvenTree/pull/3417 - Allows SupplierPart list to be filtered by SKU value - Allows SupplierPart list to be filtered by MPN value diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py index 0d2f6d9ab7..7ad1781e61 100644 --- a/InvenTree/InvenTree/helpers.py +++ b/InvenTree/InvenTree/helpers.py @@ -54,6 +54,42 @@ def generateTestKey(test_name): return key +def constructPathString(path, max_chars=250): + """Construct a 'path string' for the given path. + + Arguments: + path: A list of strings e.g. ['path', 'to', 'location'] + max_chars: Maximum number of characters + """ + + pathstring = '/'.join(path) + + idx = 0 + + # Replace middle elements to limit the pathstring + if len(pathstring) > max_chars: + mid = len(path) // 2 + path_l = path[0:mid] + path_r = path[mid:] + + # Ensure the pathstring length is limited + while len(pathstring) > max_chars: + + # Remove an element from the list + if idx % 2 == 0: + path_l = path_l[:-1] + else: + path_r = path_r[1:] + + subpath = path_l + ['...'] + path_r + + pathstring = '/'.join(subpath) + + idx += 1 + + return pathstring + + def getMediaUrl(filename): """Return the qualified access path for the given file, under the media directory.""" return os.path.join(MEDIA_URL, str(filename)) diff --git a/InvenTree/InvenTree/models.py b/InvenTree/InvenTree/models.py index 67d0989188..90741d51dd 100644 --- a/InvenTree/InvenTree/models.py +++ b/InvenTree/InvenTree/models.py @@ -500,14 +500,25 @@ class InvenTreeTree(MPTTModel): } def save(self, *args, **kwargs): - """Provide better error for invalid moves.""" + """Custom save method for InvenTreeTree abstract model""" + try: super().save(*args, **kwargs) except InvalidMove: + # Provide better error for parent selection raise ValidationError({ 'parent': _("Invalid choice"), }) + # Re-calculate the 'pathstring' field + pathstring = InvenTree.helpers.constructPathString( + [item.name for item in self.path] + ) + + if pathstring != self.pathstring: + self.pathstring = pathstring + super().save(force_update=True) + class Meta: """Metaclass defines extra model properties.""" @@ -542,6 +553,14 @@ class InvenTreeTree(MPTTModel): verbose_name=_("parent"), related_name='children') + # The 'pathstring' field is calculated each time the model is saved + pathstring = models.CharField( + blank=True, + max_length=250, + verbose_name=_('Path'), + help_text=_('Path') + ) + @property def item_count(self): """Return the number of items which exist *under* this node in the tree. @@ -612,14 +631,6 @@ class InvenTreeTree(MPTTModel): """ return self.parentpath + [self] - @property - def pathstring(self): - """Get a string representation for the path of this item. - - e.g. "Top/Second/Third/This" - """ - return '/'.join([item.name for item in self.path]) - def __str__(self): """String representation of a category is the full path to that category.""" return "{path} - {desc}".format(path=self.pathstring, desc=self.description) diff --git a/InvenTree/common/serializers.py b/InvenTree/common/serializers.py index 3bec482ff6..3ff2fc803a 100644 --- a/InvenTree/common/serializers.py +++ b/InvenTree/common/serializers.py @@ -161,8 +161,8 @@ class NotificationMessageSerializer(InvenTreeModelSerializer): """Function to resolve generic object reference to target.""" target = get_objectreference(obj, 'target_content_type', 'target_object_id') - if 'link' not in target: - # Check if objekt has an absolute_url function + if target and 'link' not in target: + # Check if object has an absolute_url function if hasattr(obj.target_object, 'get_absolute_url'): target['link'] = obj.target_object.get_absolute_url() else: @@ -174,6 +174,7 @@ class NotificationMessageSerializer(InvenTreeModelSerializer): f'admin:{meta.db_table}_change', kwargs={'object_id': obj.target_object_id} )) + return target def get_source(self, obj): diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po index a4b34a7e38..6b152e9d76 100644 --- a/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:34\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:44\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API endpoint nebyl nalezen" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "Popis (volitelně)" msgid "parent" msgstr "nadřazený" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Čeština" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Němčina" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Řečtina" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Angličtina" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Španělština" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Španělština (Mexiko)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Farsi / Perština" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Francouzština" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Hebrejština" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Maďarština" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Italština" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japonština" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Korejština" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Nizozemština" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norština" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Polština" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Ruština" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Švédština" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Thajština" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Turečtina" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnamština" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Čínština" diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 9d10549746..21f6faa06d 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:44\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API-Endpunkt nicht gefunden" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "Fehlerdetails finden Sie im Admin-Panel" @@ -91,15 +91,15 @@ msgstr "E-Mail Adressen müssen übereinstimmen." #: InvenTree/helpers.py:136 msgid "Connection error" -msgstr "" +msgstr "Verbindungsfehler" #: InvenTree/helpers.py:140 InvenTree/helpers.py:145 msgid "Server responded with invalid status code" -msgstr "" +msgstr "Server antwortete mit ungültigem Statuscode" #: InvenTree/helpers.py:142 msgid "Exception occurred" -msgstr "" +msgstr "Ausnahme aufgetreten" #: InvenTree/helpers.py:150 msgid "Server responded with invalid Content-Length value" @@ -107,15 +107,15 @@ msgstr "" #: InvenTree/helpers.py:153 msgid "Image size is too large" -msgstr "" +msgstr "Bild ist zu groß" #: InvenTree/helpers.py:165 msgid "Image download exceeded maximum size" -msgstr "" +msgstr "Bilddownload überschreitet maximale Größe" #: InvenTree/helpers.py:170 msgid "Remote server returned empty response" -msgstr "" +msgstr "Remote-Server gab leere Antwort zurück" #: InvenTree/helpers.py:178 msgid "Supplied URL is not a valid image file" @@ -165,7 +165,7 @@ msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) üb #: InvenTree/models.py:236 msgid "Improperly formatted pattern" -msgstr "" +msgstr "Falsch formatiertes Muster" #: InvenTree/models.py:243 msgid "Unknown format key specified" @@ -185,7 +185,7 @@ msgstr "" #: InvenTree/models.py:304 msgid "Reference number is too large" -msgstr "" +msgstr "Referenznummer ist zu groß" #: InvenTree/models.py:382 msgid "Missing file" @@ -318,11 +318,11 @@ msgstr "Beschreibung (optional)" msgid "parent" msgstr "Eltern" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "Serverfehler" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." @@ -387,105 +387,105 @@ msgstr "URL" #: InvenTree/serializers.py:603 msgid "URL of remote image file" -msgstr "" +msgstr "URL der Remote-Bilddatei" #: InvenTree/serializers.py:617 msgid "Downloading images from remote URL is not enabled" -msgstr "" +msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Tschechisch" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Griechisch" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Spanisch (Mexikanisch)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Persisch" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Ungarisch" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "Portugiesisch" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "Portugiesisch (Brasilien)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Chinesisch" @@ -1739,7 +1739,7 @@ msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" #: common/models.py:862 msgid "Download Size Limit" -msgstr "" +msgstr "Download-Größenlimit" #: common/models.py:863 msgid "Maximum allowable download size for remote image" @@ -1747,11 +1747,11 @@ msgstr "" #: common/models.py:874 msgid "Require confirm" -msgstr "" +msgstr "Bestätigung verpflichtend" #: common/models.py:875 msgid "Require explicit user confirmation for certain action." -msgstr "" +msgstr "Eine ausdrückliche Benutzerbestätigung für bestimmte Aktionen erfordern." #: common/models.py:881 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" @@ -1975,7 +1975,7 @@ msgstr "Labeldruck über die Website aktivieren" #: common/models.py:1072 msgid "Label Image DPI" -msgstr "" +msgstr "Label Bild DPI" #: common/models.py:1073 msgid "DPI resolution when generating image files to supply to label printing plugins" @@ -4460,7 +4460,7 @@ msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?" #: part/models.py:922 msgid "Part notes" -msgstr "" +msgstr "Teile-Notizen" #: part/models.py:924 msgid "BOM checksum" @@ -6141,7 +6141,7 @@ msgstr "Test Notizen" #: stock/serializers.py:72 msgid "Serial number is too large" -msgstr "" +msgstr "Seriennummer ist zu lang" #: stock/serializers.py:173 msgid "Purchase price of this stock item" @@ -6630,11 +6630,11 @@ msgstr "Keine Berechtigung zum Anzeigen dieser Seite." #: templates/403_csrf.html:11 msgid "Authentication Failure" -msgstr "" +msgstr "Authentifizierungsfehler" #: templates/403_csrf.html:14 msgid "You have been logged out from InvenTree." -msgstr "" +msgstr "Sie wurden von InvenTree abgemeldet." #: templates/403_csrf.html:19 templates/navbar.html:142 msgid "Login" @@ -6881,7 +6881,7 @@ msgstr "Plugin-Einstellungen" #: templates/InvenTree/settings/plugin.html:16 msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -msgstr "" +msgstr "Wenn Sie die folgenden Einstellungen ändern, müssen Sie InvenTree sofort neu starten. Ändern Sie dies nicht während der aktiven Nutzung." #: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" @@ -7889,11 +7889,11 @@ msgstr "Dateiformat auswählen" #: templates/js/translated/bom.js:295 msgid "Multi Level BOM" -msgstr "" +msgstr "Multilevel Stückliste" #: templates/js/translated/bom.js:296 msgid "Include BOM data for subassemblies" -msgstr "" +msgstr "Stücklisten-Daten für Untergruppen einbeziehen" #: templates/js/translated/bom.js:301 msgid "Levels" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 724cb926b7..79c7569d7a 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 536322c0dd..7e4ef2ab25 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" +"POT-Creation-Date: 2022-07-31 13:38+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -319,11 +319,11 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -394,99 +394,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index f54f9cb0f4..ef2774afe3 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 536322c0dd..7e4ef2ab25 100644 --- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" +"POT-Creation-Date: 2022-07-31 13:38+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -319,11 +319,11 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -394,99 +394,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po index d520d6fe28..7a270385b1 100644 --- a/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "Address e API peida nashod" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 53d6e81d0d..2d929712e7 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "Point de terminaison de l'API introuvable" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'administration" @@ -318,11 +318,11 @@ msgstr "Description (facultative)" msgid "parent" msgstr "parent" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "Erreur serveur" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "Une erreur a été enregistrée par le serveur." @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Tchèque" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Allemand" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Grec" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Anglais" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Espagnol" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Espagnol (Mexique)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Farsi / Perse" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Français" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Hébreu" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Hongrois" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Italien" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japonais" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Coréen" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Néerlandais" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norvégien" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "Portugais" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "Portugais (Brésilien)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Russe" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Suédois" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Thaïlandais" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnamien" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Chinois" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index be9b79e0c1..914f357f79 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "תיאור (לא חובה)" msgid "parent" msgstr "מקור" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "גרמנית" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "יוונית" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "אנגלית" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "ספרדית" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "ספרדית (מקסיקנית)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "צרפתית" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "עברית" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "איטלקית" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "יפנית" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "קוריאנית" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "הולנדית" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "נורווגית" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "פולנית" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "רוסית" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "שוודית" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "תאילנדית" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "טורקית" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "ווייטנאמית" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "סינית" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index e3173b3b33..67294b25d6 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API funkciót nem találom" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "A hiba részleteit megtalálod az admin panelen" @@ -318,11 +318,11 @@ msgstr "Leírás (opcionális)" msgid "parent" msgstr "szülő" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "Kiszolgálóhiba" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." @@ -393,99 +393,99 @@ msgstr "A távoli kép URL-je" msgid "Downloading images from remote URL is not enabled" msgstr "Képek letöltése távoli URL-ről nem engedélyezett" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Cseh" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Német" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Görög" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Angol" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Spanyol (Mexikói)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Fárszi/Perzsa" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Francia" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Héber" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Magyar" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Olasz" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japán" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Koreai" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Holland" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norvég" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Lengyel" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "Portugál" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "Portugál (Brazíliai)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Orosz" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Svéd" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Tháj" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Török" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnámi" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Kínai" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index eccfc9757d..2128bcf992 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API endpoint tidak ditemukan" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 6386200352..b5c8e544a9 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "Endpoint API non trovato" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministrazione" @@ -318,11 +318,11 @@ msgstr "Descrizione (opzionale)" msgid "parent" msgstr "genitore" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "Errore del server" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Ceco" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Tedesco" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Greco" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Inglese" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Spagnolo (Messicano)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Farsi / Persiano" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Francese" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Ungherese" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "Portoghese" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "Portoghese (Brasile)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Cinese" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index b275466619..411c1b3b8e 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "APIエンドポイントが見つかりません" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "説明 (オプション)" msgid "parent" msgstr "親" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "ドイツ語" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "ギリシャ語" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "英語" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "スペイン語" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "スペイン語(メキシコ)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "フランス語" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "ヘブライ語" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "ハンガリー語" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "イタリア語" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "日本語" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "韓国語" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "オランダ語" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "ノルウェー語" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "ロシア語" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "スウェーデン語" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "タイ語" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "ベトナム語" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "中国語" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 41ede223a8..0d8e8bebb4 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "설명 (선택 사항)" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "체코어" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "독일어" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "그리스어" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "영어" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "스페인어" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "스페인어 (멕시코)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "파르시어/페르시아어" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "프랑스어" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "히브리어" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "헝가리어" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "이탈리아어" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "일본어" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "한국어" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "네덜란드어" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "노르웨이어" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "폴란드어" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "러시아어" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "스웨덴어" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "태국어" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "터키어" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "베트남어" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "중국어" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index a97259b65e..231369f4b2 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API eindpunt niet gevonden" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "Error details kunnen worden gevonden in het admin scherm" @@ -318,11 +318,11 @@ msgstr "Omschrijving (optioneel)" msgid "parent" msgstr "bovenliggende" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "Serverfout" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Tsjechisch" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Duits" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Grieks" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Engels" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Spaans" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Spaans (Mexicaans)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Farsi / Perzisch" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Frans" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Hongaars" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "Portugees" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "Portugees (Braziliaans)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Chinees" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 6b1978a191..da16ff64bc 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API endepunkt ikke funnet" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "Beskrivelse (valgfritt)" msgid "parent" msgstr "overkategori" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Tsjekkisk" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Gresk" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Spansk (Meksikansk)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Farsi / Persisk" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Ungarsk" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "Portugisisk" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasilian)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Kinesisk" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 967bb91b2c..db41244654 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "Nie znaleziono punktu końcowego API" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym" @@ -318,11 +318,11 @@ msgstr "Opis (opcjonalny)" msgid "parent" msgstr "nadrzędny" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "Błąd serwera" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Czeski" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Niemiecki" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Grecki" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Angielski" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Hiszpański (Meksyk)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Perski" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Węgierski" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "Portugalski" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazylijski)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Chiński" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index a3f4b74431..faa0cbe390 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API endpoint não encontrado" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "Detalhes do erro podem ser encontrados no painel de administrador" @@ -318,11 +318,11 @@ msgstr "Descricao (opicional)" msgid "parent" msgstr "parent" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "Erro de servidor" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "Log de erro salvo pelo servidor." @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po index 209f9ff8a1..51041c1915 100644 --- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" +"POT-Creation-Date: 2022-07-31 13:38+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -319,11 +319,11 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -394,99 +394,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 85f4c74869..5437b880ea 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "Конечная точка API не обнаружена" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "Описание (необязательно)" msgid "parent" msgstr "родитель" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Немецкий" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Греческий" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Английский" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Испанский" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Испанский (Мексика)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Французский" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Венгерский" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Китайский" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index d0f0435a60..3b1887bf7a 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API-slutpunkt hittades inte" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "Information om felet finns under Error i adminpanelen" @@ -318,11 +318,11 @@ msgstr "Beskrivning (valfritt)" msgid "parent" msgstr "överordnad" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "Serverfel" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "Tjeckiska" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Tyska" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Grekiska" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "Engelska" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "Spanska" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "Spanska (Mexikanska)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "Farsi / Persiska" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Franska" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Ungerska" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "Italienska" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japanska" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Koreanska" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norska" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Polska" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "Portugisiska" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "Portugisiska (brasiliansk)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Ryska" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "Svenska" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Thailändska" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Kinesiska" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 0987c89202..e3e74c70f6 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:34\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:44\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index fd5785752b..1ad659b127 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "API uç noktası bulunamadı" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "Açıklama (isteğe bağlı)" msgid "parent" msgstr "üst" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "Almanca" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "Yunanca" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "İngilizce" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "İspanyolca(Meksika)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "Fransızca" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "Macarca" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "Vietnamca" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "Çince" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index 01a3488e26..4f692a140c 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "" @@ -318,11 +318,11 @@ msgstr "Mô tả (tùy chọn)" msgid "parent" msgstr "" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index a4504556de..ff18868638 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 23:22+0000\n" -"PO-Revision-Date: 2022-07-30 23:33\n" +"POT-Creation-Date: 2022-07-31 13:18+0000\n" +"PO-Revision-Date: 2022-07-31 23:43\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -21,7 +21,7 @@ msgstr "" msgid "API endpoint not found" msgstr "未找到 API 端点" -#: InvenTree/exceptions.py:62 +#: InvenTree/exceptions.py:68 msgid "Error details can be found in the admin panel" msgstr "在管理面板中可以找到错误详细信息" @@ -318,11 +318,11 @@ msgstr "描述 (可选)" msgid "parent" msgstr "上级项" -#: InvenTree/models.py:655 +#: InvenTree/models.py:659 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:656 +#: InvenTree/models.py:660 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" @@ -393,99 +393,99 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:607 msgid "Czech" msgstr "捷克语" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:608 msgid "German" msgstr "德语" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:609 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:610 msgid "English" msgstr "英语" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:611 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:612 msgid "Spanish (Mexican)" msgstr "西班牙语(墨西哥)" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:613 msgid "Farsi / Persian" msgstr "波斯语" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:614 msgid "French" msgstr "法语" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:615 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:616 msgid "Hungarian" msgstr "匈牙利语" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:617 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:618 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:619 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:620 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:621 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:622 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:623 msgid "Portuguese" msgstr "葡萄牙语" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:624 msgid "Portuguese (Brazilian)" msgstr "葡萄牙语 (巴西)" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:625 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:626 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:627 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:628 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:629 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:630 msgid "Chinese" msgstr "中文(简体)" diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 5d2e0605c7..d95a93815b 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -53,6 +53,13 @@ class CategoryList(ListCreateAPI): queryset = PartCategory.objects.all() serializer_class = part_serializers.CategorySerializer + def get_queryset(self, *args, **kwargs): + """Return an annotated queryset for the CategoryList endpoint""" + + queryset = super().get_queryset(*args, **kwargs) + queryset = part_serializers.CategorySerializer.annotate_queryset(queryset) + return queryset + def get_serializer_context(self): """Add extra context data to the serializer for the PartCategoryList endpoint""" ctx = super().get_serializer_context() @@ -141,9 +148,11 @@ class CategoryList(ListCreateAPI): ordering_fields = [ 'name', + 'pathstring', 'level', 'tree_id', 'lft', + 'part_count', ] # Use hierarchical ordering by default @@ -165,6 +174,13 @@ class CategoryDetail(RetrieveUpdateDestroyAPI): serializer_class = part_serializers.CategorySerializer queryset = PartCategory.objects.all() + def get_queryset(self, *args, **kwargs): + """Return an annotated queryset for the CategoryDetail endpoint""" + + queryset = super().get_queryset(*args, **kwargs) + queryset = part_serializers.CategorySerializer.annotate_queryset(queryset) + return queryset + def get_serializer_context(self): """Add extra context to the serializer for the CategoryDetail endpoint""" ctx = super().get_serializer_context() diff --git a/InvenTree/part/filters.py b/InvenTree/part/filters.py index 6f23018e2b..112a1799eb 100644 --- a/InvenTree/part/filters.py +++ b/InvenTree/part/filters.py @@ -1,4 +1,4 @@ -"""Custom query filters for the Part model +"""Custom query filters for the Part models The code here makes heavy use of subquery annotations! @@ -19,11 +19,13 @@ Relevant PRs: from decimal import Decimal from django.db import models -from django.db.models import F, FloatField, Func, OuterRef, Q, Subquery +from django.db.models import (F, FloatField, Func, IntegerField, OuterRef, Q, + Subquery) from django.db.models.functions import Coalesce from sql_util.utils import SubquerySum +import part.models import stock.models from InvenTree.status_codes import (BuildStatus, PurchaseOrderStatus, SalesOrderStatus) @@ -158,3 +160,29 @@ def annotate_variant_quantity(subquery: Q, reference: str = 'quantity'): 0, output_field=FloatField(), ) + + +def annotate_category_parts(): + """Construct a queryset annotation which returns the number of parts in a particular category. + + - Includes parts in subcategories also + - Requires subquery to perform annotation + """ + + # Construct a subquery to provide all parts in this category and any subcategories: + subquery = part.models.Part.objects.exclude(category=None).filter( + category__tree_id=OuterRef('tree_id'), + category__lft__gte=OuterRef('lft'), + category__rght__lte=OuterRef('rght'), + category__level__gte=OuterRef('level'), + ) + + return Coalesce( + Subquery( + subquery.annotate( + total=Func(F('pk'), function='COUNT', output_field=IntegerField()) + ).values('total'), + ), + 0, + output_field=IntegerField() + ) diff --git a/InvenTree/part/migrations/0082_partcategory_pathstring.py b/InvenTree/part/migrations/0082_partcategory_pathstring.py new file mode 100644 index 0000000000..989c10f625 --- /dev/null +++ b/InvenTree/part/migrations/0082_partcategory_pathstring.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.14 on 2022-07-31 23:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0081_alter_partcategory_name'), + ] + + operations = [ + migrations.AddField( + model_name='partcategory', + name='pathstring', + field=models.CharField(blank=True, help_text='Path', max_length=250, verbose_name='Path'), + ), + ] diff --git a/InvenTree/part/migrations/0083_auto_20220731_2357.py b/InvenTree/part/migrations/0083_auto_20220731_2357.py new file mode 100644 index 0000000000..d332a8e7de --- /dev/null +++ b/InvenTree/part/migrations/0083_auto_20220731_2357.py @@ -0,0 +1,54 @@ +# Generated by Django 3.2.14 on 2022-07-31 23:57 + +from django.db import migrations + +from InvenTree.helpers import constructPathString + + +def update_pathstring(apps, schema_editor): + """Construct pathstring for all existing PartCategory objects""" + + PartCategory = apps.get_model('part', 'partcategory') + + n = PartCategory.objects.count() + + if n > 0: + + for cat in PartCategory.objects.all(): + + # Construct complete path for category + path = [cat.name] + + parent = cat.parent + + # Iterate up the tree + while parent is not None: + path = [parent.name] + path + parent = parent.parent + + pathstring = constructPathString(path) + + cat.pathstring = pathstring + cat.save() + + print(f"\n--- Updated 'pathstring' for {n} PartCategory objects ---\n") + + +def nupdate_pathstring(apps, schema_editor): + """Empty function for reverse migration compatibility""" + + pass + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0082_partcategory_pathstring'), + ] + + operations = [ + migrations.RunPython( + update_pathstring, + reverse_code=nupdate_pathstring + ) + ] diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index b913327b02..71fb7c303e 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -41,9 +41,20 @@ class CategorySerializer(InvenTreeModelSerializer): """Return True if the category is directly "starred" by the current user.""" return category in self.context.get('starred_categories', []) + @staticmethod + def annotate_queryset(queryset): + """Annotate extra information to the queryset""" + + # Annotate the number of 'parts' which exist in each category (including subcategories!) + queryset = queryset.annotate( + part_count=part.filters.annotate_category_parts() + ) + + return queryset + url = serializers.CharField(source='get_absolute_url', read_only=True) - parts = serializers.IntegerField(source='item_count', read_only=True) + part_count = serializers.IntegerField(read_only=True) level = serializers.IntegerField(read_only=True) @@ -60,7 +71,7 @@ class CategorySerializer(InvenTreeModelSerializer): 'default_keywords', 'level', 'parent', - 'parts', + 'part_count', 'pathstring', 'starred', 'url', diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py index 6d0bc89226..7c4bdf67a1 100644 --- a/InvenTree/part/test_api.py +++ b/InvenTree/part/test_api.py @@ -77,6 +77,76 @@ class PartCategoryAPITest(InvenTreeAPITestCase): self.assertEqual(len(response.data), 5) + # Check that the required fields are present + fields = [ + 'pk', + 'name', + 'description', + 'default_location', + 'level', + 'parent', + 'part_count', + 'pathstring', + 'url' + ] + + for result in response.data: + for f in fields: + self.assertIn(f, result) + + def test_part_count(self): + """Test that the 'part_count' field is annotated correctly""" + + url = reverse('api-part-category-list') + + # Create a parent category + cat = PartCategory.objects.create( + name='Parent Cat', + description='Some name', + parent=None + ) + + # Create child categories + for ii in range(10): + child = PartCategory.objects.create( + name=f"Child cat {ii}", + description="A child category", + parent=cat + ) + + # Create parts in this category + for jj in range(10): + Part.objects.create( + name=f"Part xyz {jj}", + description="A test part", + category=child + ) + + # Filter by parent category + response = self.get( + url, + { + 'parent': cat.pk, + }, + expected_code=200 + ) + + # 10 child categories + self.assertEqual(len(response.data), 10) + + for result in response.data: + self.assertEqual(result['parent'], cat.pk) + self.assertEqual(result['part_count'], 10) + + # Detail view for parent category + response = self.get( + f'/api/part/category/{cat.pk}/', + expected_code=200 + ) + + # Annotation should include parts from all sub-categories + self.assertEqual(response.data['part_count'], 100) + def test_category_metadata(self): """Test metadata endpoint for the PartCategory.""" cat = PartCategory.objects.get(pk=1) diff --git a/InvenTree/part/test_category.py b/InvenTree/part/test_category.py index d15154b66a..edd85b4f95 100644 --- a/InvenTree/part/test_category.py +++ b/InvenTree/part/test_category.py @@ -1,5 +1,6 @@ """Unit tests for the PartCategory model""" +from django.core.exceptions import ValidationError from django.test import TestCase from .models import Part, PartCategory, PartParameter, PartParameterTemplate @@ -63,9 +64,69 @@ class CategoryTest(TestCase): def test_path_string(self): """Test that the category path string works correctly.""" + + # Note that due to data migrations, these fields need to be saved first + self.resistors.save() + self.transceivers.save() + self.assertEqual(str(self.resistors), 'Electronics/Resistors - Resistors') self.assertEqual(str(self.transceivers.pathstring), 'Electronics/IC/Transceivers') + # Create a new subcategory + subcat = PartCategory.objects.create( + name='Subcategory', + description='My little sub category', + parent=self.transceivers + ) + + # Pathstring should have been updated correctly + self.assertEqual(subcat.pathstring, 'Electronics/IC/Transceivers/Subcategory') + self.assertEqual(len(subcat.path), 4) + + # Move to a new parent location + subcat.parent = self.resistors + subcat.save() + self.assertEqual(subcat.pathstring, 'Electronics/Resistors/Subcategory') + self.assertEqual(len(subcat.path), 3) + + # Move to top-level + subcat.parent = None + subcat.save() + self.assertEqual(subcat.pathstring, 'Subcategory') + self.assertEqual(len(subcat.path), 1) + + # Construct a very long pathstring and ensure it gets updated correctly + cat = PartCategory.objects.create( + name='Cat', + description='A long running category', + parent=None + ) + + parent = cat + + for idx in range(26): + letter = chr(ord('A') + idx) + + child = PartCategory.objects.create( + name=letter * 10, + description=f"Subcategory {letter}", + parent=parent + ) + + parent = child + + self.assertTrue(len(child.path), 26) + self.assertEqual( + child.pathstring, + "Cat/AAAAAAAAAA/BBBBBBBBBB/CCCCCCCCCC/DDDDDDDDDD/EEEEEEEEEE/FFFFFFFFFF/GGGGGGGGGG/HHHHHHHHHH/IIIIIIIIII/JJJJJJJJJJ/.../OOOOOOOOOO/PPPPPPPPPP/QQQQQQQQQQ/RRRRRRRRRR/SSSSSSSSSS/TTTTTTTTTT/UUUUUUUUUU/VVVVVVVVVV/WWWWWWWWWW/XXXXXXXXXX/YYYYYYYYYY/ZZZZZZZZZZ" + ) + self.assertTrue(len(child.pathstring) <= 250) + + # Attempt an invalid move + with self.assertRaises(ValidationError): + cat.parent = child + cat.save() + def test_url(self): """Test that the PartCategory URL works.""" self.assertEqual(self.capacitors.get_absolute_url(), '/part/category/3/') @@ -130,6 +191,9 @@ class CategoryTest(TestCase): def test_default_locations(self): """Test traversal for default locations.""" + + self.assertIsNotNone(self.fasteners.default_location) + self.fasteners.default_location.save() self.assertEqual(str(self.fasteners.default_location), 'Office/Drawer_1 - In my desk') # Any part under electronics should default to 'Home' diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py index 30cd890744..a33a0ef83b 100644 --- a/InvenTree/part/test_part.py +++ b/InvenTree/part/test_part.py @@ -220,6 +220,7 @@ class PartTest(TestCase): def test_category(self): """Test PartCategory path""" + self.c1.category.save() self.assertEqual(str(self.c1.category), 'Electronics/Capacitors - Capacitors') orphan = Part.objects.get(name='Orphan') diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 88007dea34..a279f71d2a 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -224,6 +224,13 @@ class StockLocationList(ListCreateAPI): queryset = StockLocation.objects.all() serializer_class = StockSerializers.LocationSerializer + def get_queryset(self, *args, **kwargs): + """Return annotated queryset for the StockLocationList endpoint""" + + queryset = super().get_queryset(*args, **kwargs) + queryset = StockSerializers.LocationSerializer.annotate_queryset(queryset) + return queryset + def filter_queryset(self, queryset): """Custom filtering: - Allow filtering by "null" parent to retrieve top-level stock locations.""" queryset = super().filter_queryset(queryset) @@ -293,6 +300,7 @@ class StockLocationList(ListCreateAPI): ordering_fields = [ 'name', + 'pathstring', 'items', 'level', 'tree_id', @@ -1340,6 +1348,13 @@ class LocationDetail(RetrieveUpdateDestroyAPI): queryset = StockLocation.objects.all() serializer_class = StockSerializers.LocationSerializer + def get_queryset(self, *args, **kwargs): + """Return annotated queryset for the StockLocationList endpoint""" + + queryset = super().get_queryset(*args, **kwargs) + queryset = StockSerializers.LocationSerializer.annotate_queryset(queryset) + return queryset + stock_api_urls = [ re_path(r'^location/', include([ diff --git a/InvenTree/stock/filters.py b/InvenTree/stock/filters.py new file mode 100644 index 0000000000..d2bb7a2b67 --- /dev/null +++ b/InvenTree/stock/filters.py @@ -0,0 +1,36 @@ +"""Custom query filters for the Stock models""" + +from django.db.models import F, Func, IntegerField, OuterRef, Q, Subquery +from django.db.models.functions import Coalesce + +import stock.models + + +def annotate_location_items(filter: Q = None): + """Construct a queryset annotation which returns the number of stock items in a particular location. + + - Includes items in subcategories also + - Requires subquery to perform annotation + """ + + # Construct a subquery to provide all items in this location and any sublocations + subquery = stock.models.StockItem.objects.exclude(location=None).filter( + location__tree_id=OuterRef('tree_id'), + location__lft__gte=OuterRef('lft'), + location__rght__lte=OuterRef('rght'), + location__level__gte=OuterRef('level'), + ) + + # Optionally apply extra filter to returned results + if filter is not None: + subquery = subquery.filter(filter) + + return Coalesce( + Subquery( + subquery.annotate( + total=Func(F('pk'), function='COUNT', output_field=IntegerField()) + ).values('total') + ), + 0, + output_field=IntegerField() + ) diff --git a/InvenTree/stock/migrations/0080_stocklocation_pathstring.py b/InvenTree/stock/migrations/0080_stocklocation_pathstring.py new file mode 100644 index 0000000000..5a2de8595b --- /dev/null +++ b/InvenTree/stock/migrations/0080_stocklocation_pathstring.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.14 on 2022-07-31 23:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0079_alter_stocklocation_name'), + ] + + operations = [ + migrations.AddField( + model_name='stocklocation', + name='pathstring', + field=models.CharField(blank=True, help_text='Path', max_length=250, verbose_name='Path'), + ), + ] diff --git a/InvenTree/stock/migrations/0081_auto_20220801_0044.py b/InvenTree/stock/migrations/0081_auto_20220801_0044.py new file mode 100644 index 0000000000..361a7bc5e1 --- /dev/null +++ b/InvenTree/stock/migrations/0081_auto_20220801_0044.py @@ -0,0 +1,55 @@ +# Generated by Django 3.2.14 on 2022-08-01 00:44 + +from django.db import migrations + +from InvenTree.helpers import constructPathString + + +def update_pathstring(apps, schema_editor): + """Construct pathstring for all existing StockLocation objects""" + + StockLocation = apps.get_model('stock', 'stocklocation') + + n = StockLocation.objects.count() + + if n > 0: + + for loc in StockLocation.objects.all(): + + # Construct complete path for category + path = [loc.name] + + parent = loc.parent + + # Iterate up the tree + while parent is not None: + path = [parent.name] + path + parent = parent.parent + + pathstring = constructPathString(path) + + loc.pathstring = pathstring + loc.save() + + print(f"\n--- Updated 'pathstring' for {n} StockLocation objects ---\n") + + +def nupdate_pathstring(apps, schema_editor): + """Empty function for reverse migration compatibility""" + + pass + + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0080_stocklocation_pathstring'), + ] + + operations = [ + migrations.RunPython( + update_pathstring, + reverse_code=nupdate_pathstring + ) + ] diff --git a/InvenTree/stock/serializers.py b/InvenTree/stock/serializers.py index 5fd27887fb..31df615989 100644 --- a/InvenTree/stock/serializers.py +++ b/InvenTree/stock/serializers.py @@ -18,6 +18,7 @@ import company.models import InvenTree.helpers import InvenTree.serializers import part.models as part_models +import stock.filters from common.settings import currency_code_default, currency_code_mappings from company.serializers import SupplierPartSerializer from InvenTree.models import extract_int @@ -575,9 +576,20 @@ class LocationTreeSerializer(InvenTree.serializers.InvenTreeModelSerializer): class LocationSerializer(InvenTree.serializers.InvenTreeModelSerializer): """Detailed information about a stock location.""" + @staticmethod + def annotate_queryset(queryset): + """Annotate extra information to the queryset""" + + # Annotate the number of stock items which exist in this category (including subcategories) + queryset = queryset.annotate( + items=stock.filters.annotate_location_items() + ) + + return queryset + url = serializers.CharField(source='get_absolute_url', read_only=True) - items = serializers.IntegerField(source='item_count', read_only=True) + items = serializers.IntegerField(read_only=True) level = serializers.IntegerField(read_only=True) diff --git a/InvenTree/stock/tests.py b/InvenTree/stock/tests.py index 93b6cc87bc..1e49020503 100644 --- a/InvenTree/stock/tests.py +++ b/InvenTree/stock/tests.py @@ -125,6 +125,10 @@ class StockTest(InvenTreeTestCase): def test_parent_locations(self): """Test parent.""" + + # Ensure pathstring gets updated + self.drawer3.save() + self.assertEqual(self.office.parent, None) self.assertEqual(self.drawer1.parent, self.office) self.assertEqual(self.drawer2.parent, self.office) diff --git a/InvenTree/templates/js/translated/notification.js b/InvenTree/templates/js/translated/notification.js index c497755f40..c511010b5c 100644 --- a/InvenTree/templates/js/translated/notification.js +++ b/InvenTree/templates/js/translated/notification.js @@ -174,6 +174,12 @@ function updateNotificationReadState(btn, panel_caller=false) { } else { count = count + 1; } + + // Prevent negative notification count + if (count < 0) { + count = 0; + } + // update notification indicator now updateNotificationIndicator(count); diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index 8f541df2be..a5f284aabc 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -1778,6 +1778,7 @@ function loadPartCategoryTable(table, options) { name: 'category', original: original, showColumns: true, + sortable: true, buttons: options.allowTreeView ? [ { icon: 'fas fa-bars', @@ -1882,13 +1883,13 @@ function loadPartCategoryTable(table, options) { title: '{% trans "Path" %}', switchable: !tree_view, visible: !tree_view, - sortable: false, + sortable: true, }, { - field: 'parts', + field: 'part_count', title: '{% trans "Parts" %}', switchable: true, - sortable: false, + sortable: true, } ] }); diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js index f12f136dff..cb065f68b7 100644 --- a/InvenTree/templates/js/translated/stock.js +++ b/InvenTree/templates/js/translated/stock.js @@ -2264,6 +2264,7 @@ function loadStockLocationTable(table, options) { queryParams: filters, name: 'location', original: original, + sortable: true, showColumns: true, onPostBody: function() { @@ -2360,14 +2361,13 @@ function loadStockLocationTable(table, options) { field: 'pathstring', title: '{% trans "Path" %}', switchable: true, - sortable: false, + sortable: true, }, { field: 'items', title: '{% trans "Stock Items" %}', switchable: true, - sortable: false, - sortName: 'item_count', + sortable: true, } ] });