Replaced the Markdown README with its reStructuredText version.
This commit is contained in:
parent
ea8af57fcb
commit
1cc9b1732b
227
README.md
227
README.md
@ -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 `<head>...</head>` section of your
|
||||
base template `base.html`.
|
||||
|
||||
```
|
||||
{% for css in libs.css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% if css|is_static_url %}{% static css %}{% else %}{{ css }}{% endif %}" />
|
||||
{% endfor %}
|
||||
{% for js in libs.js %}
|
||||
<script src="{% if js|is_static_url %}{% static js %}{% else %}{{ js }}{% endif %}"></script>
|
||||
{% 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.
|
||||
```
|
250
README.rst
Normal file
250
README.rst
Normal file
@ -0,0 +1,250 @@
|
||||
######################################
|
||||
The Mia! Django Accounting Application
|
||||
######################################
|
||||
|
||||
|
||||
***********
|
||||
Description
|
||||
***********
|
||||
|
||||
*mia-accounting* is a `Django <https://www.djangoproject.com>`_
|
||||
accounting application. It was rewritten from my own private
|
||||
accounting application in Perl/`mod_perl <https://perl.apache.org>`_
|
||||
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 <https://mojolicious.org/>`_
|
||||
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 ``<head>...</head>`` section of your
|
||||
base template ``base.html``.
|
||||
|
||||
.. code::
|
||||
|
||||
{% for css in libs.css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% if css|is_static_url %}{% static css %}{% else %}{{ css }}{% endif %}" />
|
||||
{% endfor %}
|
||||
{% for js in libs.js %}
|
||||
<script src="{% if js|is_static_url %}{% static js %}{% else %}{{ js }}{% endif %}"></script>
|
||||
{% 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.
|
Loading…
Reference in New Issue
Block a user