From d8a98156688981792093f7aff3d7756c927ca4ee Mon Sep 17 00:00:00 2001 From: dinhvanhung Date: Fri, 19 Apr 2024 18:00:24 +0700 Subject: [PATCH] =?UTF-8?q?gen=20requirement=20build=20image=20th=C3=AAm?= =?UTF-8?q?=20ng=C3=B4n=20ng=E1=BB=AF=20ti=E1=BA=BFng=20vi=E1=BB=87t=20s?= =?UTF-8?q?=E1=BB=ADa=20logo=20s=E1=BB=ADa=201=20s=E1=BB=91=20text=20sang?= =?UTF-8?q?=20ti=C3=AAngs=20vi=E1=BB=87t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 10 +- Dockerfile | 3 + requirements.txt | 2 + runserver.sh | 10 ++ script_build.sh | 1 + script_run.sh | 2 + src-ui/angular.json | 3 +- src-ui/src/app/app.module.ts | 2 + .../app-frame/app-frame.component.html | 140 +++++++++--------- src-ui/src/app/services/settings.service.ts | 6 + src-ui/src/assets/Artboard 1.svg | 1 + src-ui/src/assets/Logo-Onlylogo.svg | 8 + src-ui/src/assets/Logo_Default.svg | 57 +++++++ src-ui/src/assets/Logo_White.svg | 57 +++++++ src-ui/src/assets/logo_tc.jpg | Bin 0 -> 6979 bytes src-ui/src/locale/messages.vi_VN.xlf | 76 +++++----- .../paperless-ngx/snippets/svg_logo.html | 37 ++--- src/paperless/settings.py | 11 +- 18 files changed, 295 insertions(+), 131 deletions(-) create mode 100644 runserver.sh create mode 100644 script_build.sh create mode 100644 script_run.sh create mode 100644 src-ui/src/assets/Artboard 1.svg create mode 100644 src-ui/src/assets/Logo-Onlylogo.svg create mode 100644 src-ui/src/assets/Logo_Default.svg create mode 100644 src-ui/src/assets/Logo_White.svg create mode 100644 src-ui/src/assets/logo_tc.jpg diff --git a/.env b/.env index f2f399bd3..a13d27ae9 100644 --- a/.env +++ b/.env @@ -1,3 +1,11 @@ COMPOSE_PROJECT_NAME=paperless +PAPERLESS_DEBUG=true + PAPERLESS_REDIS=redis://:@123bytech@172.16.100.203:9377 -DEBUG=true + +PAPERLESS_DBHOST=172.16.100.203 +PAPERLESS_DBPORT=5432 +PAPERLESS_DBNAME=tc_edoc +PAPERLESS_DBUSER=tc_edoc +PAPERLESS_DBPASS=27M2MV58Re2Y +PAPERLESS_DBSSLMODE=prefer diff --git a/Dockerfile b/Dockerfile index 963aedbd0..226849c3e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -89,6 +89,7 @@ ARG RUNTIME_PACKAGES="\ mariadb-client \ # OCRmyPDF dependencies tesseract-ocr \ + tesseract-ocr-vie \ tesseract-ocr-eng \ tesseract-ocr-deu \ tesseract-ocr-fra \ @@ -245,6 +246,8 @@ RUN --mount=type=cache,target=/root/.cache/pip/,id=pip-cache \ # copy backend COPY --chown=1000:1000 ./src ./ +RUN pip3 install python-decouple==3.8 + # copy frontend COPY --from=compile-frontend --chown=1000:1000 /src/src/documents/static/frontend/ ./documents/static/frontend/ diff --git a/requirements.txt b/requirements.txt index 92867ea2a..97c33a9df 100644 --- a/requirements.txt +++ b/requirements.txt @@ -123,3 +123,5 @@ whoosh==2.7.4 wrapt==1.16.0; python_version >= '3.6' zstandard==0.22.0; python_version >= '3.8' zxing-cpp==2.2.0; platform_machine == 'x86_64' and python_version >= '3.6' + +python-decouple==3.8 diff --git a/runserver.sh b/runserver.sh new file mode 100644 index 000000000..bc9a9c919 --- /dev/null +++ b/runserver.sh @@ -0,0 +1,10 @@ +export PAPERLESS_REDIS=redis://:@123bytech@172.16.100.203:9377 +export PAPERLESS_DBHOST=172.16.100.203 +export PAPERLESS_DBPORT=5432 +export PAPERLESS_DBNAME=tc_edoc +export PAPERLESS_DBUSER=tc_edoc +export PAPERLESS_DBPASS=27M2MV58Re2Y +export PAPERLESS_DBSSLMODE=prefer + +cd src +python manage.py runserver diff --git a/script_build.sh b/script_build.sh new file mode 100644 index 000000000..00535143a --- /dev/null +++ b/script_build.sh @@ -0,0 +1 @@ +docker build --file Dockerfile --tag registry-dev.tcgroup.vn/tc-edoc:0.0.1 --progress simple . diff --git a/script_run.sh b/script_run.sh new file mode 100644 index 000000000..9fe1b7f00 --- /dev/null +++ b/script_run.sh @@ -0,0 +1,2 @@ +docker stop tc-edoc +docker run --rm --name tc-edoc -p 8000:8000 --env-file .env registry-dev.tcgroup.vn/tc-edoc:0.0.1 diff --git a/src-ui/angular.json b/src-ui/angular.json index 49e419879..59f7e521f 100644 --- a/src-ui/angular.json +++ b/src-ui/angular.json @@ -46,7 +46,8 @@ "sv-SE": "src/locale/messages.sv_SE.xlf", "tr-TR": "src/locale/messages.tr_TR.xlf", "uk-UA": "src/locale/messages.uk_UA.xlf", - "zh-CN": "src/locale/messages.zh_CN.xlf" + "zh-CN": "src/locale/messages.zh_CN.xlf", + "vi-VN": "src/locale/messages.vi_VN.xlf" } }, "architect": { diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts index f990122dd..3cd66f6cd 100644 --- a/src-ui/src/app/app.module.ts +++ b/src-ui/src/app/app.module.ts @@ -337,6 +337,7 @@ import localeSv from '@angular/common/locales/sv' import localeTr from '@angular/common/locales/tr' import localeUk from '@angular/common/locales/uk' import localeZh from '@angular/common/locales/zh' +import localeVi from '@angular/common/locales/vi' registerLocaleData(localeAf) registerLocaleData(localeAr) @@ -369,6 +370,7 @@ registerLocaleData(localeSv) registerLocaleData(localeTr) registerLocaleData(localeUk) registerLocaleData(localeZh) +registerLocaleData(localeVi) function initializeApp(settings: SettingsService) { return () => { diff --git a/src-ui/src/app/components/app-frame/app-frame.component.html b/src-ui/src/app/components/app-frame/app-frame.component.html index bdc8d08f2..c1cc92264 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.html +++ b/src-ui/src/app/components/app-frame/app-frame.component.html @@ -8,16 +8,20 @@ [ngClass]="{ 'slim': slimSidebarEnabled, 'col-auto col-md-3 col-lg-2 col-xxxl-1' : !slimSidebarEnabled, 'py-3' : !customAppTitle?.length || slimSidebarEnabled, 'py-2': customAppTitle?.length }" routerLink="/dashboard" tourAnchor="tour.intro"> - - - + + + + + + + + +
@if (customAppTitle?.length) {
- {{customAppTitle}} - + +
} @else { Paperless-ngx @@ -276,67 +280,67 @@ } - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src-ui/src/app/services/settings.service.ts b/src-ui/src/app/services/settings.service.ts index 67804fa12..429b31be5 100644 --- a/src-ui/src/app/services/settings.service.ts +++ b/src-ui/src/app/services/settings.service.ts @@ -41,6 +41,12 @@ const LANGUAGE_OPTIONS = [ englishName: 'English (US)', dateInputFormat: 'mm/dd/yyyy', }, + { + code: 'vi-vn', + name: $localize`Vietnamese`, + englishName: 'Vietnamese', + dateInputFormat: 'mm/dd/yyyy', + }, { code: 'af-za', name: $localize`Afrikaans`, diff --git a/src-ui/src/assets/Artboard 1.svg b/src-ui/src/assets/Artboard 1.svg new file mode 100644 index 000000000..3ca8b3153 --- /dev/null +++ b/src-ui/src/assets/Artboard 1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src-ui/src/assets/Logo-Onlylogo.svg b/src-ui/src/assets/Logo-Onlylogo.svg new file mode 100644 index 000000000..994d90034 --- /dev/null +++ b/src-ui/src/assets/Logo-Onlylogo.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src-ui/src/assets/Logo_Default.svg b/src-ui/src/assets/Logo_Default.svg new file mode 100644 index 000000000..17f953847 --- /dev/null +++ b/src-ui/src/assets/Logo_Default.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-ui/src/assets/Logo_White.svg b/src-ui/src/assets/Logo_White.svg new file mode 100644 index 000000000..395a44343 --- /dev/null +++ b/src-ui/src/assets/Logo_White.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-ui/src/assets/logo_tc.jpg b/src-ui/src/assets/logo_tc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2d17cd6b03de3b01d754352c36013cfa8f200f16 GIT binary patch literal 6979 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/app/components/document-detail/document-detail.component.html 322 - Discard - + Bỏ + e Save @@ -2141,7 +2141,7 @@ src/app/components/manage/workflows/workflows.component.html 35 - Edit + Sửa Add Group @@ -2901,7 +2901,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 11 - Page + Trang số of @@ -4963,7 +4963,7 @@ src/app/components/common/share-links-dropdown/share-links-dropdown.component.html 9,11 - No existing links + Không tồn tại link Share @@ -5574,7 +5574,7 @@ src/app/components/document-detail/document-detail.component.html 36 - Download original + Tải bản gốc Redo OCR @@ -5586,7 +5586,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 92 - Redo OCR + OCR lại More like this @@ -5598,7 +5598,7 @@ src/app/components/document-list/document-card-large/document-card-large.component.html 50 - More like this + Nhiều hơn Split @@ -5606,7 +5606,7 @@ src/app/components/document-detail/document-detail.component.html 57 - Split + Cắt Rotate @@ -5618,7 +5618,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 95 - Rotate + Xoay Close @@ -5650,7 +5650,7 @@ src/app/components/document-detail/document-detail.component.html 101 - Details + Chi tiết Archive serial number @@ -5658,7 +5658,7 @@ src/app/components/document-detail/document-detail.component.html 105 - Archive serial number + Số Date created @@ -5666,7 +5666,7 @@ src/app/components/document-detail/document-detail.component.html 106 - Date created + Ngày tạo Document type @@ -5690,7 +5690,7 @@ src/app/services/rest/document.service.ts 28 - Document type + Loại tài liệu Storage path @@ -5710,7 +5710,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 64 - Storage path + Đường dẫn lưu trữ Default @@ -5718,7 +5718,7 @@ src/app/components/document-detail/document-detail.component.html 113 - Default + Mặc định Content @@ -5726,7 +5726,7 @@ src/app/components/document-detail/document-detail.component.html 197 - Content + Nội dung Metadata @@ -5738,7 +5738,7 @@ src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts 17 - Metadata + Siêu dữ liệu Date modified @@ -5746,7 +5746,7 @@ src/app/components/document-detail/document-detail.component.html 213 - Date modified + Ngày chỉnh Date added @@ -5754,7 +5754,7 @@ src/app/components/document-detail/document-detail.component.html 217 - Date added + Ngày thêm Media filename @@ -5762,7 +5762,7 @@ src/app/components/document-detail/document-detail.component.html 221 - Media filename + Tên tệp Original filename @@ -5770,7 +5770,7 @@ src/app/components/document-detail/document-detail.component.html 225 - Original filename + Tên tệp gốc Original MD5 checksum @@ -5778,7 +5778,7 @@ src/app/components/document-detail/document-detail.component.html 229 - Original MD5 checksum + Mã MD5 Original file size @@ -5786,7 +5786,7 @@ src/app/components/document-detail/document-detail.component.html 233 - Original file size + Kích thước tệp Original mime type @@ -5794,7 +5794,7 @@ src/app/components/document-detail/document-detail.component.html 237 - Original mime type + Định dạng Archive MD5 checksum @@ -5802,7 +5802,7 @@ src/app/components/document-detail/document-detail.component.html 242 - Archive MD5 checksum + Mã MD5 lưu trữ Archive file size @@ -5810,7 +5810,7 @@ src/app/components/document-detail/document-detail.component.html 248 - Archive file size + Kích thước tệp lưu trữ Original document metadata @@ -5850,7 +5850,7 @@ src/app/components/document-detail/document-detail.component.html 316 - Save & next + Lưu và tiếp tục Save & close @@ -5858,7 +5858,7 @@ src/app/components/document-detail/document-detail.component.html 319 - Save & close + Lưu và đóng Enter Password @@ -6560,7 +6560,7 @@ src/app/pipes/username.pipe.ts 33 - Shared + Chia sẻ Score: @@ -6632,7 +6632,7 @@ src/app/components/document-list/document-list.component.html 30 - Sort + Sắp xếp Save "" @@ -6684,7 +6684,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 96 - Reset filters + Bỏ lọc Error while loading documents @@ -6752,7 +6752,7 @@ src/app/services/rest/document.service.ts 33 - Owner + Chủ sở hữu Sort by notes @@ -6808,7 +6808,7 @@ src/app/services/rest/document.service.ts 30 - Added + Thời gian Edit document @@ -6856,7 +6856,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 127 - Advanced search + Tìm kiếm mở rộng More like @@ -7436,7 +7436,7 @@ src/app/components/manage/management-list/management-list.component.html 19 - Filter by: + Lọc theo: Matching @@ -7476,7 +7476,7 @@ src/app/components/manage/management-list/management-list.component.html 39 - Document count + Số lượng Filter Documents @@ -7628,7 +7628,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 36 - storage path + Đường dẫn lưu trữ storage paths diff --git a/src/documents/templates/paperless-ngx/snippets/svg_logo.html b/src/documents/templates/paperless-ngx/snippets/svg_logo.html index 0f3309091..a1d8e438f 100644 --- a/src/documents/templates/paperless-ngx/snippets/svg_logo.html +++ b/src/documents/templates/paperless-ngx/snippets/svg_logo.html @@ -1,18 +1,19 @@ - - - - - - - - - - - - - - - - - - +{##} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{##} + diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 64af7c9b7..4e30db1b1 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -17,6 +17,7 @@ from celery.schedules import crontab from concurrent_log_handler.queue import setup_logging_queues from django.utils.translation import gettext_lazy as _ from dotenv import load_dotenv +from decouple import config # Tap paperless.conf if it's available configuration_path = os.getenv("PAPERLESS_CONFIGURATION_PATH") @@ -236,8 +237,7 @@ def _parse_beat_schedule() -> dict: # NEVER RUN WITH DEBUG IN PRODUCTION. -DEBUG = __get_boolean("PAPERLESS_DEBUG", "NO") - +DEBUG = config("PAPERLESS_DEBUG", default=True, cast=bool) ############################################################################### # Directories # @@ -384,7 +384,7 @@ STORAGES = { } _CELERY_REDIS_URL, _CHANNELS_REDIS_URL = _parse_redis_url( - os.getenv("PAPERLESS_REDIS", None), + os.getenv("PAPERLESS_REDIS", 'redis://:@123bytech@172.16.100.203:9377'), ) TEMPLATES = [ @@ -695,6 +695,7 @@ LANGUAGES = [ ("tr-tr", _("Turkish")), ("uk-ua", _("Ukrainian")), ("zh-cn", _("Chinese Simplified")), + ("vi-vn", _("Vietnamese")), ] LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")] @@ -845,7 +846,7 @@ THREADS_PER_WORKER = os.getenv( # Paperless Specific Settings # ############################################################################### -CONSUMER_POLLING = int(os.getenv("PAPERLESS_CONSUMER_POLLING", 0)) +CONSUMER_POLLING = int(os.getenv("PAPERLESS_CONSUMER_POLLING", 1)) CONSUMER_POLLING_DELAY = int(os.getenv("PAPERLESS_CONSUMER_POLLING_DELAY", 5)) @@ -938,7 +939,7 @@ OCR_PAGES = __get_optional_int("PAPERLESS_OCR_PAGES") # The default language that tesseract will attempt to use when parsing # documents. It should be a 3-letter language code consistent with ISO 639. -OCR_LANGUAGE = os.getenv("PAPERLESS_OCR_LANGUAGE", "eng") +OCR_LANGUAGE = os.getenv("PAPERLESS_OCR_LANGUAGE", "vie") # OCRmyPDF --output-type options are available. OCR_OUTPUT_TYPE = os.getenv("PAPERLESS_OCR_OUTPUT_TYPE", "pdfa")