From 1cc9b1732b2acd645b3dff2b0710cec2c68c175f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BE=9D=E7=91=AA=E8=B2=93?= Date: Wed, 3 Feb 2021 10:57:24 +0800 Subject: [PATCH] Replaced the Markdown README with its reStructuredText version. --- README.md | 227 ------------------------------------------------ README.rst | 250 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 250 insertions(+), 227 deletions(-) delete mode 100644 README.md create mode 100644 README.rst diff --git a/README.md b/README.md deleted file mode 100644 index 83f7386..0000000 --- a/README.md +++ /dev/null @@ -1,227 +0,0 @@ -# mia-accounting - -The Django Accounting application. - -## Description - -`mia-accounting` is a Django accounting application. It was a re-write of my -own private accounting application written in Perl for `mod_perl` in 2007. The -revision aims to be mobile-friendly with Bootstrap, with a modern back-end -framework and front-end technology like jQuery. The first revision was in -Perl / Mojolicious in 2019. This is the second revision in Python / Django -in 2020. - -`mia-accounting` comes with two parts: - -* The `accounting` application contains the main accounting application. - -* The `mia_core` application contains core shared libraries that are used by the -accounting application and my other applications. - -You may try it in live demonstration at -https://accounting.imacat.idv.tw/accounting . -* Username: `admin` -* Password: `12345` - -## Installation - -### Install - -`mia-accounting` requires Python 3.6 or above to work. - -Install `mia-accounting` with `pip`. - -``` -pip install mia-accounting -``` - -### `settings.py` - -Add these two applications in the `INSTALL_APPS` section of your `settings.py`. - -``` -INSTALLED_APPS = [ - 'mia_core.apps.MiaCoreConfig', - 'accounting.apps.AccountingConfig', - ... -] -``` - -Make sure the locale middleware is in the `MIDDLEWARE` section of your -`settings.py`, and add it if it is not added yet. - -``` -MIDDLEWARE = [ - ... - 'django.middleware.locale.LocaleMiddleware', - ... -] -``` - -### `urls.py` - -Add the `accounting` application in the `urlpatterns` of your `urls.py`. - -``` -urlpatterns = [ - ... - path('accounting/', decorator_include(login_required, 'accounting.urls')), - ... -] -``` - -Make sure `i18n` and `jsi18n` are also in the `urlpatterns` of your `urls.py`, -and add them if they are not added yet. - -``` -urlpatterns = [ - ... - path('i18n/', include("django.conf.urls.i18n")), - path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'), - ... -] -``` - -### `base.html` - -Add the following to the very beginning of your base template -`base.html`, before your first real HTML tag. - -``` -{% load mia_core %} -{% init_libs %} -{% block settings %}{% endblock %} -``` - -Add the CSS and JavaScripts in the `...` section of your -base template `base.html`. - -``` -{% for css in libs.css %} - -{% endfor %} -{% for js in libs.js %} - -{% endfor %} -``` - -### Database Initialization - -Run the management commands to initialize the database. - -``` -./manage.py makemigrations -./manage.py migrate accounting -./manage.py accounting_accounts -``` - -Optionally you can populate the database with some sample data. - -``` -./manage.py accounting_sample -``` - -### Restart Your Web Project - -## Advanced Settings - -The following advanced settings are available in `settings.py`. - -``` -# Settings for the accounting application -ACCOUNTING = { - # The default cash acount, for ex., "0" (current assets and liabilities), - # "1111" (cash on hand), "1113" (cash in banks) or any - "DEFAULT_CASH_ACCOUNT": "1111", - # The shortcut cash accounts - "CASH_SHORTCUT_ACCOUNTS": ["0", "1111"], - # The default ledger account - "DEFAULT_LEDGER_ACCOUNT": "1111", - # The payable accounts to track - "PAYABLE_ACCOUNTS": ["2141"], - # The asset accounts to track - "EQUIPMENT_ACCOUNTS": ["1441"], -} - -# The local static CSS and JavaScript libraries -# The default is to use the libraries from CDN. You may set them to use the -# local static copies of these libraries -STATIC_LIBS = { - "jquery": {"css": [], "js": ["jquery/jquery-3.5.1.min.js"]}, - "bootstrap4": {"css": ["bootstrap4/css/bootstrap.min.css"], - "js": ["bootstrap4/js/bootstrap.bundle.min.js"]}, - "font-awesome-5": {"css": ["font-awesome-5/css/all.min.css"], - "js": []}, - "bootstrap4-datatables": { - "css": ["datatables/css/jquery.dataTables.min.css", - "edatatables/css/dataTables.bootstrap4.min.css"], - "js": ["datatables/js/jquery.dataTables.min.js", - "datatables/js/dataTables.bootstrap4.min.js"]}, - "jquery-ui": {"css": ["jquery-ui/jquery-ui.min.css"], - "js": ["jquery-ui/jquery-ui.min.js"]}, - "bootstrap4-tempusdominus": { - "css": [("tempusdominus-bootstrap-4/css/" - "tempusdominus-bootstrap-4.min.css")], - "js": ["moment/moment-with-locales.min.js", - ("tempusdominus-bootstrap-4/js/" - "tempusdominus-bootstrap-4.min.js")]}, - "decimal.js": {"css": [], "js": ["decimal/decimal.min.js"]}, -} - -# The default static stylesheets to include. Default is none. -DEFAULT_CSS = ["css/app.css"] -# The default static JavaScript to include. Default is none. -DEFAULT_JS = ["js/app.js"] - -# The regular accounts in the summary helper. They should be lists of tuples -# of (generic title, title format, account code). -# -# The following variables are available. Variables are surrounded in brackets. -# -# month_no: The numeric month of the current date -# month_name: The month name of the current date -# last_month_no: The numeric previous month of the current date -# last_month_name: The previous month name of the current date -# last_bimonthly_from_no: The first month number of the last bimonthly period -# last_bimonthly_from_name: The first month name of the last bimonthly period -# last_bimonthly_to_no: The second month number of the last bimonthly period -# last_bimonthly_to_name: The second month name of the last bimonthly period -# -REGULAR_ACCOUNTS = { - "debit": [ - ("Rent", "Rent for (month_name)", "6252"), - ("Gas bill", - "Gas bill for (last_bimonthly_from_name)-(last_bimonthly_to_name)", - "6261"), - ], - "credit": [ - ("Payroll", "Payroll for (last_month_name)", "46116"), - ], -} -``` - -## Bugs and Supports - -The `mia-accounting` project is hosted on GitHub. - -https://github.com/imacat/mia-accounting - -Address all bugs and support requests to imacat@mail.imacat.idv.tw. - -## Copyright - -``` - Copyright (c) 2020 imacat. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -``` diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..67d5dbe --- /dev/null +++ b/README.rst @@ -0,0 +1,250 @@ +###################################### +The Mia! Django Accounting Application +###################################### + + +*********** +Description +*********** + +*mia-accounting* is a `Django `_ +accounting application. It was rewritten from my own private +accounting application in Perl/`mod_perl `_ +in 2007. The revision aims to be mobile-friendly with Bootstrap, with +a modern back-end framework and front-end technology like jQuery. The +first revision was in Perl/`Mojolicious `_ +in 2019. This is the second revision in Python/Django in 2020. + +The Mia! Django accounting application comes with two parts: + +- The ``accounting`` application contains the main accounting + application. + +- The ``mia_core`` application contains core shared libraries that are + used by the ``accounting`` application and my other applications. + +You may try it in live demonstration at: + +- URL: https://accounting.imacat.idv.tw/accounting +- Username: ``admin`` +- Password: ``12345`` + + +************ +Installation +************ + +Install +####### + +The Mia! Django accounting application requires Python 3.6 or above +to work. + +Install ``mia-accounting`` with ``pip``. + +.. code:: + + pip install mia-accounting + +``settings.py`` +############### + +Add these two applications in the ``INSTALL_APPS`` section of your +``settings.py``. + +.. code:: + + INSTALLED_APPS = [ + 'mia_core.apps.MiaCoreConfig', + 'accounting.apps.AccountingConfig', + ... + ] + +Make sure the locale middleware is in the ``MIDDLEWARE`` section of +your ``settings.py``, and add it if it is not added yet. + +.. code:: + + MIDDLEWARE = [ + ... + 'django.middleware.locale.LocaleMiddleware', + ... + ] + +``urls.py`` +########### + +Add the ``accounting`` application in the ``urlpatterns`` in your +``urls.py``. + +.. code:: + + urlpatterns = [ + ... + path('accounting/', decorator_include(login_required, 'accounting.urls')), + ... + ] + +Make sure ``i18n`` and ``jsi18n`` are also in the ``urlpatterns`` of +your ``urls.py``, and add them if they are not added yet. + +.. code:: + + urlpatterns = [ + ... + path('i18n/', include("django.conf.urls.i18n")), + path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'), + ... + ] + +``base.html`` +############# + +Add the following to the very beginning of your base template +``base.html``, before your first real HTML tag. + +.. code:: + + {% load mia_core %} + {% init_libs %} + {% block settings %}{% endblock %} + +Add the CSS and JavaScripts in the ``...`` section of your +base template ``base.html``. + +.. code:: + + {% for css in libs.css %} + + {% endfor %} + {% for js in libs.js %} + + {% endfor %} + +Database Initialization +####################### + +Run the management commands to initialize the database. + +.. code:: + + ./manage.py migrate accounting + ./manage.py accounting_accounts + +Optionally you can populate the database with some sample data. + +.. code:: + + ./manage.py accounting_sample + +Restart Your Web Server +####################### + +And you are done. + + +***************** +Advanced Settings +***************** + +The following advanced settings are available in ``settings.py``. + +.. code:: + + # Settings for the accounting application + ACCOUNTING = { + # The default cash account, for ex., "0" (current assets and liabilities), + # "1111" (cash on hand), "1113" (cash in banks) or any + "DEFAULT_CASH_ACCOUNT": "1111", + # The shortcut cash accounts + "CASH_SHORTCUT_ACCOUNTS": ["0", "1111"], + # The default ledger account + "DEFAULT_LEDGER_ACCOUNT": "1111", + # The payable accounts to track + "PAYABLE_ACCOUNTS": ["2141"], + # The asset accounts to track + "EQUIPMENT_ACCOUNTS": ["1441"], + } + + # The local static CSS and JavaScript libraries + # The default is to use the libraries from CDN. You may set them to use the + # local static copies of these libraries + STATIC_LIBS = { + "jquery": {"css": [], "js": ["jquery/jquery-3.5.1.min.js"]}, + "bootstrap4": {"css": ["bootstrap4/css/bootstrap.min.css"], + "js": ["bootstrap4/js/bootstrap.bundle.min.js"]}, + "font-awesome-5": {"css": ["font-awesome-5/css/all.min.css"], + "js": []}, + "bootstrap4-datatables": { + "css": ["datatables/css/jquery.dataTables.min.css", + "datatables/css/dataTables.bootstrap4.min.css"], + "js": ["datatables/js/jquery.dataTables.min.js", + "datatables/js/dataTables.bootstrap4.min.js"]}, + "jquery-ui": {"css": ["jquery-ui/jquery-ui.min.css"], + "js": ["jquery-ui/jquery-ui.min.js"]}, + "bootstrap4-tempusdominus": { + "css": [("tempusdominus-bootstrap-4/css/" + "tempusdominus-bootstrap-4.min.css")], + "js": ["moment/moment-with-locales.min.js", + ("tempusdominus-bootstrap-4/js/" + "tempusdominus-bootstrap-4.min.js")]}, + "decimal.js": {"css": [], "js": ["decimal/decimal.min.js"]}, + } + + # The default static stylesheets to include. Default is none. + DEFAULT_CSS = ["css/app.css"] + # The default static JavaScript to include. Default is none. + DEFAULT_JS = ["js/app.js"] + + # The regular accounts in the summary helper. They should be lists of tuples + # of (generic title, summary format, account code). + # + # The following variables are available. Variables are surrounded in brackets. + # + # month_no: The numeric month of the current date + # month_name: The month name of the current date + # last_month_no: The numeric previous month of the current date + # last_month_name: The previous month name of the current date + # last_bimonthly_from_no: The first month number of the last bimonthly period + # last_bimonthly_from_name: The first month name of the last bimonthly period + # last_bimonthly_to_no: The second month number of the last bimonthly period + # last_bimonthly_to_name: The second month name of the last bimonthly period + # + REGULAR_ACCOUNTS = { + "debit": [ + ("Rent", "Rent for (month_name)", "6252"), + ("Gas bill", + "Gas bill for (last_bimonthly_from_name)-(last_bimonthly_to_name)", + "6261"), + ], + "credit": [ + ("Payroll", "Payroll for (last_month_name)", "46116"), + ], + } + + +Bugs and Supports +################# + +The Mia! Django accounting application is hosted on GitHub. + + https://github.com/imacat/mia-accounting + +Address all bugs and support requests to imacat@mail.imacat.idv.tw. + +Copyright +######### + + Copyright (c) 2020-2021 imacat. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License.