From 5eb5ea793fd2e720e790eb54ae701652361f474b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Sat, 13 Jul 2024 16:00:37 +0200 Subject: [PATCH] Rename endi -> caerp --- conf/{endi.ini => caerp.ini} | 152 ++++++++++++++++++++++------------- conf/systemd.service | 2 +- doc/DESCRIPTION.md | 6 +- doc/DESCRIPTION_fr.md | 4 +- manifest.toml | 13 ++- scripts/_common.sh | 20 ++--- scripts/change_url | 6 +- scripts/install | 20 ++--- scripts/restore | 2 +- scripts/upgrade | 18 ++--- 10 files changed, 144 insertions(+), 99 deletions(-) rename conf/{endi.ini => caerp.ini} (51%) diff --git a/conf/endi.ini b/conf/caerp.ini similarity index 51% rename from conf/endi.ini rename to conf/caerp.ini index f33bfc2..c68632e 100644 --- a/conf/endi.ini +++ b/conf/caerp.ini @@ -1,5 +1,5 @@ -[app:endi] -use = egg:endi +[app:caerp] +use = egg:caerp pyramid.reload_templates = true pyramid.reload_assets = true @@ -10,29 +10,30 @@ pyramid.debug_routematch = false pyramid.debug_templates = true pyramid.default_locale_name = fr_FR pyramid.includes = + pyramid_retry pyramid_tm pyramid_services - endi_celery - pyramid_mailer.debug pyramid_layout pyramid_mako pyramid_chameleon pyramid_celery + caerp_celery + pyramid_mailer.debug js.deform deform_extensions #### MAIL FROM WITHIN THE APPLICATION #### # Add this one to pyramid.includes if you configured a mailbox - # pyramid_mailer +#pyramid_mailer # Mail configuration # Host and port are set to localhost/25 by default -# mail.host = localhost -# mail.port = 587 -# mail.username = mygmailaccount@gmail.com -# mail.password = mygmailpasswd -# mail.tls=True -mail.default_sender = noreply@__DOMAIN__ +#mail.host = localhost +#mail.port=587 +#mail.username=mygmailaccount@gmail.com +#mail.password=mygmailpasswd +#mail.tls=True +mail.default_sender=noreply@__DOMAIN__ ### Optout address for unsubscription (for local smtp purpose) #mail.optout_address=unsubcribe@mail.com ## Bounce_url address (should indicate a server redirecting a query to the url passed in the url GET param) @@ -40,15 +41,15 @@ mail.default_sender = noreply@__DOMAIN__ #### DATABASE ACCESS CONFIGURATION #### sqlalchemy.url = mysql://__DB_USER__:__DB_PWD__@localhost/__DB_NAME__?charset=utf8mb4 -# Uncomment the following line to use vagrant -# sqlalchemy.url = mysql://endi:endi@127.0.0.1:13306/endi?charset=utf8mb4 +# Uncomment the following line to use docker-compose +# sqlalchemy.url = mysql://caerp:caerp@127.0.0.1:13306/caerp?charset=utf8mb4 sqlalchemy.echo=False # Those variables should be improved to fit your configuration sqlalchemy.pool_recycle=7200 sqlalchemy.pool_size=100 #### MAKO SPECIFIC CONFIGURATION #### -mako.directories = endi:templates +mako.directories = caerp:templates mako.imports = from markupsafe import escape_silent mako.default_filters = escape_silent mako.module_directory = %(here)s/mako_compiled_templates @@ -71,60 +72,98 @@ cache.default_term.expire = 300 cache.long_term.expire = 20 # static file path (may be an url, allowing to have static datas on different servers) -endi.static=static +caerp.statics=static # Assets (logo ...) storage path -endi.assets = %(here)s/data/assets +caerp.assets = %(here)s/data/assets # Temp dir for compiled files (like pdf generation or large export files), # is accessible as a static directory -endi.static_tmp=endi:tmp +caerp.static_tmp=caerp:tmp # treasury related docs upload -endi.ftpdir=%(here)s/tmp/filesystem +caerp.ftpdir=%(here)s/tmp/filesystem # Max filesize for file attachment (in Bytes) -endi.maxfilesize=2000000 +caerp.maxfilesize=2000000 # The instance name -endi.instance_name=__DOMAIN__ +caerp.instance_name=__DOMAIN__ # The depot path for storing files locally -endi.depot_path = %(here)s/tmp/filedepot +caerp.depot_path = %(here)s/tmp/filedepot # Tempdir for file upload (should exist) pyramid_deform.tempdir= %(here)s/tmp/tempdir # Pyramid services configuration (allow to override default behaviour for some # interfaces) -# endi.services.treasury_invoice_writer=mypackage.InvoiceWriter -# endi.services.treasury_invoice_producer=mypackage.InvoiceProducer -#endi.services.treasury_expense_writer=mypackage.ExpenseWriter -#endi.services.treasury_expense_producer=mypackage.ExpenseProducer -#endi.services.treasury_payment_writer=mypackage.PaymentWriter -#endi.services.treasury_payment_producer=mypackage.PaymentProducer +## ECRITURES ## +# SAGE GENERATION EXPERT +# caerp.services.treasury_invoice_producer=caerp.compute.sage_generation_expert.compute.InvoiceProducer +# caerp.services.treasury_internalinvoice_producer=caerp.compute.sage_generation_expert.compute.InternalInvoiceProducer +# caerp.services.treasury_invoice_writer=caerp.export.sage_generation_expert.InvoiceWriter +# +# caerp.services.treasury_payment_producer=caerp.compute.sage_generation_expert.compute.PaymentProducer +# caerp.services.treasury_internalpayment_producer=caerp.compute.sage_generation_expert.compute.InternalPaymentProducer +# caerp.services.treasury_payment_writer=caerp.export.sage_generation_expert.PaymentWriter +# +# caerp.services.treasury_expense_producer=caerp.compute.sage_generation_expert.compute.ExpenseProducer +# caerp.services.treasury_expense_writer=caerp.export.sage_generation_expert.ExpenseWriter +# +# caerp.services.treasury_expense_payment_producer=caerp.compute.sage_generation_expert.compute.ExpensePaymentProducer +# caerp.services.treasury_expense_payment_writer=caerp.export.sage_generation_expert.ExpensePaymentWriter +# +# caerp.services.treasury_supplier_invoice_producer=caerp.compute.sage_generation_expert.compute.SupplierInvoiceProducer +# caerp.services.treasury_internalsupplier_invoice_producer=caerp.compute.sage_generation_expert.compute.InternalSupplierInvoiceProducer +# caerp.services.treasury_supplier_invoice_writer=caerp.export.sage_generation_expert.SupplierInvoiceWriter +# +# caerp.services.treasury_supplier_payment_producer=caerp.compute.sage_generation_expert.compute.SupplierPaymentProducer +# caerp.services.treasury_supplier_payment_user_producer=caerp.compute.sage_generation_expert.compute.SupplierUserPaymentProducer +# caerp.services.treasury_internalsupplier_payment_producer=caerp.compute.sage_generation_expert.compute.InternalSupplierPaymentProducer +# caerp.services.treasury_supplier_payment_writer=caerp.export.sage_generation_expert.SupplierPaymentWriter -# Payment specific configuration see https://framagit.org/endi/endi_payment -# endi_payment_db.url = mysql://endi_payment:endi@localhost/endi_payment?charset=utf8mb4 -endi.interfaces.IPaymentRecordService = endi_payment.public.PaymentService +# CEGID +caerp.services.treasury_invoice_writer=caerp.export.cegid.InvoiceWriter + +caerp.services.treasury_payment_writer=caerp.export.cegid.PaymentWriter + +caerp.services.treasury_expense_writer=caerp.export.cegid.ExpenseWriter + +caerp.services.treasury_expense_payment_writer=caerp.export.cegid.ExpensePaymentWriter + +caerp.services.treasury_supplier_invoice_writer=caerp.export.cegid.SupplierInvoiceWriter + +caerp.services.treasury_supplier_payment_writer=caerp.export.cegid.SupplierPaymentWriter +## FIN DE LA CONFIG DES ECRITURES + +# Payment specific configuration see https://framagit.org/caerp/caerp_payment +# caerp_payment_db.url = mysql://caerp_payment:caerp@localhost/caerp_payment?charset=utf8mb4 +caerp.interfaces.IPaymentRecordService = caerp_payment.public.PaymentService # Log payment service -endi_payment.interfaces.IPaymentRecordHistoryService = endi_payment.history.HistoryLogService +caerp_payment.interfaces.IPaymentRecordHistoryService = caerp_payment.history.HistoryLogService -# endi_payment.interfaces.IPaymentRecordHistoryService = endi_payment.history.HistoryDBService +# caerp_payment.interfaces.IPaymentRecordHistoryService = caerp_payment.history.HistoryDBService # Payment archiving service (here FileArchiveService) -# endi_payment.interfaces.IPaymentArchiveService = endi_payment.archive.FileArchiveService -# endi_payment_archive_storage_path = %(here)s/data/payment_storage +# caerp_payment.interfaces.IPaymentArchiveService = caerp_payment.archive.FileArchiveService +# caerp_payment_archive_storage_path = %(here)s/data/payment_storage # Key used for accounting data upload -# endi.accounting_api_key= +# caerp.accounting_api_key= # Key used to count users -# endi.users_api_key= +# caerp.users_api_key= -endi.includes= - endi_payment - endi_payment.views +caerp.includes= + caerp_payment + caerp_payment.views + + +# URL for tiles layer for companies map ; uncomment to override +# caerp.leaflet_layer_url=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png [celery] -broker_url = redis://localhost:6379/__REDIS_DB__ +broker_url = redis://127.0.0.1:6379/__REDIS_DB__ +# Uncomment the following line to use docker-compose +# broker_url = redis://127.0.0.1:16379/0 imports = - endi_celery.tasks.tasks - endi_celery.tasks.mail - endi_celery.tasks.csv_import - endi_celery.tasks.export - endi_celery.tasks.accounting_measure_compute - endi_celery.tasks.accounting_parser + caerp_celery.tasks.tasks + caerp_celery.tasks.mail + caerp_celery.tasks.csv_import + caerp_celery.tasks.export + caerp_celery.tasks.accounting_measure_compute + caerp_celery.tasks.accounting_parser task_serializer = json accept_content= @@ -140,7 +179,7 @@ bottom=True [pipeline:main] pipeline = fanstatic - endi + caerp [server:main] use = egg:waitress#main @@ -148,6 +187,7 @@ host = 127.0.0.1 port = __PORT__ # Nginx reverse proxy configuration +# FIXME: is it legacy? trusted_proxy = 127.0.0.1 trusted_proxy_count = 1 trusted_proxy_headers = x-forwarded-for x-forwarded-host x-forwarded-proto x-forwarded-port @@ -156,7 +196,7 @@ clear_untrusted_proxy_headers = yes [pshell] default_shell = ipython -setup = endi.pshell.setup +setup = caerp.pshell.setup # Begin logging configuration @@ -174,10 +214,10 @@ level = WARN handlers = file, console propagate=1 -[logger_endi] +[logger_caerp] level = INFO handlers = file, console, warnfile -qualname = endi +qualname = caerp propagate=0 [logger_sqlalchemy] @@ -193,7 +233,7 @@ propagate=0 level=INFO handlers = celery_file, console propagate=0 -qualname = endi.celery +qualname = caerp.celery [logger_alembic] level = INFO @@ -220,25 +260,25 @@ propagate=0 [handler_console] -class = endi.log.CustomStreamHandler +class = caerp.log.CustomStreamHandler args = (sys.stderr,) level = NOTSET formatter = generic [handler_file] -class = endi.log.CustomFileHandler +class = caerp.log.CustomFileHandler args = ('/var/log/__APP__/logfile.log','a') level = INFO formatter = generic [handler_celery_file] -class = endi.log.CustomFileHandler +class = caerp.log.CustomFileHandler args = ('/var/log/__APP__/celery.log','a') level = INFO formatter = generic [handler_warnfile] -class = endi.log.CustomFileHandler +class = caerp.log.CustomFileHandler args = ('/var/log/__APP__/warnlogfile.log','a') level = WARN formatter = generic @@ -258,5 +298,5 @@ format = %(asctime)-15s %(levelname)-5.5s %(message)s ([%(name)s.%(funcName)s:%( # End logging configuration #Alembic conf [alembic] -script_location = endi:alembic +script_location = caerp:alembic file_template = %%(slug)s_%%(rev)s diff --git a/conf/systemd.service b/conf/systemd.service index d7e1c74..4981b7d 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -1,5 +1,5 @@ [Unit] -Description=enDI: logiciel de comptabilité pour CAE +Description=CAERP: logiciel de comptabilité pour CAE After=network.target [Service] diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index 8b9988d..9a68a24 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -1,4 +1,8 @@ -enDI is a business management software package. It is the management tool for economic and social activity entirely dedicated to CAEs as well as to any company and group of independent entrepreneurs. +enDI is a business management software package. It is the management tool for +economic and social activity entirely dedicated to CAEs as well as to any +company and group of independent entrepreneurs. + +It's the software behind the enDi and MoOGLi services. ### Features diff --git a/doc/DESCRIPTION_fr.md b/doc/DESCRIPTION_fr.md index 51d12dc..c7a4477 100644 --- a/doc/DESCRIPTION_fr.md +++ b/doc/DESCRIPTION_fr.md @@ -1,7 +1,9 @@ -enDI est un progiciel de gestion d'entreprise. c'est l'outil de pilotage de +CAERP est un progiciel de gestion d'entreprise. c'est l'outil de pilotage de l'activité économique et sociale entièrement dédié aux CAE ainsi qu'à toute entreprise et collectif d'entrepreneur.euse.s indépendant.e.s. +C'est le logiciel derrière les services enDi et MoOGLI. + ### Fonctionnalités Il permet aux entrepreneur.euse.s : diff --git a/manifest.toml b/manifest.toml index 69e9817..b11f169 100644 --- a/manifest.toml +++ b/manifest.toml @@ -2,10 +2,10 @@ packaging_format = 2 -id = "endi" -name = "enDI" -description.en = "Comptability software for CAE companies (french Communauté d'Activité et d'Emploi)" -description.fr = "Progiciel de gestion comptable à l'usage des CAE (Communauté d'Activité et d'Emploi)" +id = "caerp" +name = "CAERP" +description.en = "Comptability software for CAE companies (french Communauté d'Activité et d'Emploi), the software behind enDi and MoOGLI" +description.fr = "Progiciel de gestion comptable à l'usage des CAE (Communauté d'Activité et d'Emploi), le logiciel de enDi et MoOGLI" version = "2024.07.05~ynh1" @@ -15,9 +15,8 @@ maintainers = ["Salamandar"] license = "AGPL-3.0" website = "https://endi.coop" demo = "https://demo.endi.coop" -admindoc = "https://framagit.org/endi/endi" userdoc = "https://doc.endi.coop" -code = "https://framagit.org/endi/endi" +code = "https://framagit.org/caerp/caerp" [integration] yunohost = ">= 11.2.12" @@ -45,7 +44,7 @@ ram.runtime = "50M" [resources] [resources.sources.main] - url = "https://framagit.org/endi/endi/-/archive/34ed0cc755e66d7150b263d8b2f9ff4881624271/endi-34ed0cc755e66d7150b263d8b2f9ff4881624271.tar.bz2" + url = "https://framagit.org/caerp/caerp/-/archive/34ed0cc755e66d7150b263d8b2f9ff4881624271/endi-34ed0cc755e66d7150b263d8b2f9ff4881624271.tar.bz2" sha256 = "c98e7210b320b5980846e9f08fe9fdf5a9eee78077e29728914cff0f71a568c7" autoupdate.strategy = "latest_gitlab_commit" diff --git a/scripts/_common.sh b/scripts/_common.sh index 989729e..0c255f3 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -10,17 +10,17 @@ nodejs_version=16 # PERSONAL HELPERS #================================================= -_ynh_endi_patch_src() { +_ynh_caerp_patch_src() { # Patching requirements.txt to use system provided Cython cython_version=$(cython3 --version 2>&1 | sed 's|Cython version ||') - sed -i "s|Cython=.*|Cython==$cython_version|" "$install_dir/endi/requirements.txt" + sed -i "s|Cython=.*|Cython==$cython_version|" "$install_dir/caerp/requirements.txt" } -_ynh_endi_build_ui() { +_ynh_caerp_build_ui() { ynh_use_nodejs - pushd "$install_dir/endi" 2>&1 + pushd "$install_dir/caerp" 2>&1 ynh_exec_as "$app" "$ynh_node_load_PATH" "$ynh_npm" --prefix js_sources install 2>&1 ynh_exec_as "$app" "$ynh_node_load_PATH" "$ynh_npm" --prefix vue_sources install 2>&1 @@ -29,11 +29,11 @@ _ynh_endi_build_ui() { popd 2>&1 } -_ynh_endi_build_python() { +_ynh_caerp_build_python() { _ynh_python_venv_setup --venv_dir="$install_dir/venv" python_venv_site_packages=$(_ynh_python_venv_get_site_packages_dir -d "$install_dir/venv") - pushd "$install_dir/endi" 2>&1 + pushd "$install_dir/caerp" 2>&1 ynh_exec_as "$app" "$install_dir/venv/bin/python3" -m pip install -r requirements.txt ynh_exec_as "$app" "$install_dir/venv/bin/python3" ./setup.py install 2>&1 popd 2>&1 @@ -43,16 +43,16 @@ _ynh_endi_build_python() { chown -R "$app:www-data" "$install_dir" } -_ynh_endi_migratedb() { +_ynh_caerp_migratedb() { pushd "$install_dir" 2>&1 - ynh_exec_as $app "$install_dir/venv/bin/endi-admin" "$install_dir/endi.ini" \ + ynh_exec_as $app "$install_dir/venv/bin/caerp-admin" "$install_dir/caerp.ini" \ syncdb popd 2>&1 } -_ynh_endi_add_admin() { +_ynh_caerp_add_admin() { pushd "$install_dir" 2>&1 - ynh_exec_as $app "$install_dir/venv/bin/endi-admin" "$install_dir/endi.ini" \ + ynh_exec_as $app "$install_dir/venv/bin/caerp-admin" "$install_dir/caerp.ini" \ useradd --group=admin --user="admin" --pwd="$password" --email="admin@$domain" popd 2>&1 } diff --git a/scripts/change_url b/scripts/change_url index 475c417..bc06fa6 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -26,10 +26,10 @@ ynh_change_url_nginx_config #================================================= ynh_script_progression --message="Updating $app's configuration file..." --weight=1 -ynh_add_config --template="endi.ini" --destination="$install_dir/endi.ini" +ynh_add_config --template="caerp.ini" --destination="$install_dir/caerp.ini" -chmod 500 "$install_dir/endi.ini" -chown "$app:$app" "$install_dir/endi.ini" +chmod 500 "$install_dir/caerp.ini" +chown "$app:$app" "$install_dir/caerp.ini" #================================================= # START SYSTEMD SERVICE diff --git a/scripts/install b/scripts/install index 56dc0d0..0dece4a 100755 --- a/scripts/install +++ b/scripts/install @@ -26,20 +26,20 @@ sed -i 's|^#\? \?\(fr_FR.UTF-8 \?.*\)$|\1|' /etc/locale.gen #================================================= ynh_script_progression --message="Setting up source files..." --weight=1 -ynh_setup_source --dest_dir="$install_dir/endi" +ynh_setup_source --dest_dir="$install_dir/caerp" chmod -R o-rwx "$install_dir" chown -R "$app:www-data" "$install_dir" -# _ynh_endi_patch_src +# _ynh_caerp_patch_src #================================================= # SETUP APPLICATION #================================================= ynh_script_progression --message="Building $app..." --weight=1 -_ynh_endi_build_ui -_ynh_endi_build_python +_ynh_caerp_build_ui +_ynh_caerp_build_python #================================================= # ADD A CONFIGURATION @@ -49,10 +49,10 @@ ynh_script_progression --message="Adding $app's configuration file..." --weight= redis_db=$(ynh_redis_get_free_db) ynh_app_setting_set --app="$app" --key=redis_db --value="$redis_db" -ynh_add_config --template="endi.ini" --destination="$install_dir/endi.ini" +ynh_add_config --template="caerp.ini" --destination="$install_dir/caerp.ini" -chmod 500 "$install_dir/endi.ini" -chown "$app:$app" "$install_dir/endi.ini" +chmod 500 "$install_dir/caerp.ini" +chown "$app:$app" "$install_dir/caerp.ini" #================================================= # CREATE LOG DIRECTORY @@ -67,8 +67,8 @@ chmod 750 "/var/log/$app" #================================================= ynh_script_progression --message="Configuring $app..." --weight=1 -_ynh_endi_migratedb -_ynh_endi_add_admin +_ynh_caerp_migratedb +_ynh_caerp_add_admin #================================================= # GENERIC FINALIZATION @@ -80,7 +80,7 @@ ynh_script_progression --message="Configuring log rotation..." --weight=1 ynh_add_nginx_config ynh_add_systemd_config -yunohost service add "$app" --description="enDI, logiciel de comptabilité pour CAE" --log="/var/log/$app/logfile.log" +yunohost service add "$app" --description="CAERP, logiciel de comptabilité pour CAE" --log="/var/log/$app/logfile.log" ynh_use_logrotate --logfile="/var/log/$app/logfile.log" diff --git a/scripts/restore b/scripts/restore index 4750975..39c8a70 100755 --- a/scripts/restore +++ b/scripts/restore @@ -34,7 +34,7 @@ ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" ynh_restore_file --origin_path="/etc/systemd/system/$app.service" systemctl enable "$app.service" --quiet -yunohost service add "$app" --description="enDI, logiciel de comptabilité pour CAE" --log="/var/log/$app/logfile.log" +yunohost service add "$app" --description="CAERP, logiciel de comptabilité pour CAE" --log="/var/log/$app/logfile.log" ynh_restore_file --origin_path="/etc/logrotate.d/$app" diff --git a/scripts/upgrade b/scripts/upgrade index d7d6998..57a80d7 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -27,35 +27,35 @@ ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version" ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src -ynh_setup_source --dest_dir="$install_dir/endi" --full_replace --keep="endi.ini" +ynh_setup_source --dest_dir="$install_dir/caerp" --full_replace --keep="endi.ini caerp.ini" chmod -R o-rwx "$install_dir" chown -R "$app:www-data" "$install_dir" -# _ynh_endi_patch_src +# _ynh_caerp_patch_src #================================================= # UPDATE A CONFIG FILE #================================================= ynh_script_progression --message="Updating $app's configuration file..." --weight=1 -ynh_add_config --template="endi.ini" --destination="$install_dir/endi.ini" +ynh_add_config --template="caerp.ini" --destination="$install_dir/caerp.ini" -chmod 500 "$install_dir/endi.ini" -chown "$app:$app" "$install_dir/endi.ini" +chmod 500 "$install_dir/caerp.ini" +chown "$app:$app" "$install_dir/caerp.ini" #================================================= # SETUP APPLICATION #================================================= ynh_script_progression --message="Building $app..." --weight=1 -_ynh_endi_build_ui -_ynh_endi_build_python +_ynh_caerp_build_ui +_ynh_caerp_build_python #================================================= # SETUP APPLICATION #================================================= ynh_script_progression --message="Migrating databases..." --weight=1 -_ynh_endi_migratedb +_ynh_caerp_migratedb #================================================= # SETUP SYSTEMD @@ -66,7 +66,7 @@ ynh_add_nginx_config # Create a dedicated systemd config ynh_add_systemd_config -yunohost service add "$app" --description="enDI, logiciel de comptabilité pour CAE" --log="/var/log/$app/logfile.log" +yunohost service add "$app" --description="CAERP, logiciel de comptabilité pour CAE" --log="/var/log/$app/logfile.log" # Use logrotate to manage app-specific logfile(s) ynh_use_logrotate --logfile="/var/log/$app/logfile.log"