mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Merge remote-tracking branch 'inventree/master'
This commit is contained in:
commit
4c86593159
@ -32,6 +32,7 @@ def health_status(request):
|
||||
|
||||
status = {
|
||||
'django_q_running': InvenTree.status.is_worker_running(),
|
||||
'email_configured': InvenTree.status.is_email_configured(),
|
||||
}
|
||||
|
||||
all_healthy = True
|
||||
|
@ -52,6 +52,10 @@ class AuthRequiredMiddleware(object):
|
||||
if request.path_info.startswith('/static/'):
|
||||
authorized = True
|
||||
|
||||
# Unauthorized users can access the login page
|
||||
elif request.path_info.startswith('/accounts/'):
|
||||
authorized = True
|
||||
|
||||
elif 'Authorization' in request.headers.keys():
|
||||
auth = request.headers['Authorization'].strip()
|
||||
|
||||
|
@ -495,6 +495,51 @@ CURRENCIES = CONFIG.get(
|
||||
# TODO - Allow live web-based backends in the future
|
||||
EXCHANGE_BACKEND = 'InvenTree.exchange.InvenTreeManualExchangeBackend'
|
||||
|
||||
# Extract email settings from the config file
|
||||
email_config = CONFIG.get('email', {})
|
||||
|
||||
EMAIL_BACKEND = get_setting(
|
||||
'django.core.mail.backends.smtp.EmailBackend',
|
||||
email_config.get('backend', '')
|
||||
)
|
||||
|
||||
# Email backend settings
|
||||
EMAIL_HOST = get_setting(
|
||||
'INVENTREE_EMAIL_HOST',
|
||||
email_config.get('host', '')
|
||||
)
|
||||
|
||||
EMAIL_PORT = get_setting(
|
||||
'INVENTREE_EMAIL_PORT',
|
||||
email_config.get('port', 25)
|
||||
)
|
||||
|
||||
EMAIL_HOST_USER = get_setting(
|
||||
'INVENTREE_EMAIL_USERNAME',
|
||||
email_config.get('username', ''),
|
||||
)
|
||||
|
||||
EMAIL_HOST_PASSWORD = get_setting(
|
||||
'INVENTREE_EMAIL_PASSWORD',
|
||||
email_config.get('password', ''),
|
||||
)
|
||||
|
||||
EMAIL_SUBJECT_PREFIX = '[InvenTree] '
|
||||
|
||||
EMAIL_USE_LOCALTIME = False
|
||||
|
||||
EMAIL_USE_TLS = get_setting(
|
||||
'INVENTREE_EMAIL_TLS',
|
||||
email_config.get('tls', False),
|
||||
)
|
||||
|
||||
EMAIL_USE_SSL = get_setting(
|
||||
'INVENTREE_EMAIL_SSL',
|
||||
email_config.get('ssl', False),
|
||||
)
|
||||
|
||||
EMAIL_TIMEOUT = 60
|
||||
|
||||
LOCALE_PATHS = (
|
||||
os.path.join(BASE_DIR, 'locale/'),
|
||||
)
|
||||
|
@ -11,6 +11,9 @@ from datetime import datetime, timedelta
|
||||
from django_q.models import Success
|
||||
from django_q.monitor import Stat
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
logger = logging.getLogger("inventree")
|
||||
|
||||
|
||||
@ -43,6 +46,30 @@ def is_worker_running(**kwargs):
|
||||
return results.exists()
|
||||
|
||||
|
||||
def is_email_configured():
|
||||
"""
|
||||
Check if email backend is configured.
|
||||
|
||||
NOTE: This does not check if the configuration is valid!
|
||||
"""
|
||||
|
||||
configured = True
|
||||
|
||||
if not settings.EMAIL_HOST:
|
||||
logger.warning("EMAIL_HOST is not configured")
|
||||
configured = False
|
||||
|
||||
if not settings.EMAIL_HOST_USER:
|
||||
logger.warning("EMAIL_HOST_USER is not configured")
|
||||
configured = False
|
||||
|
||||
if not settings.EMAIL_HOST_PASSWORD:
|
||||
logger.warning("EMAIL_HOST_PASSWORD is not configured")
|
||||
configured = False
|
||||
|
||||
return configured
|
||||
|
||||
|
||||
def check_system_health(**kwargs):
|
||||
"""
|
||||
Check that the InvenTree system is running OK.
|
||||
@ -56,6 +83,10 @@ def check_system_health(**kwargs):
|
||||
result = False
|
||||
logger.warning(_("Background worker check failed"))
|
||||
|
||||
if not is_email_configured():
|
||||
result = False
|
||||
logger.warning(_("Email backend not configured"))
|
||||
|
||||
if not result:
|
||||
logger.warning(_("InvenTree system health checks failed"))
|
||||
|
||||
|
@ -51,6 +51,24 @@ def schedule_task(taskname, **kwargs):
|
||||
pass
|
||||
|
||||
|
||||
def offload_task(taskname, *args, **kwargs):
|
||||
"""
|
||||
Create an AsyncTask.
|
||||
This is different to a 'scheduled' task,
|
||||
in that it only runs once!
|
||||
"""
|
||||
|
||||
try:
|
||||
from django_q.tasks import AsyncTask
|
||||
except (AppRegistryNotReady):
|
||||
logger.warning("Could not offload task - app registry not ready")
|
||||
return
|
||||
|
||||
task = AsyncTask(taskname, *args, **kwargs)
|
||||
|
||||
task.run()
|
||||
|
||||
|
||||
def heartbeat():
|
||||
"""
|
||||
Simple task which runs at 5 minute intervals,
|
||||
@ -141,3 +159,20 @@ def check_for_updates():
|
||||
tag,
|
||||
None
|
||||
)
|
||||
|
||||
|
||||
def send_email(subject, body, recipients, from_email=None):
|
||||
"""
|
||||
Send an email with the specified subject and body,
|
||||
to the specified recipients list.
|
||||
"""
|
||||
|
||||
if type(recipients) == str:
|
||||
recipients = [recipients]
|
||||
|
||||
offload_task(
|
||||
'django.core.mail.send_mail',
|
||||
subject, body,
|
||||
from_email,
|
||||
recipients,
|
||||
)
|
||||
|
@ -133,7 +133,7 @@ urlpatterns = [
|
||||
url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')),
|
||||
|
||||
url(r'^login/?', auth_views.LoginView.as_view(), name='login'),
|
||||
url(r'^logout/', auth_views.LogoutView.as_view(template_name='registration/logout.html'), name='logout'),
|
||||
url(r'^logout/', auth_views.LogoutView.as_view(template_name='registration/logged_out.html'), name='logout'),
|
||||
|
||||
url(r'^settings/', include(settings_urls)),
|
||||
|
||||
@ -143,6 +143,7 @@ urlpatterns = [
|
||||
url(r'^admin/error_log/', include('error_report.urls')),
|
||||
url(r'^admin/shell/', include('django_admin_shell.urls')),
|
||||
url(r'^admin/', admin.site.urls, name='inventree-admin'),
|
||||
url(r'accounts/', include('django.contrib.auth.urls')),
|
||||
|
||||
url(r'^index/', IndexView.as_view(), name='index'),
|
||||
url(r'^search/', SearchView.as_view(), name='search'),
|
||||
|
@ -63,6 +63,31 @@ currencies:
|
||||
- NZD
|
||||
- USD
|
||||
|
||||
# Email backend configuration
|
||||
# Ref: https://docs.djangoproject.com/en/dev/topics/email/
|
||||
# Available options:
|
||||
# host: Email server host address
|
||||
# port: Email port
|
||||
# username: Account username
|
||||
# password: Account password
|
||||
# prefix: Email subject prefix
|
||||
# tls: Enable TLS support
|
||||
# ssl: Enable SSL support
|
||||
|
||||
# Alternatively, these options can all be set using environment variables,
|
||||
# with the INVENTREE_EMAIL_ prefix:
|
||||
# e.g. INVENTREE_EMAIL_HOST / INVENTREE_EMAIL_PORT / INVENTREE_EMAIL_USERNAME
|
||||
# Refer to the InvenTree documentation for more information
|
||||
|
||||
email:
|
||||
# backend: 'django.core.mail.backends.smtp.EmailBackend'
|
||||
host: ''
|
||||
port: 25
|
||||
username: ''
|
||||
password: ''
|
||||
tls: False
|
||||
ssl: False
|
||||
|
||||
# Set debug to False to run in production mode
|
||||
# Use the environment variable INVENTREE_DEBUG
|
||||
debug: True
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-04-04 20:24+0000\n"
|
||||
"POT-Creation-Date: 2021-04-11 22:07+0000\n"
|
||||
"PO-Revision-Date: 2021-03-28 17:47+0200\n"
|
||||
"Last-Translator: Andreas Kaiser <kaiser.vocote@gmail.com>, Matthias "
|
||||
"MAIR<matmair@live.de>\n"
|
||||
@ -18,15 +18,15 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 2.4.2\n"
|
||||
|
||||
#: InvenTree/api.py:62
|
||||
#: InvenTree/api.py:64
|
||||
msgid "API endpoint not found"
|
||||
msgstr "API-Endpunkt nicht gefunden"
|
||||
|
||||
#: InvenTree/api.py:108
|
||||
#: InvenTree/api.py:110
|
||||
msgid "No action specified"
|
||||
msgstr "Keine Aktion angegeben"
|
||||
|
||||
#: InvenTree/api.py:122
|
||||
#: InvenTree/api.py:124
|
||||
msgid "No matching action found"
|
||||
msgstr "Keine passende Aktion gefunden"
|
||||
|
||||
@ -126,7 +126,7 @@ msgstr "Datei-Kommentar"
|
||||
|
||||
#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1888
|
||||
#: report/templates/report/inventree_test_report_base.html:91
|
||||
#: templates/js/stock.js:960
|
||||
#: templates/js/stock.js:964
|
||||
msgid "User"
|
||||
msgstr "Benutzer"
|
||||
|
||||
@ -142,7 +142,7 @@ msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: InvenTree/models.py:114 build/models.py:134
|
||||
#: build/templates/build/detail.html:21 company/models.py:361
|
||||
#: build/templates/build/detail.html:21 company/models.py:365
|
||||
#: company/templates/company/detail.html:26
|
||||
#: company/templates/company/supplier_part_base.html:70
|
||||
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
|
||||
@ -157,8 +157,8 @@ msgstr "Name"
|
||||
#: templates/js/build.js:677 templates/js/build.js:944
|
||||
#: templates/js/company.js:56 templates/js/order.js:183
|
||||
#: templates/js/order.js:280 templates/js/part.js:168 templates/js/part.js:251
|
||||
#: templates/js/part.js:370 templates/js/part.js:566 templates/js/stock.js:552
|
||||
#: templates/js/stock.js:934
|
||||
#: templates/js/part.js:370 templates/js/part.js:566 templates/js/stock.js:554
|
||||
#: templates/js/stock.js:938
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
@ -170,31 +170,31 @@ msgstr "Beschreibung (optional)"
|
||||
msgid "parent"
|
||||
msgstr "Eltern"
|
||||
|
||||
#: InvenTree/settings.py:430
|
||||
#: InvenTree/settings.py:480
|
||||
msgid "English"
|
||||
msgstr "Englisch"
|
||||
|
||||
#: InvenTree/settings.py:431
|
||||
#: InvenTree/settings.py:481
|
||||
msgid "French"
|
||||
msgstr "Französisch"
|
||||
|
||||
#: InvenTree/settings.py:432
|
||||
#: InvenTree/settings.py:482
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: InvenTree/settings.py:433
|
||||
#: InvenTree/settings.py:483
|
||||
msgid "Polish"
|
||||
msgstr "Polnisch"
|
||||
|
||||
#: InvenTree/settings.py:434
|
||||
#: InvenTree/settings.py:484
|
||||
msgid "Turkish"
|
||||
msgstr "Türkisch"
|
||||
|
||||
#: InvenTree/status.py:24
|
||||
msgid "Celery worker check failed"
|
||||
msgstr "Celery Worker Check fehlgeschlagen"
|
||||
#: InvenTree/status.py:57
|
||||
msgid "Background worker check failed"
|
||||
msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen"
|
||||
|
||||
#: InvenTree/status.py:27
|
||||
#: InvenTree/status.py:60
|
||||
msgid "InvenTree system health checks failed"
|
||||
msgstr "InvenTree Status-Überprüfung fehlgeschlagen"
|
||||
|
||||
@ -310,7 +310,7 @@ msgstr "Passwort eingeben"
|
||||
msgid "Password fields must match"
|
||||
msgstr "Passwörter stimmen nicht überein"
|
||||
|
||||
#: InvenTree/views.py:887 templates/navbar.html:83
|
||||
#: InvenTree/views.py:887 templates/navbar.html:85
|
||||
msgid "System Information"
|
||||
msgstr "Systeminformationen"
|
||||
|
||||
@ -406,7 +406,7 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
|
||||
#: stock/templates/stock/item_base.html:240
|
||||
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
|
||||
#: templates/js/bom.js:205 templates/js/build.js:420 templates/js/build.js:954
|
||||
#: templates/js/stock.js:952 templates/js/stock.js:1190
|
||||
#: templates/js/stock.js:956 templates/js/stock.js:1194
|
||||
msgid "Quantity"
|
||||
msgstr "Anzahl"
|
||||
|
||||
@ -452,7 +452,7 @@ msgstr "Bauauftrag als vollständig markieren"
|
||||
#: stock/templates/stock/stock_adjust.html:17
|
||||
#: templates/InvenTree/search.html:244 templates/js/barcode.js:363
|
||||
#: templates/js/barcode.js:531 templates/js/build.js:434
|
||||
#: templates/js/stock.js:637
|
||||
#: templates/js/stock.js:641
|
||||
msgid "Location"
|
||||
msgstr "Lagerort"
|
||||
|
||||
@ -495,7 +495,7 @@ msgstr "Bauauftrag"
|
||||
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
|
||||
#: order/templates/order/so_navbar.html:19
|
||||
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
|
||||
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:181
|
||||
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:182
|
||||
#: templates/InvenTree/search.html:169
|
||||
#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
|
||||
msgid "Build Orders"
|
||||
@ -529,7 +529,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
|
||||
|
||||
#: build/models.py:152 build/templates/build/auto_allocate.html:16
|
||||
#: build/templates/build/build_base.html:86
|
||||
#: build/templates/build/detail.html:26 company/models.py:535
|
||||
#: build/templates/build/detail.html:26 company/models.py:539
|
||||
#: order/models.py:637 order/models.py:669
|
||||
#: order/templates/order/order_wizard/select_parts.html:30
|
||||
#: order/templates/order/purchase_order_detail.html:156
|
||||
@ -548,8 +548,8 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
|
||||
#: templates/js/barcode.js:362 templates/js/bom.js:163
|
||||
#: templates/js/build.js:681 templates/js/build.js:921
|
||||
#: templates/js/company.js:138 templates/js/part.js:232
|
||||
#: templates/js/part.js:337 templates/js/stock.js:524
|
||||
#: templates/js/stock.js:1262
|
||||
#: templates/js/part.js:337 templates/js/stock.js:523
|
||||
#: templates/js/stock.js:1266
|
||||
msgid "Part"
|
||||
msgstr "Teil"
|
||||
|
||||
@ -667,7 +667,7 @@ msgid "Link to external URL"
|
||||
msgstr "Link zu einer externen URL"
|
||||
|
||||
#: build/models.py:261 build/templates/build/navbar.html:59
|
||||
#: company/models.py:129 company/models.py:368
|
||||
#: company/models.py:133 company/models.py:372
|
||||
#: company/templates/company/navbar.html:59
|
||||
#: company/templates/company/navbar.html:62 order/models.py:123
|
||||
#: order/models.py:597 order/templates/order/po_navbar.html:29
|
||||
@ -681,7 +681,7 @@ msgstr "Link zu einer externen URL"
|
||||
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
|
||||
#: stock/models.py:496 stock/models.py:1555 stock/models.py:1665
|
||||
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
|
||||
#: templates/js/bom.js:329 templates/js/stock.js:128 templates/js/stock.js:667
|
||||
#: templates/js/bom.js:329 templates/js/stock.js:128 templates/js/stock.js:671
|
||||
msgid "Notes"
|
||||
msgstr "Notizen"
|
||||
|
||||
@ -757,7 +757,7 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
|
||||
#: stock/templates/stock/item_base.html:89
|
||||
#: stock/templates/stock/item_base.html:324
|
||||
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:771
|
||||
#: templates/js/stock.js:923 templates/js/stock.js:1181
|
||||
#: templates/js/stock.js:927 templates/js/stock.js:1185
|
||||
msgid "Stock Item"
|
||||
msgstr "BestandsObjekt"
|
||||
|
||||
@ -919,7 +919,7 @@ msgstr "Bau-Status"
|
||||
#: stock/templates/stock/item_base.html:376 templates/InvenTree/search.html:236
|
||||
#: templates/js/barcode.js:119 templates/js/build.js:710
|
||||
#: templates/js/order.js:187 templates/js/order.js:285
|
||||
#: templates/js/stock.js:624 templates/js/stock.js:1198
|
||||
#: templates/js/stock.js:628 templates/js/stock.js:1202
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
@ -1056,8 +1056,8 @@ msgid "Destination location not specified"
|
||||
msgstr "Ziel-Lagerort nicht angegeben"
|
||||
|
||||
#: build/templates/build/detail.html:70
|
||||
#: stock/templates/stock/item_base.html:288 templates/js/stock.js:632
|
||||
#: templates/js/stock.js:1205 templates/js/table_filters.js:85
|
||||
#: stock/templates/stock/item_base.html:288 templates/js/stock.js:636
|
||||
#: templates/js/stock.js:1209 templates/js/table_filters.js:85
|
||||
#: templates/js/table_filters.js:179
|
||||
msgid "Batch"
|
||||
msgstr "Los"
|
||||
@ -1323,7 +1323,7 @@ msgstr "InvenTree Instanzname"
|
||||
msgid "String descriptor for the server instance"
|
||||
msgstr "Kurze Beschreibung der Instanz"
|
||||
|
||||
#: common/models.py:62 company/models.py:96 company/models.py:97
|
||||
#: common/models.py:62 company/models.py:95 company/models.py:96
|
||||
msgid "Company name"
|
||||
msgstr "Firmenname"
|
||||
|
||||
@ -1675,12 +1675,12 @@ msgstr "Angegebener Wert nicht erlaubt"
|
||||
msgid "Supplied value must be a boolean"
|
||||
msgstr "Angegebener Wert muss ein Wahrheitswert sein"
|
||||
|
||||
#: company/forms.py:37 company/models.py:139
|
||||
#: company/forms.py:37 company/models.py:143
|
||||
#: company/templates/company/detail.html:40
|
||||
msgid "Currency"
|
||||
msgstr "Währung"
|
||||
|
||||
#: company/forms.py:38 company/models.py:141
|
||||
#: company/forms.py:38 company/models.py:145
|
||||
msgid "Default currency used for this company"
|
||||
msgstr "Standard-Währung für diese Firma"
|
||||
|
||||
@ -1700,104 +1700,104 @@ msgstr "Einzelpreis"
|
||||
msgid "Single quantity price"
|
||||
msgstr "Preis für eine Einheit"
|
||||
|
||||
#: company/models.py:99
|
||||
#: company/models.py:100
|
||||
msgid "Company description"
|
||||
msgstr "Firmenbeschreibung"
|
||||
|
||||
#: company/models.py:99
|
||||
#: company/models.py:101
|
||||
msgid "Description of the company"
|
||||
msgstr "Firmenbeschreibung"
|
||||
|
||||
#: company/models.py:101 company/templates/company/company_base.html:70
|
||||
#: company/models.py:105 company/templates/company/company_base.html:70
|
||||
#: company/templates/company/detail.html:31 templates/js/company.js:60
|
||||
msgid "Website"
|
||||
msgstr "Website"
|
||||
|
||||
#: company/models.py:101
|
||||
#: company/models.py:105
|
||||
msgid "Company website URL"
|
||||
msgstr "Firmenwebsite Adresse/URL"
|
||||
|
||||
#: company/models.py:104 company/templates/company/company_base.html:77
|
||||
#: company/models.py:108 company/templates/company/company_base.html:77
|
||||
msgid "Address"
|
||||
msgstr "Adresse"
|
||||
|
||||
#: company/models.py:105
|
||||
#: company/models.py:109
|
||||
msgid "Company address"
|
||||
msgstr "Firmenadresse"
|
||||
|
||||
#: company/models.py:108
|
||||
#: company/models.py:112
|
||||
msgid "Phone number"
|
||||
msgstr "Kontakt-Tel."
|
||||
|
||||
#: company/models.py:109
|
||||
#: company/models.py:113
|
||||
msgid "Contact phone number"
|
||||
msgstr "Kontakt-Telefon"
|
||||
|
||||
#: company/models.py:112 company/templates/company/company_base.html:91
|
||||
#: company/models.py:116 company/templates/company/company_base.html:91
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: company/models.py:112
|
||||
#: company/models.py:116
|
||||
msgid "Contact email address"
|
||||
msgstr "Kontakt-Email"
|
||||
|
||||
#: company/models.py:115 company/templates/company/company_base.html:98
|
||||
#: company/models.py:119 company/templates/company/company_base.html:98
|
||||
msgid "Contact"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#: company/models.py:116
|
||||
#: company/models.py:120
|
||||
msgid "Point of contact"
|
||||
msgstr "Anlaufstelle"
|
||||
|
||||
#: company/models.py:118 company/models.py:355 order/models.py:103
|
||||
#: company/models.py:122 company/models.py:359 order/models.py:103
|
||||
#: part/models.py:743
|
||||
#: report/templates/report/inventree_build_order_base.html:165
|
||||
#: stock/models.py:1557 templates/js/company.js:208 templates/js/part.js:430
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
|
||||
#: company/models.py:118
|
||||
#: company/models.py:122
|
||||
msgid "Link to external company information"
|
||||
msgstr "Link auf externe Firmeninformation"
|
||||
|
||||
#: company/models.py:126 part/models.py:753
|
||||
#: company/models.py:130 part/models.py:753
|
||||
msgid "Image"
|
||||
msgstr "Bild"
|
||||
|
||||
#: company/models.py:131
|
||||
#: company/models.py:135
|
||||
msgid "is customer"
|
||||
msgstr "ist Kunde"
|
||||
|
||||
#: company/models.py:131
|
||||
#: company/models.py:135
|
||||
msgid "Do you sell items to this company?"
|
||||
msgstr "Verkaufen Sie Teile an diese Firma?"
|
||||
|
||||
#: company/models.py:133
|
||||
#: company/models.py:137
|
||||
msgid "is supplier"
|
||||
msgstr "ist Zulieferer"
|
||||
|
||||
#: company/models.py:133
|
||||
#: company/models.py:137
|
||||
msgid "Do you purchase items from this company?"
|
||||
msgstr "Kaufen Sie Teile von dieser Firma?"
|
||||
|
||||
#: company/models.py:135
|
||||
#: company/models.py:139
|
||||
msgid "is manufacturer"
|
||||
msgstr "ist Hersteller"
|
||||
|
||||
#: company/models.py:135
|
||||
#: company/models.py:139
|
||||
msgid "Does this company manufacture parts?"
|
||||
msgstr "Produziert diese Firma Teile?"
|
||||
|
||||
#: company/models.py:315 stock/models.py:371
|
||||
#: company/models.py:319 stock/models.py:371
|
||||
#: stock/templates/stock/item_base.html:220
|
||||
msgid "Base Part"
|
||||
msgstr "Basisteil"
|
||||
|
||||
#: company/models.py:319 order/views.py:1372
|
||||
#: company/models.py:323 order/views.py:1372
|
||||
msgid "Select part"
|
||||
msgstr "Teil auswählen"
|
||||
|
||||
#: company/models.py:325 company/templates/company/detail.html:60
|
||||
#: company/models.py:329 company/templates/company/detail.html:60
|
||||
#: company/templates/company/supplier_part_base.html:83
|
||||
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
|
||||
#: order/templates/order/order_base.html:92
|
||||
@ -1807,80 +1807,80 @@ msgstr "Teil auswählen"
|
||||
msgid "Supplier"
|
||||
msgstr "Zulieferer"
|
||||
|
||||
#: company/models.py:326
|
||||
#: company/models.py:330
|
||||
msgid "Select supplier"
|
||||
msgstr "Zulieferer auswählen"
|
||||
|
||||
#: company/models.py:331 company/templates/company/supplier_part_base.html:87
|
||||
#: company/models.py:335 company/templates/company/supplier_part_base.html:87
|
||||
#: company/templates/company/supplier_part_detail.html:26
|
||||
#: order/templates/order/purchase_order_detail.html:174 part/bom.py:171
|
||||
msgid "SKU"
|
||||
msgstr "SKU (Lagerbestandseinheit)"
|
||||
|
||||
#: company/models.py:332
|
||||
#: company/models.py:336
|
||||
msgid "Supplier stock keeping unit"
|
||||
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
|
||||
|
||||
#: company/models.py:342 company/templates/company/detail.html:55
|
||||
#: company/models.py:346 company/templates/company/detail.html:55
|
||||
#: company/templates/company/supplier_part_base.html:93
|
||||
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:172
|
||||
#: templates/js/company.js:44 templates/js/company.js:188
|
||||
msgid "Manufacturer"
|
||||
msgstr "Hersteller"
|
||||
|
||||
#: company/models.py:343
|
||||
#: company/models.py:347
|
||||
msgid "Select manufacturer"
|
||||
msgstr "Hersteller auswählen"
|
||||
|
||||
#: company/models.py:349 company/templates/company/supplier_part_base.html:99
|
||||
#: company/models.py:353 company/templates/company/supplier_part_base.html:99
|
||||
#: company/templates/company/supplier_part_detail.html:35
|
||||
#: order/templates/order/purchase_order_detail.html:183 part/bom.py:173
|
||||
#: templates/js/company.js:204
|
||||
msgid "MPN"
|
||||
msgstr "MPN"
|
||||
|
||||
#: company/models.py:350
|
||||
#: company/models.py:354
|
||||
msgid "Manufacturer part number"
|
||||
msgstr "Hersteller-Teilenummer"
|
||||
|
||||
#: company/models.py:356
|
||||
#: company/models.py:360
|
||||
msgid "URL for external supplier part link"
|
||||
msgstr "Teil-URL des Zulieferers"
|
||||
|
||||
#: company/models.py:362
|
||||
#: company/models.py:366
|
||||
msgid "Supplier part description"
|
||||
msgstr "Zuliefererbeschreibung des Teils"
|
||||
|
||||
#: company/models.py:367 company/templates/company/supplier_part_base.html:113
|
||||
#: company/models.py:371 company/templates/company/supplier_part_base.html:113
|
||||
#: company/templates/company/supplier_part_detail.html:38 part/models.py:2170
|
||||
#: report/templates/report/inventree_po_report.html:93
|
||||
#: report/templates/report/inventree_so_report.html:93
|
||||
msgid "Note"
|
||||
msgstr "Notiz"
|
||||
|
||||
#: company/models.py:371
|
||||
#: company/models.py:375
|
||||
msgid "base cost"
|
||||
msgstr "Basiskosten"
|
||||
|
||||
#: company/models.py:371
|
||||
#: company/models.py:375
|
||||
msgid "Minimum charge (e.g. stocking fee)"
|
||||
msgstr "Mindestpreis"
|
||||
|
||||
#: company/models.py:373 company/templates/company/supplier_part_base.html:106
|
||||
#: company/models.py:377 company/templates/company/supplier_part_base.html:106
|
||||
#: stock/models.py:395 stock/templates/stock/item_base.html:295
|
||||
#: templates/js/stock.js:663
|
||||
#: templates/js/stock.js:667
|
||||
msgid "Packaging"
|
||||
msgstr "Verpackungen"
|
||||
|
||||
#: company/models.py:373
|
||||
#: company/models.py:377
|
||||
msgid "Part packaging"
|
||||
msgstr "Teile-Verpackungen"
|
||||
|
||||
#: company/models.py:375
|
||||
#: company/models.py:379
|
||||
msgid "multiple"
|
||||
msgstr "Vielfache"
|
||||
|
||||
#: company/models.py:375
|
||||
#: company/models.py:379
|
||||
msgid "Order multiple"
|
||||
msgstr "Mehrere bestellen"
|
||||
|
||||
@ -1973,7 +1973,7 @@ msgstr "Neues Zulieferer-Teil anlegen"
|
||||
|
||||
#: company/templates/company/detail_part.html:21
|
||||
#: order/templates/order/purchase_order_detail.html:74
|
||||
#: part/templates/part/supplier.html:17 templates/js/stock.js:1082
|
||||
#: part/templates/part/supplier.html:17 templates/js/stock.js:1086
|
||||
msgid "New Supplier Part"
|
||||
msgstr "Neues Zulieferer-Teil"
|
||||
|
||||
@ -1997,7 +1997,7 @@ msgstr "Teile löschen"
|
||||
|
||||
#: company/templates/company/detail_part.html:66
|
||||
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
|
||||
#: templates/js/stock.js:1076
|
||||
#: templates/js/stock.js:1080
|
||||
msgid "New Part"
|
||||
msgstr "Neues Teil"
|
||||
|
||||
@ -2052,14 +2052,14 @@ msgstr "Zulieferer-Teile"
|
||||
#: part/templates/part/category_partlist.html:10
|
||||
#: templates/InvenTree/index.html:96 templates/InvenTree/search.html:113
|
||||
#: templates/InvenTree/settings/tabs.html:25 templates/navbar.html:23
|
||||
#: templates/stats.html:35 templates/stats.html:44 users/models.py:38
|
||||
#: templates/stats.html:48 templates/stats.html:57 users/models.py:38
|
||||
msgid "Parts"
|
||||
msgstr "Teile"
|
||||
|
||||
#: company/templates/company/navbar.html:27 part/templates/part/navbar.html:33
|
||||
#: stock/templates/stock/location.html:100
|
||||
#: stock/templates/stock/location.html:115 templates/InvenTree/search.html:182
|
||||
#: templates/stats.html:48 templates/stats.html:57 users/models.py:40
|
||||
#: templates/stats.html:61 templates/stats.html:70 users/models.py:40
|
||||
msgid "Stock Items"
|
||||
msgstr "BestandsObjekte"
|
||||
|
||||
@ -2071,7 +2071,7 @@ msgstr "BestandsObjekte"
|
||||
#: templates/InvenTree/index.html:127 templates/InvenTree/search.html:180
|
||||
#: templates/InvenTree/search.html:216
|
||||
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:172
|
||||
#: templates/js/part.js:397 templates/js/stock.js:559 templates/navbar.html:26
|
||||
#: templates/js/part.js:397 templates/js/stock.js:563 templates/navbar.html:26
|
||||
msgid "Stock"
|
||||
msgstr "Lagerbestand"
|
||||
|
||||
@ -2082,7 +2082,7 @@ msgstr "Lagerbestand"
|
||||
#: order/templates/order/sales_orders.html:8
|
||||
#: order/templates/order/sales_orders.html:13
|
||||
#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
|
||||
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:226
|
||||
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:227
|
||||
#: templates/InvenTree/search.html:330
|
||||
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
|
||||
#: users/models.py:43
|
||||
@ -2094,7 +2094,7 @@ msgstr "Aufträge"
|
||||
#: order/templates/order/purchase_orders.html:8
|
||||
#: order/templates/order/purchase_orders.html:13
|
||||
#: part/templates/part/navbar.html:78 part/templates/part/navbar.html:81
|
||||
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:203
|
||||
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:204
|
||||
#: templates/InvenTree/search.html:300
|
||||
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
|
||||
#: users/models.py:42
|
||||
@ -2287,7 +2287,7 @@ msgstr "Firma gelöscht"
|
||||
msgid "Edit Supplier Part"
|
||||
msgstr "Zulieferer-Teil bearbeiten"
|
||||
|
||||
#: company/views.py:378 templates/js/stock.js:1083
|
||||
#: company/views.py:378 templates/js/stock.js:1087
|
||||
msgid "Create new Supplier Part"
|
||||
msgstr "Neues Zulieferer-Teil anlegen"
|
||||
|
||||
@ -2740,8 +2740,8 @@ msgstr "Position hinzufügen"
|
||||
#: order/templates/order/purchase_order_detail.html:45
|
||||
#: order/templates/order/purchase_order_detail.html:125
|
||||
#: part/templates/part/category.html:197 part/templates/part/category.html:239
|
||||
#: stock/templates/stock/location.html:191 templates/js/stock.js:704
|
||||
#: templates/js/stock.js:1088
|
||||
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
|
||||
#: templates/js/stock.js:1092
|
||||
msgid "New Location"
|
||||
msgstr "Neuer Lagerort"
|
||||
|
||||
@ -3274,7 +3274,7 @@ msgstr "Teil-Kategorie"
|
||||
|
||||
#: part/models.py:83 part/templates/part/category.html:19
|
||||
#: part/templates/part/category.html:90 part/templates/part/category.html:141
|
||||
#: templates/InvenTree/search.html:126 templates/stats.html:39
|
||||
#: templates/InvenTree/search.html:126 templates/stats.html:52
|
||||
#: users/models.py:37
|
||||
msgid "Part Categories"
|
||||
msgstr "Teil-Kategorien"
|
||||
@ -3718,7 +3718,7 @@ msgid "All selected BOM items will be deleted"
|
||||
msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
|
||||
|
||||
#: part/templates/part/bom.html:160 part/views.py:584
|
||||
#: templates/js/stock.js:1077
|
||||
#: templates/js/stock.js:1081
|
||||
msgid "Create New Part"
|
||||
msgstr "Neues Teil anlegen"
|
||||
|
||||
@ -3887,7 +3887,7 @@ msgid "Export Data"
|
||||
msgstr "Exportieren"
|
||||
|
||||
#: part/templates/part/category.html:198
|
||||
#: stock/templates/stock/location.html:192 templates/js/stock.js:705
|
||||
#: stock/templates/stock/location.html:192 templates/js/stock.js:709
|
||||
msgid "Create new location"
|
||||
msgstr "Neuen Lagerort anlegen"
|
||||
|
||||
@ -4133,7 +4133,7 @@ msgid "Edit"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
#: part/templates/part/params.html:44 part/templates/part/related.html:44
|
||||
#: part/templates/part/supplier.html:22 stock/views.py:1002 users/models.py:175
|
||||
#: part/templates/part/supplier.html:22 stock/views.py:1002 users/models.py:182
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
@ -4678,7 +4678,7 @@ msgid "Result"
|
||||
msgstr "Ergebnis"
|
||||
|
||||
#: report/templates/report/inventree_test_report_base.html:92
|
||||
#: templates/js/order.js:195 templates/js/stock.js:905
|
||||
#: templates/js/order.js:195 templates/js/stock.js:909
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
@ -4701,7 +4701,7 @@ msgid "Moved {n} parts to {loc}"
|
||||
msgstr "{n} Teile nach {loc} bewegt"
|
||||
|
||||
#: stock/forms.py:114 stock/forms.py:406 stock/models.py:473
|
||||
#: stock/templates/stock/item_base.html:349 templates/js/stock.js:652
|
||||
#: stock/templates/stock/item_base.html:349 templates/js/stock.js:656
|
||||
msgid "Expiry Date"
|
||||
msgstr "Ablaufdatum"
|
||||
|
||||
@ -5146,13 +5146,13 @@ msgid "Remove stock"
|
||||
msgstr "Bestand entfernen"
|
||||
|
||||
#: stock/templates/stock/item_base.html:169
|
||||
msgid "Transfer stock"
|
||||
msgstr "Bestand verschieben"
|
||||
|
||||
#: stock/templates/stock/item_base.html:172
|
||||
msgid "Serialize stock"
|
||||
msgstr "Lagerbestand serialisieren"
|
||||
|
||||
#: stock/templates/stock/item_base.html:173
|
||||
msgid "Transfer stock"
|
||||
msgstr "Bestand verschieben"
|
||||
|
||||
#: stock/templates/stock/item_base.html:176
|
||||
msgid "Assign to customer"
|
||||
msgstr "zu Kunden zuordnen"
|
||||
@ -5161,7 +5161,7 @@ msgstr "zu Kunden zuordnen"
|
||||
msgid "Return to stock"
|
||||
msgstr "zu Bestand zurückgeben"
|
||||
|
||||
#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1218
|
||||
#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1222
|
||||
msgid "Uninstall stock item"
|
||||
msgstr "BestandsObjekt deinstallieren"
|
||||
|
||||
@ -5214,7 +5214,7 @@ msgstr "Dieses BestandsObjekt lief ab am"
|
||||
msgid "This StockItem expires on"
|
||||
msgstr "Dieses BestandsObjekt läuft ab am"
|
||||
|
||||
#: stock/templates/stock/item_base.html:362 templates/js/stock.js:658
|
||||
#: stock/templates/stock/item_base.html:362 templates/js/stock.js:662
|
||||
msgid "Last Updated"
|
||||
msgstr "Zuletzt aktualisiert"
|
||||
|
||||
@ -5333,7 +5333,7 @@ msgid "Stock Details"
|
||||
msgstr "Objekt-Details"
|
||||
|
||||
#: stock/templates/stock/location.html:110 templates/InvenTree/search.html:263
|
||||
#: templates/stats.html:52 users/models.py:39
|
||||
#: templates/stats.html:65 users/models.py:39
|
||||
msgid "Stock Locations"
|
||||
msgstr "Bestand-Lagerorte"
|
||||
|
||||
@ -5518,7 +5518,7 @@ msgstr "Entfernen"
|
||||
msgid "Add Stock Items"
|
||||
msgstr "BestandsObjekte hinzufügen"
|
||||
|
||||
#: stock/views.py:1001 users/models.py:171
|
||||
#: stock/views.py:1001 users/models.py:178
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
@ -5648,35 +5648,35 @@ msgstr "Stücklisten erwarten Kontrolle"
|
||||
msgid "Recently Updated"
|
||||
msgstr "kürzlich aktualisiert"
|
||||
|
||||
#: templates/InvenTree/index.html:143
|
||||
#: templates/InvenTree/index.html:144
|
||||
msgid "Expired Stock"
|
||||
msgstr "abgelaufener Bestand"
|
||||
|
||||
#: templates/InvenTree/index.html:144
|
||||
#: templates/InvenTree/index.html:145
|
||||
msgid "Stale Stock"
|
||||
msgstr "Lagerbestand überfällig"
|
||||
|
||||
#: templates/InvenTree/index.html:182
|
||||
#: templates/InvenTree/index.html:183
|
||||
msgid "Build Orders In Progress"
|
||||
msgstr "laufende Bauaufträge"
|
||||
|
||||
#: templates/InvenTree/index.html:183
|
||||
#: templates/InvenTree/index.html:184
|
||||
msgid "Overdue Build Orders"
|
||||
msgstr "überfällige Bauaufträge"
|
||||
|
||||
#: templates/InvenTree/index.html:204
|
||||
#: templates/InvenTree/index.html:205
|
||||
msgid "Outstanding Purchase Orders"
|
||||
msgstr "ausstehende Bestellungen"
|
||||
|
||||
#: templates/InvenTree/index.html:205
|
||||
#: templates/InvenTree/index.html:206
|
||||
msgid "Overdue Purchase Orders"
|
||||
msgstr "überfällige Bestellungen"
|
||||
|
||||
#: templates/InvenTree/index.html:227
|
||||
#: templates/InvenTree/index.html:228
|
||||
msgid "Outstanding Sales Orders"
|
||||
msgstr "ausstehende Aufträge"
|
||||
|
||||
#: templates/InvenTree/index.html:228
|
||||
#: templates/InvenTree/index.html:229
|
||||
msgid "Overdue Sales Orders"
|
||||
msgstr "überfällige Aufträge"
|
||||
|
||||
@ -5688,11 +5688,11 @@ msgstr "Suchergebnisse"
|
||||
msgid "Enter a search query"
|
||||
msgstr "Eine Sucheanfrage eingeben"
|
||||
|
||||
#: templates/InvenTree/search.html:252 templates/js/stock.js:301
|
||||
#: templates/InvenTree/search.html:252 templates/js/stock.js:300
|
||||
msgid "Shipped to customer"
|
||||
msgstr "an Kunde versand"
|
||||
|
||||
#: templates/InvenTree/search.html:255 templates/js/stock.js:311
|
||||
#: templates/InvenTree/search.html:255 templates/js/stock.js:310
|
||||
msgid "No stock location set"
|
||||
msgstr "Kein Lagerort gesetzt"
|
||||
|
||||
@ -5767,7 +5767,7 @@ msgid "Edit setting"
|
||||
msgstr "Einstellungen ändern"
|
||||
|
||||
#: templates/InvenTree/settings/settings.html:7
|
||||
#: templates/InvenTree/settings/settings.html:13 templates/navbar.html:76
|
||||
#: templates/InvenTree/settings/settings.html:13 templates/navbar.html:78
|
||||
msgid "Settings"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
@ -5869,30 +5869,38 @@ msgid "InvenTree Version"
|
||||
msgstr "InvenTree-Version"
|
||||
|
||||
#: templates/about.html:26
|
||||
msgid "Up to Date"
|
||||
msgstr "Aktuell"
|
||||
|
||||
#: templates/about.html:28
|
||||
msgid "Update Available"
|
||||
msgstr "Aktualisierung verfügbar"
|
||||
|
||||
#: templates/about.html:34
|
||||
msgid "Django Version"
|
||||
msgstr "Django-Version"
|
||||
|
||||
#: templates/about.html:30
|
||||
#: templates/about.html:41
|
||||
msgid "Commit Hash"
|
||||
msgstr "Commit-Hash"
|
||||
|
||||
#: templates/about.html:34
|
||||
#: templates/about.html:48
|
||||
msgid "Commit Date"
|
||||
msgstr "Commit-Datum"
|
||||
|
||||
#: templates/about.html:38
|
||||
#: templates/about.html:53
|
||||
msgid "InvenTree Documentation"
|
||||
msgstr "InvenTree-Dokumentation"
|
||||
|
||||
#: templates/about.html:43
|
||||
#: templates/about.html:58
|
||||
msgid "View Code on GitHub"
|
||||
msgstr "Code auf GitHub ansehen"
|
||||
|
||||
#: templates/about.html:48
|
||||
#: templates/about.html:63
|
||||
msgid "Get the App"
|
||||
msgstr "App herunterladen"
|
||||
|
||||
#: templates/about.html:53
|
||||
#: templates/about.html:68
|
||||
msgid "Submit Bug Report"
|
||||
msgstr "Fehlerbericht senden"
|
||||
|
||||
@ -6092,8 +6100,8 @@ msgstr "Bestand bestellen"
|
||||
msgid "No builds matching query"
|
||||
msgstr "Keine Bauaufträge passen zur Anfrage"
|
||||
|
||||
#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:512
|
||||
#: templates/js/stock.js:1250
|
||||
#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:511
|
||||
#: templates/js/stock.js:1254
|
||||
msgid "Select"
|
||||
msgstr "Auswählen"
|
||||
|
||||
@ -6446,115 +6454,115 @@ msgstr "Keine Testergebnisse gefunden"
|
||||
msgid "Test Date"
|
||||
msgstr "Testdatum"
|
||||
|
||||
#: templates/js/stock.js:293
|
||||
#: templates/js/stock.js:292
|
||||
msgid "In production"
|
||||
msgstr "In Arbeit"
|
||||
|
||||
#: templates/js/stock.js:297
|
||||
#: templates/js/stock.js:296
|
||||
msgid "Installed in Stock Item"
|
||||
msgstr "In BestandsObjekt installiert"
|
||||
|
||||
#: templates/js/stock.js:305
|
||||
#: templates/js/stock.js:304
|
||||
msgid "Assigned to Sales Order"
|
||||
msgstr "Auftrag zugewiesen"
|
||||
|
||||
#: templates/js/stock.js:337
|
||||
#: templates/js/stock.js:336
|
||||
msgid "No stock items matching query"
|
||||
msgstr "Keine zur Anfrage passenden BestandsObjekte"
|
||||
|
||||
#: templates/js/stock.js:479
|
||||
#: templates/js/stock.js:478
|
||||
msgid "Undefined location"
|
||||
msgstr "unbekannter Lagerort"
|
||||
|
||||
#: templates/js/stock.js:575
|
||||
#: templates/js/stock.js:579
|
||||
msgid "Stock item is in production"
|
||||
msgstr "BestandsObjekt wird produziert"
|
||||
|
||||
#: templates/js/stock.js:580
|
||||
#: templates/js/stock.js:584
|
||||
msgid "Stock item assigned to sales order"
|
||||
msgstr "BestandsObjekt wurde Auftrag zugewiesen"
|
||||
|
||||
#: templates/js/stock.js:583
|
||||
#: templates/js/stock.js:587
|
||||
msgid "Stock item assigned to customer"
|
||||
msgstr "BestandsObjekt wurde Kunden zugewiesen"
|
||||
|
||||
#: templates/js/stock.js:587
|
||||
#: templates/js/stock.js:591
|
||||
msgid "Stock item has expired"
|
||||
msgstr "BestandsObjekt ist abgelaufen"
|
||||
|
||||
#: templates/js/stock.js:589
|
||||
#: templates/js/stock.js:593
|
||||
msgid "Stock item will expire soon"
|
||||
msgstr "BestandsObjekt läuft demnächst ab"
|
||||
|
||||
#: templates/js/stock.js:593
|
||||
#: templates/js/stock.js:597
|
||||
msgid "Stock item has been allocated"
|
||||
msgstr "BestandsObjekt zugewiesen"
|
||||
|
||||
#: templates/js/stock.js:597
|
||||
#: templates/js/stock.js:601
|
||||
msgid "Stock item has been installed in another item"
|
||||
msgstr "BestandsObjekt in anderem Element verbaut"
|
||||
|
||||
#: templates/js/stock.js:605
|
||||
#: templates/js/stock.js:609
|
||||
msgid "Stock item has been rejected"
|
||||
msgstr "BestandsObjekt abgewiesen"
|
||||
|
||||
#: templates/js/stock.js:609
|
||||
#: templates/js/stock.js:613
|
||||
msgid "Stock item is lost"
|
||||
msgstr "BestandsObjekt verloren"
|
||||
|
||||
#: templates/js/stock.js:612
|
||||
#: templates/js/stock.js:616
|
||||
msgid "Stock item is destroyed"
|
||||
msgstr "BestandsObjekt zerstört"
|
||||
|
||||
#: templates/js/stock.js:616 templates/js/table_filters.js:116
|
||||
#: templates/js/stock.js:620 templates/js/table_filters.js:116
|
||||
msgid "Depleted"
|
||||
msgstr "gelöscht"
|
||||
|
||||
#: templates/js/stock.js:645
|
||||
#: templates/js/stock.js:649
|
||||
msgid "Stocktake"
|
||||
msgstr "Inventur"
|
||||
|
||||
#: templates/js/stock.js:821
|
||||
#: templates/js/stock.js:825
|
||||
msgid "Stock Status"
|
||||
msgstr "Bestandsstatus"
|
||||
|
||||
#: templates/js/stock.js:836
|
||||
#: templates/js/stock.js:840
|
||||
msgid "Set Stock Status"
|
||||
msgstr "Bestandsstatus setzen"
|
||||
|
||||
#: templates/js/stock.js:850
|
||||
#: templates/js/stock.js:854
|
||||
msgid "Select Status Code"
|
||||
msgstr "Status Code setzen"
|
||||
|
||||
#: templates/js/stock.js:851
|
||||
#: templates/js/stock.js:855
|
||||
msgid "Status code must be selected"
|
||||
msgstr "Status Code muss ausgewählt werden"
|
||||
|
||||
#: templates/js/stock.js:969
|
||||
#: templates/js/stock.js:973
|
||||
msgid "No user information"
|
||||
msgstr "Keine Benutzerinformation"
|
||||
|
||||
#: templates/js/stock.js:979
|
||||
#: templates/js/stock.js:983
|
||||
msgid "Edit tracking entry"
|
||||
msgstr "Tracking-Eintrag bearbeiten"
|
||||
|
||||
#: templates/js/stock.js:980
|
||||
#: templates/js/stock.js:984
|
||||
msgid "Delete tracking entry"
|
||||
msgstr "Tracking-Eintrag löschen"
|
||||
|
||||
#: templates/js/stock.js:1089
|
||||
#: templates/js/stock.js:1093
|
||||
msgid "Create New Location"
|
||||
msgstr "Neuen Lagerort anlegen"
|
||||
|
||||
#: templates/js/stock.js:1188
|
||||
#: templates/js/stock.js:1192
|
||||
msgid "Serial"
|
||||
msgstr "Seriennummer"
|
||||
|
||||
#: templates/js/stock.js:1281 templates/js/table_filters.js:149
|
||||
#: templates/js/stock.js:1285 templates/js/table_filters.js:149
|
||||
msgid "Installed"
|
||||
msgstr "Installiert"
|
||||
|
||||
#: templates/js/stock.js:1306
|
||||
#: templates/js/stock.js:1310
|
||||
msgid "Install item"
|
||||
msgstr "Installiere Objekt"
|
||||
|
||||
@ -6780,23 +6788,19 @@ msgstr "Verkaufen"
|
||||
msgid "Scan Barcode"
|
||||
msgstr "Barcode scannen"
|
||||
|
||||
#: templates/navbar.html:63
|
||||
msgid "InvenTree server issues detected"
|
||||
msgstr "InvenTree Server Fehler aufgetreten"
|
||||
|
||||
#: templates/navbar.html:69 users/models.py:36
|
||||
#: templates/navbar.html:71 users/models.py:36
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: templates/navbar.html:71 templates/registration/logout.html:5
|
||||
#: templates/navbar.html:73 templates/registration/logout.html:5
|
||||
msgid "Logout"
|
||||
msgstr "Ausloggen"
|
||||
|
||||
#: templates/navbar.html:73 templates/registration/login.html:89
|
||||
#: templates/navbar.html:75 templates/registration/login.html:89
|
||||
msgid "Login"
|
||||
msgstr "Einloggen"
|
||||
|
||||
#: templates/navbar.html:85
|
||||
#: templates/navbar.html:94
|
||||
msgid "About InvenTree"
|
||||
msgstr "Über InvenBaum"
|
||||
|
||||
@ -6836,18 +6840,30 @@ msgstr "Server"
|
||||
msgid "Instance Name"
|
||||
msgstr "Instanzname"
|
||||
|
||||
#: templates/stats.html:18
|
||||
#: templates/stats.html:19
|
||||
msgid "Server status"
|
||||
msgstr "Serverstatus"
|
||||
|
||||
#: templates/stats.html:21
|
||||
#: templates/stats.html:22
|
||||
msgid "Healthy"
|
||||
msgstr "Gesund"
|
||||
|
||||
#: templates/stats.html:23
|
||||
#: templates/stats.html:24
|
||||
msgid "Issues detected"
|
||||
msgstr "Probleme erkannt"
|
||||
|
||||
#: templates/stats.html:30
|
||||
msgid "Background Worker"
|
||||
msgstr "Hintergrund-Prozess"
|
||||
|
||||
#: templates/stats.html:33
|
||||
msgid "Operational"
|
||||
msgstr "Betriebsbereit"
|
||||
|
||||
#: templates/stats.html:35
|
||||
msgid "Not running"
|
||||
msgstr "Läuft nicht"
|
||||
|
||||
#: templates/stock_table.html:14
|
||||
msgid "Export Stock Information"
|
||||
msgstr "Aktuellen Bestand exportieren"
|
||||
@ -6932,38 +6948,41 @@ msgstr "Berechtigungen"
|
||||
msgid "Important dates"
|
||||
msgstr "wichtige Daten"
|
||||
|
||||
#: users/models.py:158
|
||||
#: users/models.py:165
|
||||
msgid "Permission set"
|
||||
msgstr "Berechtigung geändert"
|
||||
|
||||
#: users/models.py:166
|
||||
#: users/models.py:173
|
||||
msgid "Group"
|
||||
msgstr "Gruppe"
|
||||
|
||||
#: users/models.py:169
|
||||
#: users/models.py:176
|
||||
msgid "View"
|
||||
msgstr "Ansicht"
|
||||
|
||||
#: users/models.py:169
|
||||
#: users/models.py:176
|
||||
msgid "Permission to view items"
|
||||
msgstr "Berechtigung Einträge anzuzeigen"
|
||||
|
||||
#: users/models.py:171
|
||||
#: users/models.py:178
|
||||
msgid "Permission to add items"
|
||||
msgstr "Berechtigung Einträge zu erstellen"
|
||||
|
||||
#: users/models.py:173
|
||||
#: users/models.py:180
|
||||
msgid "Change"
|
||||
msgstr "Ändern"
|
||||
|
||||
#: users/models.py:173
|
||||
#: users/models.py:180
|
||||
msgid "Permissions to edit items"
|
||||
msgstr "Berechtigungen Einträge zu ändern"
|
||||
|
||||
#: users/models.py:175
|
||||
#: users/models.py:182
|
||||
msgid "Permission to delete items"
|
||||
msgstr "Berechtigung Einträge zu löschen"
|
||||
|
||||
#~ msgid "InvenTree server issues detected"
|
||||
#~ msgstr "InvenTree Server Fehler aufgetreten"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Stocktake"
|
||||
#~ msgid "take"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-04-04 20:22+0000\n"
|
||||
"POT-Creation-Date: 2021-04-11 22:07+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -18,15 +18,15 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: InvenTree/api.py:62
|
||||
#: InvenTree/api.py:64
|
||||
msgid "API endpoint not found"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/api.py:108
|
||||
#: InvenTree/api.py:110
|
||||
msgid "No action specified"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/api.py:122
|
||||
#: InvenTree/api.py:124
|
||||
msgid "No matching action found"
|
||||
msgstr ""
|
||||
|
||||
@ -124,7 +124,7 @@ msgstr ""
|
||||
|
||||
#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1888
|
||||
#: report/templates/report/inventree_test_report_base.html:91
|
||||
#: templates/js/stock.js:960
|
||||
#: templates/js/stock.js:964
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
@ -140,7 +140,7 @@ msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/models.py:114 build/models.py:134
|
||||
#: build/templates/build/detail.html:21 company/models.py:361
|
||||
#: build/templates/build/detail.html:21 company/models.py:365
|
||||
#: company/templates/company/detail.html:26
|
||||
#: company/templates/company/supplier_part_base.html:70
|
||||
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
|
||||
@ -155,8 +155,8 @@ msgstr ""
|
||||
#: templates/js/build.js:677 templates/js/build.js:944
|
||||
#: templates/js/company.js:56 templates/js/order.js:183
|
||||
#: templates/js/order.js:280 templates/js/part.js:168 templates/js/part.js:251
|
||||
#: templates/js/part.js:370 templates/js/part.js:566 templates/js/stock.js:552
|
||||
#: templates/js/stock.js:934
|
||||
#: templates/js/part.js:370 templates/js/part.js:566 templates/js/stock.js:554
|
||||
#: templates/js/stock.js:938
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
@ -168,31 +168,31 @@ msgstr ""
|
||||
msgid "parent"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:430
|
||||
#: InvenTree/settings.py:480
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:431
|
||||
#: InvenTree/settings.py:481
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:432
|
||||
#: InvenTree/settings.py:482
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:433
|
||||
#: InvenTree/settings.py:483
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:434
|
||||
#: InvenTree/settings.py:484
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/status.py:24
|
||||
msgid "Celery worker check failed"
|
||||
#: InvenTree/status.py:57
|
||||
msgid "Background worker check failed"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/status.py:27
|
||||
#: InvenTree/status.py:60
|
||||
msgid "InvenTree system health checks failed"
|
||||
msgstr ""
|
||||
|
||||
@ -308,7 +308,7 @@ msgstr ""
|
||||
msgid "Password fields must match"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/views.py:887 templates/navbar.html:83
|
||||
#: InvenTree/views.py:887 templates/navbar.html:85
|
||||
msgid "System Information"
|
||||
msgstr ""
|
||||
|
||||
@ -404,7 +404,7 @@ msgstr ""
|
||||
#: stock/templates/stock/item_base.html:240
|
||||
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
|
||||
#: templates/js/bom.js:205 templates/js/build.js:420 templates/js/build.js:954
|
||||
#: templates/js/stock.js:952 templates/js/stock.js:1190
|
||||
#: templates/js/stock.js:956 templates/js/stock.js:1194
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
@ -450,7 +450,7 @@ msgstr ""
|
||||
#: stock/templates/stock/stock_adjust.html:17
|
||||
#: templates/InvenTree/search.html:244 templates/js/barcode.js:363
|
||||
#: templates/js/barcode.js:531 templates/js/build.js:434
|
||||
#: templates/js/stock.js:637
|
||||
#: templates/js/stock.js:641
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
@ -493,7 +493,7 @@ msgstr ""
|
||||
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
|
||||
#: order/templates/order/so_navbar.html:19
|
||||
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
|
||||
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:181
|
||||
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:182
|
||||
#: templates/InvenTree/search.html:169
|
||||
#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
|
||||
msgid "Build Orders"
|
||||
@ -527,7 +527,7 @@ msgstr ""
|
||||
|
||||
#: build/models.py:152 build/templates/build/auto_allocate.html:16
|
||||
#: build/templates/build/build_base.html:86
|
||||
#: build/templates/build/detail.html:26 company/models.py:535
|
||||
#: build/templates/build/detail.html:26 company/models.py:539
|
||||
#: order/models.py:637 order/models.py:669
|
||||
#: order/templates/order/order_wizard/select_parts.html:30
|
||||
#: order/templates/order/purchase_order_detail.html:156
|
||||
@ -546,8 +546,8 @@ msgstr ""
|
||||
#: templates/js/barcode.js:362 templates/js/bom.js:163
|
||||
#: templates/js/build.js:681 templates/js/build.js:921
|
||||
#: templates/js/company.js:138 templates/js/part.js:232
|
||||
#: templates/js/part.js:337 templates/js/stock.js:524
|
||||
#: templates/js/stock.js:1262
|
||||
#: templates/js/part.js:337 templates/js/stock.js:523
|
||||
#: templates/js/stock.js:1266
|
||||
msgid "Part"
|
||||
msgstr ""
|
||||
|
||||
@ -663,7 +663,7 @@ msgid "Link to external URL"
|
||||
msgstr ""
|
||||
|
||||
#: build/models.py:261 build/templates/build/navbar.html:59
|
||||
#: company/models.py:129 company/models.py:368
|
||||
#: company/models.py:133 company/models.py:372
|
||||
#: company/templates/company/navbar.html:59
|
||||
#: company/templates/company/navbar.html:62 order/models.py:123
|
||||
#: order/models.py:597 order/templates/order/po_navbar.html:29
|
||||
@ -677,7 +677,7 @@ msgstr ""
|
||||
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
|
||||
#: stock/models.py:496 stock/models.py:1555 stock/models.py:1665
|
||||
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
|
||||
#: templates/js/bom.js:329 templates/js/stock.js:128 templates/js/stock.js:667
|
||||
#: templates/js/bom.js:329 templates/js/stock.js:128 templates/js/stock.js:671
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
@ -749,7 +749,7 @@ msgstr ""
|
||||
#: stock/templates/stock/item_base.html:89
|
||||
#: stock/templates/stock/item_base.html:324
|
||||
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:771
|
||||
#: templates/js/stock.js:923 templates/js/stock.js:1181
|
||||
#: templates/js/stock.js:927 templates/js/stock.js:1185
|
||||
msgid "Stock Item"
|
||||
msgstr ""
|
||||
|
||||
@ -908,7 +908,7 @@ msgstr ""
|
||||
#: stock/templates/stock/item_base.html:376 templates/InvenTree/search.html:236
|
||||
#: templates/js/barcode.js:119 templates/js/build.js:710
|
||||
#: templates/js/order.js:187 templates/js/order.js:285
|
||||
#: templates/js/stock.js:624 templates/js/stock.js:1198
|
||||
#: templates/js/stock.js:628 templates/js/stock.js:1202
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
@ -1042,8 +1042,8 @@ msgid "Destination location not specified"
|
||||
msgstr ""
|
||||
|
||||
#: build/templates/build/detail.html:70
|
||||
#: stock/templates/stock/item_base.html:288 templates/js/stock.js:632
|
||||
#: templates/js/stock.js:1205 templates/js/table_filters.js:85
|
||||
#: stock/templates/stock/item_base.html:288 templates/js/stock.js:636
|
||||
#: templates/js/stock.js:1209 templates/js/table_filters.js:85
|
||||
#: templates/js/table_filters.js:179
|
||||
msgid "Batch"
|
||||
msgstr ""
|
||||
@ -1304,7 +1304,7 @@ msgstr ""
|
||||
msgid "String descriptor for the server instance"
|
||||
msgstr ""
|
||||
|
||||
#: common/models.py:62 company/models.py:96 company/models.py:97
|
||||
#: common/models.py:62 company/models.py:95 company/models.py:96
|
||||
msgid "Company name"
|
||||
msgstr ""
|
||||
|
||||
@ -1652,12 +1652,12 @@ msgstr ""
|
||||
msgid "Supplied value must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: company/forms.py:37 company/models.py:139
|
||||
#: company/forms.py:37 company/models.py:143
|
||||
#: company/templates/company/detail.html:40
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#: company/forms.py:38 company/models.py:141
|
||||
#: company/forms.py:38 company/models.py:145
|
||||
msgid "Default currency used for this company"
|
||||
msgstr ""
|
||||
|
||||
@ -1677,104 +1677,104 @@ msgstr ""
|
||||
msgid "Single quantity price"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:99
|
||||
#: company/models.py:100
|
||||
msgid "Company description"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:99
|
||||
#: company/models.py:101
|
||||
msgid "Description of the company"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:101 company/templates/company/company_base.html:70
|
||||
#: company/models.py:105 company/templates/company/company_base.html:70
|
||||
#: company/templates/company/detail.html:31 templates/js/company.js:60
|
||||
msgid "Website"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:101
|
||||
#: company/models.py:105
|
||||
msgid "Company website URL"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:104 company/templates/company/company_base.html:77
|
||||
#: company/models.py:108 company/templates/company/company_base.html:77
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:105
|
||||
#: company/models.py:109
|
||||
msgid "Company address"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:108
|
||||
#: company/models.py:112
|
||||
msgid "Phone number"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:109
|
||||
#: company/models.py:113
|
||||
msgid "Contact phone number"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:112 company/templates/company/company_base.html:91
|
||||
#: company/models.py:116 company/templates/company/company_base.html:91
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:112
|
||||
#: company/models.py:116
|
||||
msgid "Contact email address"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:115 company/templates/company/company_base.html:98
|
||||
#: company/models.py:119 company/templates/company/company_base.html:98
|
||||
msgid "Contact"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:116
|
||||
#: company/models.py:120
|
||||
msgid "Point of contact"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:118 company/models.py:355 order/models.py:103
|
||||
#: company/models.py:122 company/models.py:359 order/models.py:103
|
||||
#: part/models.py:743
|
||||
#: report/templates/report/inventree_build_order_base.html:165
|
||||
#: stock/models.py:1557 templates/js/company.js:208 templates/js/part.js:430
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:118
|
||||
#: company/models.py:122
|
||||
msgid "Link to external company information"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:126 part/models.py:753
|
||||
#: company/models.py:130 part/models.py:753
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:131
|
||||
#: company/models.py:135
|
||||
msgid "is customer"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:131
|
||||
#: company/models.py:135
|
||||
msgid "Do you sell items to this company?"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:133
|
||||
#: company/models.py:137
|
||||
msgid "is supplier"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:133
|
||||
#: company/models.py:137
|
||||
msgid "Do you purchase items from this company?"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:135
|
||||
#: company/models.py:139
|
||||
msgid "is manufacturer"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:135
|
||||
#: company/models.py:139
|
||||
msgid "Does this company manufacture parts?"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:315 stock/models.py:371
|
||||
#: company/models.py:319 stock/models.py:371
|
||||
#: stock/templates/stock/item_base.html:220
|
||||
msgid "Base Part"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:319 order/views.py:1372
|
||||
#: company/models.py:323 order/views.py:1372
|
||||
msgid "Select part"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:325 company/templates/company/detail.html:60
|
||||
#: company/models.py:329 company/templates/company/detail.html:60
|
||||
#: company/templates/company/supplier_part_base.html:83
|
||||
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
|
||||
#: order/templates/order/order_base.html:92
|
||||
@ -1784,80 +1784,80 @@ msgstr ""
|
||||
msgid "Supplier"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:326
|
||||
#: company/models.py:330
|
||||
msgid "Select supplier"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:331 company/templates/company/supplier_part_base.html:87
|
||||
#: company/models.py:335 company/templates/company/supplier_part_base.html:87
|
||||
#: company/templates/company/supplier_part_detail.html:26
|
||||
#: order/templates/order/purchase_order_detail.html:174 part/bom.py:171
|
||||
msgid "SKU"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:332
|
||||
#: company/models.py:336
|
||||
msgid "Supplier stock keeping unit"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:342 company/templates/company/detail.html:55
|
||||
#: company/models.py:346 company/templates/company/detail.html:55
|
||||
#: company/templates/company/supplier_part_base.html:93
|
||||
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:172
|
||||
#: templates/js/company.js:44 templates/js/company.js:188
|
||||
msgid "Manufacturer"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:343
|
||||
#: company/models.py:347
|
||||
msgid "Select manufacturer"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:349 company/templates/company/supplier_part_base.html:99
|
||||
#: company/models.py:353 company/templates/company/supplier_part_base.html:99
|
||||
#: company/templates/company/supplier_part_detail.html:35
|
||||
#: order/templates/order/purchase_order_detail.html:183 part/bom.py:173
|
||||
#: templates/js/company.js:204
|
||||
msgid "MPN"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:350
|
||||
#: company/models.py:354
|
||||
msgid "Manufacturer part number"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:356
|
||||
#: company/models.py:360
|
||||
msgid "URL for external supplier part link"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:362
|
||||
#: company/models.py:366
|
||||
msgid "Supplier part description"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:367 company/templates/company/supplier_part_base.html:113
|
||||
#: company/models.py:371 company/templates/company/supplier_part_base.html:113
|
||||
#: company/templates/company/supplier_part_detail.html:38 part/models.py:2170
|
||||
#: report/templates/report/inventree_po_report.html:93
|
||||
#: report/templates/report/inventree_so_report.html:93
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:371
|
||||
#: company/models.py:375
|
||||
msgid "base cost"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:371
|
||||
#: company/models.py:375
|
||||
msgid "Minimum charge (e.g. stocking fee)"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:373 company/templates/company/supplier_part_base.html:106
|
||||
#: company/models.py:377 company/templates/company/supplier_part_base.html:106
|
||||
#: stock/models.py:395 stock/templates/stock/item_base.html:295
|
||||
#: templates/js/stock.js:663
|
||||
#: templates/js/stock.js:667
|
||||
msgid "Packaging"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:373
|
||||
#: company/models.py:377
|
||||
msgid "Part packaging"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:375
|
||||
#: company/models.py:379
|
||||
msgid "multiple"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:375
|
||||
#: company/models.py:379
|
||||
msgid "Order multiple"
|
||||
msgstr ""
|
||||
|
||||
@ -1950,7 +1950,7 @@ msgstr ""
|
||||
|
||||
#: company/templates/company/detail_part.html:21
|
||||
#: order/templates/order/purchase_order_detail.html:74
|
||||
#: part/templates/part/supplier.html:17 templates/js/stock.js:1082
|
||||
#: part/templates/part/supplier.html:17 templates/js/stock.js:1086
|
||||
msgid "New Supplier Part"
|
||||
msgstr ""
|
||||
|
||||
@ -1974,7 +1974,7 @@ msgstr ""
|
||||
|
||||
#: company/templates/company/detail_part.html:66
|
||||
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
|
||||
#: templates/js/stock.js:1076
|
||||
#: templates/js/stock.js:1080
|
||||
msgid "New Part"
|
||||
msgstr ""
|
||||
|
||||
@ -2029,14 +2029,14 @@ msgstr ""
|
||||
#: part/templates/part/category_partlist.html:10
|
||||
#: templates/InvenTree/index.html:96 templates/InvenTree/search.html:113
|
||||
#: templates/InvenTree/settings/tabs.html:25 templates/navbar.html:23
|
||||
#: templates/stats.html:35 templates/stats.html:44 users/models.py:38
|
||||
#: templates/stats.html:48 templates/stats.html:57 users/models.py:38
|
||||
msgid "Parts"
|
||||
msgstr ""
|
||||
|
||||
#: company/templates/company/navbar.html:27 part/templates/part/navbar.html:33
|
||||
#: stock/templates/stock/location.html:100
|
||||
#: stock/templates/stock/location.html:115 templates/InvenTree/search.html:182
|
||||
#: templates/stats.html:48 templates/stats.html:57 users/models.py:40
|
||||
#: templates/stats.html:61 templates/stats.html:70 users/models.py:40
|
||||
msgid "Stock Items"
|
||||
msgstr ""
|
||||
|
||||
@ -2048,7 +2048,7 @@ msgstr ""
|
||||
#: templates/InvenTree/index.html:127 templates/InvenTree/search.html:180
|
||||
#: templates/InvenTree/search.html:216
|
||||
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:172
|
||||
#: templates/js/part.js:397 templates/js/stock.js:559 templates/navbar.html:26
|
||||
#: templates/js/part.js:397 templates/js/stock.js:563 templates/navbar.html:26
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
@ -2059,7 +2059,7 @@ msgstr ""
|
||||
#: order/templates/order/sales_orders.html:8
|
||||
#: order/templates/order/sales_orders.html:13
|
||||
#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
|
||||
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:226
|
||||
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:227
|
||||
#: templates/InvenTree/search.html:330
|
||||
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
|
||||
#: users/models.py:43
|
||||
@ -2071,7 +2071,7 @@ msgstr ""
|
||||
#: order/templates/order/purchase_orders.html:8
|
||||
#: order/templates/order/purchase_orders.html:13
|
||||
#: part/templates/part/navbar.html:78 part/templates/part/navbar.html:81
|
||||
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:203
|
||||
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:204
|
||||
#: templates/InvenTree/search.html:300
|
||||
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
|
||||
#: users/models.py:42
|
||||
@ -2263,7 +2263,7 @@ msgstr ""
|
||||
msgid "Edit Supplier Part"
|
||||
msgstr ""
|
||||
|
||||
#: company/views.py:378 templates/js/stock.js:1083
|
||||
#: company/views.py:378 templates/js/stock.js:1087
|
||||
msgid "Create new Supplier Part"
|
||||
msgstr ""
|
||||
|
||||
@ -2713,8 +2713,8 @@ msgstr ""
|
||||
#: order/templates/order/purchase_order_detail.html:45
|
||||
#: order/templates/order/purchase_order_detail.html:125
|
||||
#: part/templates/part/category.html:197 part/templates/part/category.html:239
|
||||
#: stock/templates/stock/location.html:191 templates/js/stock.js:704
|
||||
#: templates/js/stock.js:1088
|
||||
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
|
||||
#: templates/js/stock.js:1092
|
||||
msgid "New Location"
|
||||
msgstr ""
|
||||
|
||||
@ -3242,7 +3242,7 @@ msgstr ""
|
||||
|
||||
#: part/models.py:83 part/templates/part/category.html:19
|
||||
#: part/templates/part/category.html:90 part/templates/part/category.html:141
|
||||
#: templates/InvenTree/search.html:126 templates/stats.html:39
|
||||
#: templates/InvenTree/search.html:126 templates/stats.html:52
|
||||
#: users/models.py:37
|
||||
msgid "Part Categories"
|
||||
msgstr ""
|
||||
@ -3675,7 +3675,7 @@ msgid "All selected BOM items will be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: part/templates/part/bom.html:160 part/views.py:584
|
||||
#: templates/js/stock.js:1077
|
||||
#: templates/js/stock.js:1081
|
||||
msgid "Create New Part"
|
||||
msgstr ""
|
||||
|
||||
@ -3844,7 +3844,7 @@ msgid "Export Data"
|
||||
msgstr ""
|
||||
|
||||
#: part/templates/part/category.html:198
|
||||
#: stock/templates/stock/location.html:192 templates/js/stock.js:705
|
||||
#: stock/templates/stock/location.html:192 templates/js/stock.js:709
|
||||
msgid "Create new location"
|
||||
msgstr ""
|
||||
|
||||
@ -4085,7 +4085,7 @@ msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: part/templates/part/params.html:44 part/templates/part/related.html:44
|
||||
#: part/templates/part/supplier.html:22 stock/views.py:1002 users/models.py:175
|
||||
#: part/templates/part/supplier.html:22 stock/views.py:1002 users/models.py:182
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
@ -4628,7 +4628,7 @@ msgid "Result"
|
||||
msgstr ""
|
||||
|
||||
#: report/templates/report/inventree_test_report_base.html:92
|
||||
#: templates/js/order.js:195 templates/js/stock.js:905
|
||||
#: templates/js/order.js:195 templates/js/stock.js:909
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
@ -4651,7 +4651,7 @@ msgid "Moved {n} parts to {loc}"
|
||||
msgstr ""
|
||||
|
||||
#: stock/forms.py:114 stock/forms.py:406 stock/models.py:473
|
||||
#: stock/templates/stock/item_base.html:349 templates/js/stock.js:652
|
||||
#: stock/templates/stock/item_base.html:349 templates/js/stock.js:656
|
||||
msgid "Expiry Date"
|
||||
msgstr ""
|
||||
|
||||
@ -5085,11 +5085,11 @@ msgid "Remove stock"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:169
|
||||
msgid "Transfer stock"
|
||||
msgid "Serialize stock"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:172
|
||||
msgid "Serialize stock"
|
||||
#: stock/templates/stock/item_base.html:173
|
||||
msgid "Transfer stock"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:176
|
||||
@ -5100,7 +5100,7 @@ msgstr ""
|
||||
msgid "Return to stock"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1218
|
||||
#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1222
|
||||
msgid "Uninstall stock item"
|
||||
msgstr ""
|
||||
|
||||
@ -5153,7 +5153,7 @@ msgstr ""
|
||||
msgid "This StockItem expires on"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:362 templates/js/stock.js:658
|
||||
#: stock/templates/stock/item_base.html:362 templates/js/stock.js:662
|
||||
msgid "Last Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5266,7 +5266,7 @@ msgid "Stock Details"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/location.html:110 templates/InvenTree/search.html:263
|
||||
#: templates/stats.html:52 users/models.py:39
|
||||
#: templates/stats.html:65 users/models.py:39
|
||||
msgid "Stock Locations"
|
||||
msgstr ""
|
||||
|
||||
@ -5451,7 +5451,7 @@ msgstr ""
|
||||
msgid "Add Stock Items"
|
||||
msgstr ""
|
||||
|
||||
#: stock/views.py:1001 users/models.py:171
|
||||
#: stock/views.py:1001 users/models.py:178
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
@ -5581,35 +5581,35 @@ msgstr ""
|
||||
msgid "Recently Updated"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:143
|
||||
#: templates/InvenTree/index.html:144
|
||||
msgid "Expired Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:144
|
||||
#: templates/InvenTree/index.html:145
|
||||
msgid "Stale Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:182
|
||||
#: templates/InvenTree/index.html:183
|
||||
msgid "Build Orders In Progress"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:183
|
||||
#: templates/InvenTree/index.html:184
|
||||
msgid "Overdue Build Orders"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:204
|
||||
#: templates/InvenTree/index.html:205
|
||||
msgid "Outstanding Purchase Orders"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:205
|
||||
#: templates/InvenTree/index.html:206
|
||||
msgid "Overdue Purchase Orders"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:227
|
||||
#: templates/InvenTree/index.html:228
|
||||
msgid "Outstanding Sales Orders"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:228
|
||||
#: templates/InvenTree/index.html:229
|
||||
msgid "Overdue Sales Orders"
|
||||
msgstr ""
|
||||
|
||||
@ -5621,11 +5621,11 @@ msgstr ""
|
||||
msgid "Enter a search query"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/search.html:252 templates/js/stock.js:301
|
||||
#: templates/InvenTree/search.html:252 templates/js/stock.js:300
|
||||
msgid "Shipped to customer"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/search.html:255 templates/js/stock.js:311
|
||||
#: templates/InvenTree/search.html:255 templates/js/stock.js:310
|
||||
msgid "No stock location set"
|
||||
msgstr ""
|
||||
|
||||
@ -5700,7 +5700,7 @@ msgid "Edit setting"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/settings/settings.html:7
|
||||
#: templates/InvenTree/settings/settings.html:13 templates/navbar.html:76
|
||||
#: templates/InvenTree/settings/settings.html:13 templates/navbar.html:78
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -5797,30 +5797,38 @@ msgid "InvenTree Version"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:26
|
||||
msgid "Django Version"
|
||||
msgid "Up to Date"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:30
|
||||
msgid "Commit Hash"
|
||||
#: templates/about.html:28
|
||||
msgid "Update Available"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:34
|
||||
msgid "Commit Date"
|
||||
msgid "Django Version"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:38
|
||||
msgid "InvenTree Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:43
|
||||
msgid "View Code on GitHub"
|
||||
#: templates/about.html:41
|
||||
msgid "Commit Hash"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:48
|
||||
msgid "Get the App"
|
||||
msgid "Commit Date"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:53
|
||||
msgid "InvenTree Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:58
|
||||
msgid "View Code on GitHub"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:63
|
||||
msgid "Get the App"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:68
|
||||
msgid "Submit Bug Report"
|
||||
msgstr ""
|
||||
|
||||
@ -6018,8 +6026,8 @@ msgstr ""
|
||||
msgid "No builds matching query"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:512
|
||||
#: templates/js/stock.js:1250
|
||||
#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:511
|
||||
#: templates/js/stock.js:1254
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
@ -6371,115 +6379,115 @@ msgstr ""
|
||||
msgid "Test Date"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:293
|
||||
#: templates/js/stock.js:292
|
||||
msgid "In production"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:297
|
||||
#: templates/js/stock.js:296
|
||||
msgid "Installed in Stock Item"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:305
|
||||
#: templates/js/stock.js:304
|
||||
msgid "Assigned to Sales Order"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:337
|
||||
#: templates/js/stock.js:336
|
||||
msgid "No stock items matching query"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:479
|
||||
#: templates/js/stock.js:478
|
||||
msgid "Undefined location"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:575
|
||||
#: templates/js/stock.js:579
|
||||
msgid "Stock item is in production"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:580
|
||||
#: templates/js/stock.js:584
|
||||
msgid "Stock item assigned to sales order"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:583
|
||||
#: templates/js/stock.js:587
|
||||
msgid "Stock item assigned to customer"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:587
|
||||
#: templates/js/stock.js:591
|
||||
msgid "Stock item has expired"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:589
|
||||
#: templates/js/stock.js:593
|
||||
msgid "Stock item will expire soon"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:593
|
||||
#: templates/js/stock.js:597
|
||||
msgid "Stock item has been allocated"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:597
|
||||
#: templates/js/stock.js:601
|
||||
msgid "Stock item has been installed in another item"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:605
|
||||
#: templates/js/stock.js:609
|
||||
msgid "Stock item has been rejected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:609
|
||||
#: templates/js/stock.js:613
|
||||
msgid "Stock item is lost"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:612
|
||||
#: templates/js/stock.js:616
|
||||
msgid "Stock item is destroyed"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:616 templates/js/table_filters.js:116
|
||||
#: templates/js/stock.js:620 templates/js/table_filters.js:116
|
||||
msgid "Depleted"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:645
|
||||
#: templates/js/stock.js:649
|
||||
msgid "Stocktake"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:821
|
||||
#: templates/js/stock.js:825
|
||||
msgid "Stock Status"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:836
|
||||
#: templates/js/stock.js:840
|
||||
msgid "Set Stock Status"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:850
|
||||
#: templates/js/stock.js:854
|
||||
msgid "Select Status Code"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:851
|
||||
#: templates/js/stock.js:855
|
||||
msgid "Status code must be selected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:969
|
||||
#: templates/js/stock.js:973
|
||||
msgid "No user information"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:979
|
||||
#: templates/js/stock.js:983
|
||||
msgid "Edit tracking entry"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:980
|
||||
#: templates/js/stock.js:984
|
||||
msgid "Delete tracking entry"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:1089
|
||||
#: templates/js/stock.js:1093
|
||||
msgid "Create New Location"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:1188
|
||||
#: templates/js/stock.js:1192
|
||||
msgid "Serial"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:1281 templates/js/table_filters.js:149
|
||||
#: templates/js/stock.js:1285 templates/js/table_filters.js:149
|
||||
msgid "Installed"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:1306
|
||||
#: templates/js/stock.js:1310
|
||||
msgid "Install item"
|
||||
msgstr ""
|
||||
|
||||
@ -6705,23 +6713,19 @@ msgstr ""
|
||||
msgid "Scan Barcode"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:63
|
||||
msgid "InvenTree server issues detected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:69 users/models.py:36
|
||||
#: templates/navbar.html:71 users/models.py:36
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:71 templates/registration/logout.html:5
|
||||
#: templates/navbar.html:73 templates/registration/logout.html:5
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:73 templates/registration/login.html:89
|
||||
#: templates/navbar.html:75 templates/registration/login.html:89
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:85
|
||||
#: templates/navbar.html:94
|
||||
msgid "About InvenTree"
|
||||
msgstr ""
|
||||
|
||||
@ -6761,18 +6765,30 @@ msgstr ""
|
||||
msgid "Instance Name"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:18
|
||||
#: templates/stats.html:19
|
||||
msgid "Server status"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:21
|
||||
#: templates/stats.html:22
|
||||
msgid "Healthy"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:23
|
||||
#: templates/stats.html:24
|
||||
msgid "Issues detected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:30
|
||||
msgid "Background Worker"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:33
|
||||
msgid "Operational"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:35
|
||||
msgid "Not running"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stock_table.html:14
|
||||
msgid "Export Stock Information"
|
||||
msgstr ""
|
||||
@ -6857,34 +6873,34 @@ msgstr ""
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:158
|
||||
#: users/models.py:165
|
||||
msgid "Permission set"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:166
|
||||
#: users/models.py:173
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:169
|
||||
#: users/models.py:176
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:169
|
||||
#: users/models.py:176
|
||||
msgid "Permission to view items"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:171
|
||||
#: users/models.py:178
|
||||
msgid "Permission to add items"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:173
|
||||
#: users/models.py:180
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:173
|
||||
#: users/models.py:180
|
||||
msgid "Permissions to edit items"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:175
|
||||
#: users/models.py:182
|
||||
msgid "Permission to delete items"
|
||||
msgstr ""
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-04-04 20:22+0000\n"
|
||||
"POT-Creation-Date: 2021-04-11 22:07+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -18,15 +18,15 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: InvenTree/api.py:62
|
||||
#: InvenTree/api.py:64
|
||||
msgid "API endpoint not found"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/api.py:108
|
||||
#: InvenTree/api.py:110
|
||||
msgid "No action specified"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/api.py:122
|
||||
#: InvenTree/api.py:124
|
||||
msgid "No matching action found"
|
||||
msgstr ""
|
||||
|
||||
@ -124,7 +124,7 @@ msgstr ""
|
||||
|
||||
#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1888
|
||||
#: report/templates/report/inventree_test_report_base.html:91
|
||||
#: templates/js/stock.js:960
|
||||
#: templates/js/stock.js:964
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
@ -140,7 +140,7 @@ msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/models.py:114 build/models.py:134
|
||||
#: build/templates/build/detail.html:21 company/models.py:361
|
||||
#: build/templates/build/detail.html:21 company/models.py:365
|
||||
#: company/templates/company/detail.html:26
|
||||
#: company/templates/company/supplier_part_base.html:70
|
||||
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
|
||||
@ -155,8 +155,8 @@ msgstr ""
|
||||
#: templates/js/build.js:677 templates/js/build.js:944
|
||||
#: templates/js/company.js:56 templates/js/order.js:183
|
||||
#: templates/js/order.js:280 templates/js/part.js:168 templates/js/part.js:251
|
||||
#: templates/js/part.js:370 templates/js/part.js:566 templates/js/stock.js:552
|
||||
#: templates/js/stock.js:934
|
||||
#: templates/js/part.js:370 templates/js/part.js:566 templates/js/stock.js:554
|
||||
#: templates/js/stock.js:938
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
@ -168,31 +168,31 @@ msgstr ""
|
||||
msgid "parent"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:430
|
||||
#: InvenTree/settings.py:480
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:431
|
||||
#: InvenTree/settings.py:481
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:432
|
||||
#: InvenTree/settings.py:482
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:433
|
||||
#: InvenTree/settings.py:483
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/settings.py:434
|
||||
#: InvenTree/settings.py:484
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/status.py:24
|
||||
msgid "Celery worker check failed"
|
||||
#: InvenTree/status.py:57
|
||||
msgid "Background worker check failed"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/status.py:27
|
||||
#: InvenTree/status.py:60
|
||||
msgid "InvenTree system health checks failed"
|
||||
msgstr ""
|
||||
|
||||
@ -308,7 +308,7 @@ msgstr ""
|
||||
msgid "Password fields must match"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/views.py:887 templates/navbar.html:83
|
||||
#: InvenTree/views.py:887 templates/navbar.html:85
|
||||
msgid "System Information"
|
||||
msgstr ""
|
||||
|
||||
@ -404,7 +404,7 @@ msgstr ""
|
||||
#: stock/templates/stock/item_base.html:240
|
||||
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
|
||||
#: templates/js/bom.js:205 templates/js/build.js:420 templates/js/build.js:954
|
||||
#: templates/js/stock.js:952 templates/js/stock.js:1190
|
||||
#: templates/js/stock.js:956 templates/js/stock.js:1194
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
@ -450,7 +450,7 @@ msgstr ""
|
||||
#: stock/templates/stock/stock_adjust.html:17
|
||||
#: templates/InvenTree/search.html:244 templates/js/barcode.js:363
|
||||
#: templates/js/barcode.js:531 templates/js/build.js:434
|
||||
#: templates/js/stock.js:637
|
||||
#: templates/js/stock.js:641
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
@ -493,7 +493,7 @@ msgstr ""
|
||||
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
|
||||
#: order/templates/order/so_navbar.html:19
|
||||
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
|
||||
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:181
|
||||
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:182
|
||||
#: templates/InvenTree/search.html:169
|
||||
#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
|
||||
msgid "Build Orders"
|
||||
@ -527,7 +527,7 @@ msgstr ""
|
||||
|
||||
#: build/models.py:152 build/templates/build/auto_allocate.html:16
|
||||
#: build/templates/build/build_base.html:86
|
||||
#: build/templates/build/detail.html:26 company/models.py:535
|
||||
#: build/templates/build/detail.html:26 company/models.py:539
|
||||
#: order/models.py:637 order/models.py:669
|
||||
#: order/templates/order/order_wizard/select_parts.html:30
|
||||
#: order/templates/order/purchase_order_detail.html:156
|
||||
@ -546,8 +546,8 @@ msgstr ""
|
||||
#: templates/js/barcode.js:362 templates/js/bom.js:163
|
||||
#: templates/js/build.js:681 templates/js/build.js:921
|
||||
#: templates/js/company.js:138 templates/js/part.js:232
|
||||
#: templates/js/part.js:337 templates/js/stock.js:524
|
||||
#: templates/js/stock.js:1262
|
||||
#: templates/js/part.js:337 templates/js/stock.js:523
|
||||
#: templates/js/stock.js:1266
|
||||
msgid "Part"
|
||||
msgstr ""
|
||||
|
||||
@ -663,7 +663,7 @@ msgid "Link to external URL"
|
||||
msgstr ""
|
||||
|
||||
#: build/models.py:261 build/templates/build/navbar.html:59
|
||||
#: company/models.py:129 company/models.py:368
|
||||
#: company/models.py:133 company/models.py:372
|
||||
#: company/templates/company/navbar.html:59
|
||||
#: company/templates/company/navbar.html:62 order/models.py:123
|
||||
#: order/models.py:597 order/templates/order/po_navbar.html:29
|
||||
@ -677,7 +677,7 @@ msgstr ""
|
||||
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
|
||||
#: stock/models.py:496 stock/models.py:1555 stock/models.py:1665
|
||||
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
|
||||
#: templates/js/bom.js:329 templates/js/stock.js:128 templates/js/stock.js:667
|
||||
#: templates/js/bom.js:329 templates/js/stock.js:128 templates/js/stock.js:671
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
@ -749,7 +749,7 @@ msgstr ""
|
||||
#: stock/templates/stock/item_base.html:89
|
||||
#: stock/templates/stock/item_base.html:324
|
||||
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:771
|
||||
#: templates/js/stock.js:923 templates/js/stock.js:1181
|
||||
#: templates/js/stock.js:927 templates/js/stock.js:1185
|
||||
msgid "Stock Item"
|
||||
msgstr ""
|
||||
|
||||
@ -908,7 +908,7 @@ msgstr ""
|
||||
#: stock/templates/stock/item_base.html:376 templates/InvenTree/search.html:236
|
||||
#: templates/js/barcode.js:119 templates/js/build.js:710
|
||||
#: templates/js/order.js:187 templates/js/order.js:285
|
||||
#: templates/js/stock.js:624 templates/js/stock.js:1198
|
||||
#: templates/js/stock.js:628 templates/js/stock.js:1202
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
@ -1042,8 +1042,8 @@ msgid "Destination location not specified"
|
||||
msgstr ""
|
||||
|
||||
#: build/templates/build/detail.html:70
|
||||
#: stock/templates/stock/item_base.html:288 templates/js/stock.js:632
|
||||
#: templates/js/stock.js:1205 templates/js/table_filters.js:85
|
||||
#: stock/templates/stock/item_base.html:288 templates/js/stock.js:636
|
||||
#: templates/js/stock.js:1209 templates/js/table_filters.js:85
|
||||
#: templates/js/table_filters.js:179
|
||||
msgid "Batch"
|
||||
msgstr ""
|
||||
@ -1304,7 +1304,7 @@ msgstr ""
|
||||
msgid "String descriptor for the server instance"
|
||||
msgstr ""
|
||||
|
||||
#: common/models.py:62 company/models.py:96 company/models.py:97
|
||||
#: common/models.py:62 company/models.py:95 company/models.py:96
|
||||
msgid "Company name"
|
||||
msgstr ""
|
||||
|
||||
@ -1652,12 +1652,12 @@ msgstr ""
|
||||
msgid "Supplied value must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: company/forms.py:37 company/models.py:139
|
||||
#: company/forms.py:37 company/models.py:143
|
||||
#: company/templates/company/detail.html:40
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#: company/forms.py:38 company/models.py:141
|
||||
#: company/forms.py:38 company/models.py:145
|
||||
msgid "Default currency used for this company"
|
||||
msgstr ""
|
||||
|
||||
@ -1677,104 +1677,104 @@ msgstr ""
|
||||
msgid "Single quantity price"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:99
|
||||
#: company/models.py:100
|
||||
msgid "Company description"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:99
|
||||
#: company/models.py:101
|
||||
msgid "Description of the company"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:101 company/templates/company/company_base.html:70
|
||||
#: company/models.py:105 company/templates/company/company_base.html:70
|
||||
#: company/templates/company/detail.html:31 templates/js/company.js:60
|
||||
msgid "Website"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:101
|
||||
#: company/models.py:105
|
||||
msgid "Company website URL"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:104 company/templates/company/company_base.html:77
|
||||
#: company/models.py:108 company/templates/company/company_base.html:77
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:105
|
||||
#: company/models.py:109
|
||||
msgid "Company address"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:108
|
||||
#: company/models.py:112
|
||||
msgid "Phone number"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:109
|
||||
#: company/models.py:113
|
||||
msgid "Contact phone number"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:112 company/templates/company/company_base.html:91
|
||||
#: company/models.py:116 company/templates/company/company_base.html:91
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:112
|
||||
#: company/models.py:116
|
||||
msgid "Contact email address"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:115 company/templates/company/company_base.html:98
|
||||
#: company/models.py:119 company/templates/company/company_base.html:98
|
||||
msgid "Contact"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:116
|
||||
#: company/models.py:120
|
||||
msgid "Point of contact"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:118 company/models.py:355 order/models.py:103
|
||||
#: company/models.py:122 company/models.py:359 order/models.py:103
|
||||
#: part/models.py:743
|
||||
#: report/templates/report/inventree_build_order_base.html:165
|
||||
#: stock/models.py:1557 templates/js/company.js:208 templates/js/part.js:430
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:118
|
||||
#: company/models.py:122
|
||||
msgid "Link to external company information"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:126 part/models.py:753
|
||||
#: company/models.py:130 part/models.py:753
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:131
|
||||
#: company/models.py:135
|
||||
msgid "is customer"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:131
|
||||
#: company/models.py:135
|
||||
msgid "Do you sell items to this company?"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:133
|
||||
#: company/models.py:137
|
||||
msgid "is supplier"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:133
|
||||
#: company/models.py:137
|
||||
msgid "Do you purchase items from this company?"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:135
|
||||
#: company/models.py:139
|
||||
msgid "is manufacturer"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:135
|
||||
#: company/models.py:139
|
||||
msgid "Does this company manufacture parts?"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:315 stock/models.py:371
|
||||
#: company/models.py:319 stock/models.py:371
|
||||
#: stock/templates/stock/item_base.html:220
|
||||
msgid "Base Part"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:319 order/views.py:1372
|
||||
#: company/models.py:323 order/views.py:1372
|
||||
msgid "Select part"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:325 company/templates/company/detail.html:60
|
||||
#: company/models.py:329 company/templates/company/detail.html:60
|
||||
#: company/templates/company/supplier_part_base.html:83
|
||||
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
|
||||
#: order/templates/order/order_base.html:92
|
||||
@ -1784,80 +1784,80 @@ msgstr ""
|
||||
msgid "Supplier"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:326
|
||||
#: company/models.py:330
|
||||
msgid "Select supplier"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:331 company/templates/company/supplier_part_base.html:87
|
||||
#: company/models.py:335 company/templates/company/supplier_part_base.html:87
|
||||
#: company/templates/company/supplier_part_detail.html:26
|
||||
#: order/templates/order/purchase_order_detail.html:174 part/bom.py:171
|
||||
msgid "SKU"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:332
|
||||
#: company/models.py:336
|
||||
msgid "Supplier stock keeping unit"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:342 company/templates/company/detail.html:55
|
||||
#: company/models.py:346 company/templates/company/detail.html:55
|
||||
#: company/templates/company/supplier_part_base.html:93
|
||||
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:172
|
||||
#: templates/js/company.js:44 templates/js/company.js:188
|
||||
msgid "Manufacturer"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:343
|
||||
#: company/models.py:347
|
||||
msgid "Select manufacturer"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:349 company/templates/company/supplier_part_base.html:99
|
||||
#: company/models.py:353 company/templates/company/supplier_part_base.html:99
|
||||
#: company/templates/company/supplier_part_detail.html:35
|
||||
#: order/templates/order/purchase_order_detail.html:183 part/bom.py:173
|
||||
#: templates/js/company.js:204
|
||||
msgid "MPN"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:350
|
||||
#: company/models.py:354
|
||||
msgid "Manufacturer part number"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:356
|
||||
#: company/models.py:360
|
||||
msgid "URL for external supplier part link"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:362
|
||||
#: company/models.py:366
|
||||
msgid "Supplier part description"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:367 company/templates/company/supplier_part_base.html:113
|
||||
#: company/models.py:371 company/templates/company/supplier_part_base.html:113
|
||||
#: company/templates/company/supplier_part_detail.html:38 part/models.py:2170
|
||||
#: report/templates/report/inventree_po_report.html:93
|
||||
#: report/templates/report/inventree_so_report.html:93
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:371
|
||||
#: company/models.py:375
|
||||
msgid "base cost"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:371
|
||||
#: company/models.py:375
|
||||
msgid "Minimum charge (e.g. stocking fee)"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:373 company/templates/company/supplier_part_base.html:106
|
||||
#: company/models.py:377 company/templates/company/supplier_part_base.html:106
|
||||
#: stock/models.py:395 stock/templates/stock/item_base.html:295
|
||||
#: templates/js/stock.js:663
|
||||
#: templates/js/stock.js:667
|
||||
msgid "Packaging"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:373
|
||||
#: company/models.py:377
|
||||
msgid "Part packaging"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:375
|
||||
#: company/models.py:379
|
||||
msgid "multiple"
|
||||
msgstr ""
|
||||
|
||||
#: company/models.py:375
|
||||
#: company/models.py:379
|
||||
msgid "Order multiple"
|
||||
msgstr ""
|
||||
|
||||
@ -1950,7 +1950,7 @@ msgstr ""
|
||||
|
||||
#: company/templates/company/detail_part.html:21
|
||||
#: order/templates/order/purchase_order_detail.html:74
|
||||
#: part/templates/part/supplier.html:17 templates/js/stock.js:1082
|
||||
#: part/templates/part/supplier.html:17 templates/js/stock.js:1086
|
||||
msgid "New Supplier Part"
|
||||
msgstr ""
|
||||
|
||||
@ -1974,7 +1974,7 @@ msgstr ""
|
||||
|
||||
#: company/templates/company/detail_part.html:66
|
||||
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
|
||||
#: templates/js/stock.js:1076
|
||||
#: templates/js/stock.js:1080
|
||||
msgid "New Part"
|
||||
msgstr ""
|
||||
|
||||
@ -2029,14 +2029,14 @@ msgstr ""
|
||||
#: part/templates/part/category_partlist.html:10
|
||||
#: templates/InvenTree/index.html:96 templates/InvenTree/search.html:113
|
||||
#: templates/InvenTree/settings/tabs.html:25 templates/navbar.html:23
|
||||
#: templates/stats.html:35 templates/stats.html:44 users/models.py:38
|
||||
#: templates/stats.html:48 templates/stats.html:57 users/models.py:38
|
||||
msgid "Parts"
|
||||
msgstr ""
|
||||
|
||||
#: company/templates/company/navbar.html:27 part/templates/part/navbar.html:33
|
||||
#: stock/templates/stock/location.html:100
|
||||
#: stock/templates/stock/location.html:115 templates/InvenTree/search.html:182
|
||||
#: templates/stats.html:48 templates/stats.html:57 users/models.py:40
|
||||
#: templates/stats.html:61 templates/stats.html:70 users/models.py:40
|
||||
msgid "Stock Items"
|
||||
msgstr ""
|
||||
|
||||
@ -2048,7 +2048,7 @@ msgstr ""
|
||||
#: templates/InvenTree/index.html:127 templates/InvenTree/search.html:180
|
||||
#: templates/InvenTree/search.html:216
|
||||
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:172
|
||||
#: templates/js/part.js:397 templates/js/stock.js:559 templates/navbar.html:26
|
||||
#: templates/js/part.js:397 templates/js/stock.js:563 templates/navbar.html:26
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
@ -2059,7 +2059,7 @@ msgstr ""
|
||||
#: order/templates/order/sales_orders.html:8
|
||||
#: order/templates/order/sales_orders.html:13
|
||||
#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
|
||||
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:226
|
||||
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:227
|
||||
#: templates/InvenTree/search.html:330
|
||||
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
|
||||
#: users/models.py:43
|
||||
@ -2071,7 +2071,7 @@ msgstr ""
|
||||
#: order/templates/order/purchase_orders.html:8
|
||||
#: order/templates/order/purchase_orders.html:13
|
||||
#: part/templates/part/navbar.html:78 part/templates/part/navbar.html:81
|
||||
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:203
|
||||
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:204
|
||||
#: templates/InvenTree/search.html:300
|
||||
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
|
||||
#: users/models.py:42
|
||||
@ -2263,7 +2263,7 @@ msgstr ""
|
||||
msgid "Edit Supplier Part"
|
||||
msgstr ""
|
||||
|
||||
#: company/views.py:378 templates/js/stock.js:1083
|
||||
#: company/views.py:378 templates/js/stock.js:1087
|
||||
msgid "Create new Supplier Part"
|
||||
msgstr ""
|
||||
|
||||
@ -2713,8 +2713,8 @@ msgstr ""
|
||||
#: order/templates/order/purchase_order_detail.html:45
|
||||
#: order/templates/order/purchase_order_detail.html:125
|
||||
#: part/templates/part/category.html:197 part/templates/part/category.html:239
|
||||
#: stock/templates/stock/location.html:191 templates/js/stock.js:704
|
||||
#: templates/js/stock.js:1088
|
||||
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
|
||||
#: templates/js/stock.js:1092
|
||||
msgid "New Location"
|
||||
msgstr ""
|
||||
|
||||
@ -3242,7 +3242,7 @@ msgstr ""
|
||||
|
||||
#: part/models.py:83 part/templates/part/category.html:19
|
||||
#: part/templates/part/category.html:90 part/templates/part/category.html:141
|
||||
#: templates/InvenTree/search.html:126 templates/stats.html:39
|
||||
#: templates/InvenTree/search.html:126 templates/stats.html:52
|
||||
#: users/models.py:37
|
||||
msgid "Part Categories"
|
||||
msgstr ""
|
||||
@ -3675,7 +3675,7 @@ msgid "All selected BOM items will be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: part/templates/part/bom.html:160 part/views.py:584
|
||||
#: templates/js/stock.js:1077
|
||||
#: templates/js/stock.js:1081
|
||||
msgid "Create New Part"
|
||||
msgstr ""
|
||||
|
||||
@ -3844,7 +3844,7 @@ msgid "Export Data"
|
||||
msgstr ""
|
||||
|
||||
#: part/templates/part/category.html:198
|
||||
#: stock/templates/stock/location.html:192 templates/js/stock.js:705
|
||||
#: stock/templates/stock/location.html:192 templates/js/stock.js:709
|
||||
msgid "Create new location"
|
||||
msgstr ""
|
||||
|
||||
@ -4085,7 +4085,7 @@ msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: part/templates/part/params.html:44 part/templates/part/related.html:44
|
||||
#: part/templates/part/supplier.html:22 stock/views.py:1002 users/models.py:175
|
||||
#: part/templates/part/supplier.html:22 stock/views.py:1002 users/models.py:182
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
@ -4628,7 +4628,7 @@ msgid "Result"
|
||||
msgstr ""
|
||||
|
||||
#: report/templates/report/inventree_test_report_base.html:92
|
||||
#: templates/js/order.js:195 templates/js/stock.js:905
|
||||
#: templates/js/order.js:195 templates/js/stock.js:909
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
@ -4651,7 +4651,7 @@ msgid "Moved {n} parts to {loc}"
|
||||
msgstr ""
|
||||
|
||||
#: stock/forms.py:114 stock/forms.py:406 stock/models.py:473
|
||||
#: stock/templates/stock/item_base.html:349 templates/js/stock.js:652
|
||||
#: stock/templates/stock/item_base.html:349 templates/js/stock.js:656
|
||||
msgid "Expiry Date"
|
||||
msgstr ""
|
||||
|
||||
@ -5085,11 +5085,11 @@ msgid "Remove stock"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:169
|
||||
msgid "Transfer stock"
|
||||
msgid "Serialize stock"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:172
|
||||
msgid "Serialize stock"
|
||||
#: stock/templates/stock/item_base.html:173
|
||||
msgid "Transfer stock"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:176
|
||||
@ -5100,7 +5100,7 @@ msgstr ""
|
||||
msgid "Return to stock"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1218
|
||||
#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1222
|
||||
msgid "Uninstall stock item"
|
||||
msgstr ""
|
||||
|
||||
@ -5153,7 +5153,7 @@ msgstr ""
|
||||
msgid "This StockItem expires on"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item_base.html:362 templates/js/stock.js:658
|
||||
#: stock/templates/stock/item_base.html:362 templates/js/stock.js:662
|
||||
msgid "Last Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5266,7 +5266,7 @@ msgid "Stock Details"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/location.html:110 templates/InvenTree/search.html:263
|
||||
#: templates/stats.html:52 users/models.py:39
|
||||
#: templates/stats.html:65 users/models.py:39
|
||||
msgid "Stock Locations"
|
||||
msgstr ""
|
||||
|
||||
@ -5451,7 +5451,7 @@ msgstr ""
|
||||
msgid "Add Stock Items"
|
||||
msgstr ""
|
||||
|
||||
#: stock/views.py:1001 users/models.py:171
|
||||
#: stock/views.py:1001 users/models.py:178
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
@ -5581,35 +5581,35 @@ msgstr ""
|
||||
msgid "Recently Updated"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:143
|
||||
#: templates/InvenTree/index.html:144
|
||||
msgid "Expired Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:144
|
||||
#: templates/InvenTree/index.html:145
|
||||
msgid "Stale Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:182
|
||||
#: templates/InvenTree/index.html:183
|
||||
msgid "Build Orders In Progress"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:183
|
||||
#: templates/InvenTree/index.html:184
|
||||
msgid "Overdue Build Orders"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:204
|
||||
#: templates/InvenTree/index.html:205
|
||||
msgid "Outstanding Purchase Orders"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:205
|
||||
#: templates/InvenTree/index.html:206
|
||||
msgid "Overdue Purchase Orders"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:227
|
||||
#: templates/InvenTree/index.html:228
|
||||
msgid "Outstanding Sales Orders"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/index.html:228
|
||||
#: templates/InvenTree/index.html:229
|
||||
msgid "Overdue Sales Orders"
|
||||
msgstr ""
|
||||
|
||||
@ -5621,11 +5621,11 @@ msgstr ""
|
||||
msgid "Enter a search query"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/search.html:252 templates/js/stock.js:301
|
||||
#: templates/InvenTree/search.html:252 templates/js/stock.js:300
|
||||
msgid "Shipped to customer"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/search.html:255 templates/js/stock.js:311
|
||||
#: templates/InvenTree/search.html:255 templates/js/stock.js:310
|
||||
msgid "No stock location set"
|
||||
msgstr ""
|
||||
|
||||
@ -5700,7 +5700,7 @@ msgid "Edit setting"
|
||||
msgstr ""
|
||||
|
||||
#: templates/InvenTree/settings/settings.html:7
|
||||
#: templates/InvenTree/settings/settings.html:13 templates/navbar.html:76
|
||||
#: templates/InvenTree/settings/settings.html:13 templates/navbar.html:78
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -5797,30 +5797,38 @@ msgid "InvenTree Version"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:26
|
||||
msgid "Django Version"
|
||||
msgid "Up to Date"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:30
|
||||
msgid "Commit Hash"
|
||||
#: templates/about.html:28
|
||||
msgid "Update Available"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:34
|
||||
msgid "Commit Date"
|
||||
msgid "Django Version"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:38
|
||||
msgid "InvenTree Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:43
|
||||
msgid "View Code on GitHub"
|
||||
#: templates/about.html:41
|
||||
msgid "Commit Hash"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:48
|
||||
msgid "Get the App"
|
||||
msgid "Commit Date"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:53
|
||||
msgid "InvenTree Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:58
|
||||
msgid "View Code on GitHub"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:63
|
||||
msgid "Get the App"
|
||||
msgstr ""
|
||||
|
||||
#: templates/about.html:68
|
||||
msgid "Submit Bug Report"
|
||||
msgstr ""
|
||||
|
||||
@ -6018,8 +6026,8 @@ msgstr ""
|
||||
msgid "No builds matching query"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:512
|
||||
#: templates/js/stock.js:1250
|
||||
#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:511
|
||||
#: templates/js/stock.js:1254
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
@ -6371,115 +6379,115 @@ msgstr ""
|
||||
msgid "Test Date"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:293
|
||||
#: templates/js/stock.js:292
|
||||
msgid "In production"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:297
|
||||
#: templates/js/stock.js:296
|
||||
msgid "Installed in Stock Item"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:305
|
||||
#: templates/js/stock.js:304
|
||||
msgid "Assigned to Sales Order"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:337
|
||||
#: templates/js/stock.js:336
|
||||
msgid "No stock items matching query"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:479
|
||||
#: templates/js/stock.js:478
|
||||
msgid "Undefined location"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:575
|
||||
#: templates/js/stock.js:579
|
||||
msgid "Stock item is in production"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:580
|
||||
#: templates/js/stock.js:584
|
||||
msgid "Stock item assigned to sales order"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:583
|
||||
#: templates/js/stock.js:587
|
||||
msgid "Stock item assigned to customer"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:587
|
||||
#: templates/js/stock.js:591
|
||||
msgid "Stock item has expired"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:589
|
||||
#: templates/js/stock.js:593
|
||||
msgid "Stock item will expire soon"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:593
|
||||
#: templates/js/stock.js:597
|
||||
msgid "Stock item has been allocated"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:597
|
||||
#: templates/js/stock.js:601
|
||||
msgid "Stock item has been installed in another item"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:605
|
||||
#: templates/js/stock.js:609
|
||||
msgid "Stock item has been rejected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:609
|
||||
#: templates/js/stock.js:613
|
||||
msgid "Stock item is lost"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:612
|
||||
#: templates/js/stock.js:616
|
||||
msgid "Stock item is destroyed"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:616 templates/js/table_filters.js:116
|
||||
#: templates/js/stock.js:620 templates/js/table_filters.js:116
|
||||
msgid "Depleted"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:645
|
||||
#: templates/js/stock.js:649
|
||||
msgid "Stocktake"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:821
|
||||
#: templates/js/stock.js:825
|
||||
msgid "Stock Status"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:836
|
||||
#: templates/js/stock.js:840
|
||||
msgid "Set Stock Status"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:850
|
||||
#: templates/js/stock.js:854
|
||||
msgid "Select Status Code"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:851
|
||||
#: templates/js/stock.js:855
|
||||
msgid "Status code must be selected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:969
|
||||
#: templates/js/stock.js:973
|
||||
msgid "No user information"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:979
|
||||
#: templates/js/stock.js:983
|
||||
msgid "Edit tracking entry"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:980
|
||||
#: templates/js/stock.js:984
|
||||
msgid "Delete tracking entry"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:1089
|
||||
#: templates/js/stock.js:1093
|
||||
msgid "Create New Location"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:1188
|
||||
#: templates/js/stock.js:1192
|
||||
msgid "Serial"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:1281 templates/js/table_filters.js:149
|
||||
#: templates/js/stock.js:1285 templates/js/table_filters.js:149
|
||||
msgid "Installed"
|
||||
msgstr ""
|
||||
|
||||
#: templates/js/stock.js:1306
|
||||
#: templates/js/stock.js:1310
|
||||
msgid "Install item"
|
||||
msgstr ""
|
||||
|
||||
@ -6705,23 +6713,19 @@ msgstr ""
|
||||
msgid "Scan Barcode"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:63
|
||||
msgid "InvenTree server issues detected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:69 users/models.py:36
|
||||
#: templates/navbar.html:71 users/models.py:36
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:71 templates/registration/logout.html:5
|
||||
#: templates/navbar.html:73 templates/registration/logout.html:5
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:73 templates/registration/login.html:89
|
||||
#: templates/navbar.html:75 templates/registration/login.html:89
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: templates/navbar.html:85
|
||||
#: templates/navbar.html:94
|
||||
msgid "About InvenTree"
|
||||
msgstr ""
|
||||
|
||||
@ -6761,18 +6765,30 @@ msgstr ""
|
||||
msgid "Instance Name"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:18
|
||||
#: templates/stats.html:19
|
||||
msgid "Server status"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:21
|
||||
#: templates/stats.html:22
|
||||
msgid "Healthy"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:23
|
||||
#: templates/stats.html:24
|
||||
msgid "Issues detected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:30
|
||||
msgid "Background Worker"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:33
|
||||
msgid "Operational"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stats.html:35
|
||||
msgid "Not running"
|
||||
msgstr ""
|
||||
|
||||
#: templates/stock_table.html:14
|
||||
msgid "Export Stock Information"
|
||||
msgstr ""
|
||||
@ -6857,34 +6873,34 @@ msgstr ""
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:158
|
||||
#: users/models.py:165
|
||||
msgid "Permission set"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:166
|
||||
#: users/models.py:173
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:169
|
||||
#: users/models.py:176
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:169
|
||||
#: users/models.py:176
|
||||
msgid "Permission to view items"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:171
|
||||
#: users/models.py:178
|
||||
msgid "Permission to add items"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:173
|
||||
#: users/models.py:180
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:173
|
||||
#: users/models.py:180
|
||||
msgid "Permissions to edit items"
|
||||
msgstr ""
|
||||
|
||||
#: users/models.py:175
|
||||
#: users/models.py:182
|
||||
msgid "Permission to delete items"
|
||||
msgstr ""
|
||||
|
@ -735,6 +735,15 @@ class PartParameterList(generics.ListCreateAPIView):
|
||||
]
|
||||
|
||||
|
||||
class PartParameterDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||
"""
|
||||
API endpoint for detail view of a single PartParameter object
|
||||
"""
|
||||
|
||||
queryset = PartParameter.objects.all()
|
||||
serializer_class = part_serializers.PartParameterSerializer
|
||||
|
||||
|
||||
class BomList(generics.ListCreateAPIView):
|
||||
""" API endpoint for accessing a list of BomItem objects.
|
||||
|
||||
@ -942,6 +951,8 @@ part_api_urls = [
|
||||
# Base URL for PartParameter API endpoints
|
||||
url(r'^parameter/', include([
|
||||
url(r'^template/$', PartParameterTemplateList.as_view(), name='api-part-param-template-list'),
|
||||
|
||||
url(r'^(?P<pk>\d+)/', PartParameterDetail.as_view(), name='api-part-param-detail'),
|
||||
url(r'^.*$', PartParameterList.as_view(), name='api-part-param-list'),
|
||||
])),
|
||||
|
||||
|
@ -33,6 +33,27 @@
|
||||
template: 1
|
||||
data: 12
|
||||
|
||||
- model: part.PartParameter
|
||||
pk: 3
|
||||
fields:
|
||||
part: 3
|
||||
template: 1
|
||||
data: 12
|
||||
|
||||
- model: part.PartParameter
|
||||
pk: 4
|
||||
fields:
|
||||
part: 3
|
||||
template: 2
|
||||
data: 12
|
||||
|
||||
- model: part.PartParameter
|
||||
pk: 5
|
||||
fields:
|
||||
part: 3
|
||||
template: 3
|
||||
data: 12
|
||||
|
||||
# Add some template parameters to categories (requires category.yaml)
|
||||
- model: part.PartCategoryParameterTemplate
|
||||
pk: 1
|
||||
|
@ -325,3 +325,106 @@ class PartAPIAggregationTest(InvenTreeAPITestCase):
|
||||
|
||||
self.assertEqual(data['in_stock'], 1100)
|
||||
self.assertEqual(data['stock_item_count'], 105)
|
||||
|
||||
|
||||
class PartParameterTest(InvenTreeAPITestCase):
|
||||
"""
|
||||
Tests for the ParParameter API
|
||||
"""
|
||||
|
||||
superuser = True
|
||||
|
||||
fixtures = [
|
||||
'category',
|
||||
'part',
|
||||
'location',
|
||||
'params',
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
|
||||
super().setUp()
|
||||
|
||||
def test_list_params(self):
|
||||
"""
|
||||
Test for listing part parameters
|
||||
"""
|
||||
|
||||
url = reverse('api-part-param-list')
|
||||
|
||||
response = self.client.get(url, format='json')
|
||||
|
||||
self.assertEqual(len(response.data), 5)
|
||||
|
||||
# Filter by part
|
||||
response = self.client.get(
|
||||
url,
|
||||
{
|
||||
'part': 3,
|
||||
},
|
||||
format='json'
|
||||
)
|
||||
|
||||
self.assertEqual(len(response.data), 3)
|
||||
|
||||
# Filter by template
|
||||
response = self.client.get(
|
||||
url,
|
||||
{
|
||||
'template': 1,
|
||||
},
|
||||
format='json',
|
||||
)
|
||||
|
||||
self.assertEqual(len(response.data), 3)
|
||||
|
||||
def test_create_param(self):
|
||||
"""
|
||||
Test that we can create a param via the API
|
||||
"""
|
||||
|
||||
url = reverse('api-part-param-list')
|
||||
|
||||
response = self.client.post(
|
||||
url,
|
||||
{
|
||||
'part': '2',
|
||||
'template': '3',
|
||||
'data': 70
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 201)
|
||||
|
||||
response = self.client.get(url, format='json')
|
||||
|
||||
self.assertEqual(len(response.data), 6)
|
||||
|
||||
def test_param_detail(self):
|
||||
"""
|
||||
Tests for the PartParameter detail endpoint
|
||||
"""
|
||||
|
||||
url = reverse('api-part-param-detail', kwargs={'pk': 5})
|
||||
|
||||
response = self.client.get(url)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
data = response.data
|
||||
|
||||
self.assertEqual(data['pk'], 5)
|
||||
self.assertEqual(data['part'], 3)
|
||||
self.assertEqual(data['data'], '12')
|
||||
|
||||
# PATCH data back in
|
||||
response = self.client.patch(url, {'data': '15'}, format='json')
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# Check that the data changed!
|
||||
response = self.client.get(url, format='json')
|
||||
|
||||
data = response.data
|
||||
|
||||
self.assertEqual(data['data'], '15')
|
||||
|
59
InvenTree/templates/registration/logged_out.html
Normal file
59
InvenTree/templates/registration/logged_out.html
Normal file
@ -0,0 +1,59 @@
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap_3.3.7_css_bootstrap.min.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/select2.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap-table.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/inventree.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/brands.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/solid.css' %}">
|
||||
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/solid.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/brands.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.js' %}"></script>
|
||||
|
||||
<style>
|
||||
.login-error {
|
||||
color: #F88;
|
||||
}
|
||||
</style>
|
||||
|
||||
<title>
|
||||
InvenTree
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body class='login-screen'>
|
||||
|
||||
<div class='main body-wrapper login-screen'>
|
||||
|
||||
<div class='login-container'>
|
||||
<div class="row">
|
||||
<div class='container-fluid'>
|
||||
<div class='clearfix content-heading login-header'>
|
||||
<img class="pull-left" src="{% static 'img/inventree.png' %}" width="60" height="60"/>
|
||||
<span><h3>InvenTree</h3></span>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div class='container-fluid'>
|
||||
<p>{% trans "You have been logged out" %}</p>
|
||||
<p><a href='{% url "login" %}'>{% trans "Return to login screen" %}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
@ -89,7 +89,12 @@
|
||||
<button class='pull-right btn btn-primary login-button' type="submit">{% trans "Login" %}</button>
|
||||
|
||||
</form>
|
||||
|
||||
{% if email_configured %}
|
||||
<hr><br>
|
||||
<p>{% trans "Forgotten your password?" %} - <a href='{% url "password_reset" %}'>{% trans "Click here to reset" %}</a></p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,8 +0,0 @@
|
||||
{% extends "base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<h4>{% trans "Logout" %}</h4>
|
||||
<p>{% trans "You have been logged out" %}</p>
|
||||
<p>{% trans 'Click' %} <a href="{% url 'login' %}"> {% trans 'here</a> to log in</p>' %}
|
||||
{% endblock %}
|
@ -0,0 +1,59 @@
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap_3.3.7_css_bootstrap.min.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/select2.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap-table.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/inventree.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/brands.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/solid.css' %}">
|
||||
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/solid.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/brands.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.js' %}"></script>
|
||||
|
||||
<style>
|
||||
.login-error {
|
||||
color: #F88;
|
||||
}
|
||||
</style>
|
||||
|
||||
<title>
|
||||
InvenTree
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body class='login-screen'>
|
||||
|
||||
<div class='main body-wrapper login-screen'>
|
||||
|
||||
<div class='login-container'>
|
||||
<div class="row">
|
||||
<div class='container-fluid'>
|
||||
<div class='clearfix content-heading login-header'>
|
||||
<img class="pull-left" src="{% static 'img/inventree.png' %}" width="60" height="60"/>
|
||||
<span><h3>InvenTree</h3></span>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div class='container-fluid'>
|
||||
<p>{% trans "Password reset complete" %}</p>
|
||||
<p><a href='{% url "login" %}'>{% trans "Return to login screen" %}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
69
InvenTree/templates/registration/password_reset_confirm.html
Normal file
69
InvenTree/templates/registration/password_reset_confirm.html
Normal file
@ -0,0 +1,69 @@
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap_3.3.7_css_bootstrap.min.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/select2.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap-table.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/inventree.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/brands.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/solid.css' %}">
|
||||
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/solid.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/brands.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.js' %}"></script>
|
||||
|
||||
<style>
|
||||
.login-error {
|
||||
color: #F88;
|
||||
}
|
||||
</style>
|
||||
|
||||
<title>
|
||||
InvenTree
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body class='login-screen'>
|
||||
|
||||
<div class='main body-wrapper login-screen'>
|
||||
|
||||
<div class='login-container'>
|
||||
<div class="row">
|
||||
<div class='container-fluid'>
|
||||
<div class='clearfix content-heading login-header'>
|
||||
<img class="pull-left" src="{% static 'img/inventree.png' %}" width="60" height="60"/>
|
||||
<span><h3>InvenTree</h3></span>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div class='container-fluid'>
|
||||
|
||||
{% if validlink %}
|
||||
<h3>{% trans "Change password" %}</h3>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button class="btn btn-primary" type="submit">{% trans "Change password" %}</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<p>
|
||||
{% trans "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
65
InvenTree/templates/registration/password_reset_done.html
Normal file
65
InvenTree/templates/registration/password_reset_done.html
Normal file
@ -0,0 +1,65 @@
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap_3.3.7_css_bootstrap.min.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/select2.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap-table.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/inventree.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/brands.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/solid.css' %}">
|
||||
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/solid.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/brands.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.js' %}"></script>
|
||||
|
||||
<style>
|
||||
.login-error {
|
||||
color: #F88;
|
||||
}
|
||||
</style>
|
||||
|
||||
<title>
|
||||
InvenTree
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body class='login-screen'>
|
||||
|
||||
<div class='main body-wrapper login-screen'>
|
||||
|
||||
<div class='login-container'>
|
||||
<div class="row">
|
||||
<div class='container-fluid'>
|
||||
<div class='clearfix content-heading login-header'>
|
||||
<img class="pull-left" src="{% static 'img/inventree.png' %}" width="60" height="60"/>
|
||||
<span><h3>InvenTree</h3></span>
|
||||
</div>
|
||||
<hr>
|
||||
<div class='container-fluid'>
|
||||
|
||||
<p>
|
||||
{% trans "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." %}
|
||||
</p>
|
||||
<p>
|
||||
{% trans "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." %}
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
<a href='{% url "login" %}'>{% trans "Return to login screen" %}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
68
InvenTree/templates/registration/password_reset_form.html
Normal file
68
InvenTree/templates/registration/password_reset_form.html
Normal file
@ -0,0 +1,68 @@
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap_3.3.7_css_bootstrap.min.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/select2.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap-table.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/inventree.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/brands.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'fontawesome/css/solid.css' %}">
|
||||
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/solid.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/brands.js' %}"></script>
|
||||
<script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.js' %}"></script>
|
||||
|
||||
<style>
|
||||
.login-error {
|
||||
color: #F88;
|
||||
}
|
||||
</style>
|
||||
|
||||
<title>
|
||||
InvenTree
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body class='login-screen'>
|
||||
|
||||
<div class='main body-wrapper login-screen'>
|
||||
|
||||
<div class='login-container'>
|
||||
<div class="row">
|
||||
<div class='container-fluid'>
|
||||
<div class='clearfix content-heading login-header'>
|
||||
<img class="pull-left" src="{% static 'img/inventree.png' %}" width="60" height="60"/>
|
||||
<span><h3>InvenTree</h3></span>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div class='container-fluid'>
|
||||
|
||||
<p>{% trans "Forgotten your password?" %}</p>
|
||||
<p>{% trans "Enter your email address below." %}</p>
|
||||
<p>{% trans "An email will be sent with password reset instructions." %}</p>
|
||||
|
||||
<form method="POST">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button class="btn btn-primary" type="submit">{% trans "Send email" %}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
@ -25,18 +25,29 @@
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if not django_q_running %}
|
||||
<tr>
|
||||
<td><span class='fas fa-tasks'></span></td>
|
||||
<td>{% trans "Background Worker" %}</td>
|
||||
<td>
|
||||
{% if django_q_running %}
|
||||
<span class='label label-green'>{% trans "Operational" %}</span>
|
||||
{% else %}
|
||||
<span class='label label-red'>{% trans "Not running" %}</span>
|
||||
{% endif %}
|
||||
<a href='https://inventree.readthedocs.io/en/latest/admin/tasks'>
|
||||
<span class='label label-red'>{% trans "Background worker not running" %}</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if not email_configured %}
|
||||
<tr>
|
||||
<td><span class='fas fa-envelope'></span></td>
|
||||
<td>{% trans "Email Settings" %}</td>
|
||||
<td>
|
||||
<a href='https://inventree.readthedocs.io/en/latest/admin/email'>
|
||||
<span class='label label-red'>{% trans "Email settings not configured" %}</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if not system_healthy %}
|
||||
{% for issue in system_issues %}
|
||||
|
@ -1,5 +1,5 @@
|
||||
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
|
||||
[![Docker Pulls](https://img.shields.io/docker/pulls/inventree/inventree)](https://hub.docker.com/inventree/inventree)
|
||||
[![Docker Pulls](https://img.shields.io/docker/pulls/inventree/inventree)](https://hub.docker.com/r/inventree/inventree)
|
||||
[![Coverage Status](https://coveralls.io/repos/github/inventree/InvenTree/badge.svg)](https://coveralls.io/github/inventree/InvenTree)
|
||||
![PEP](https://github.com/inventree/inventree/actions/workflows/style.yaml/badge.svg)
|
||||
![Docker Build](https://github.com/inventree/inventree/actions/workflows/docker_build.yaml/badge.svg)
|
||||
|
Loading…
Reference in New Issue
Block a user