monopyly 1.6.0__py3-none-any.whl → 1.6.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- monopyly/CHANGELOG.md +7 -0
- monopyly/_version.py +2 -2
- monopyly/banking/forms.py +4 -0
- monopyly/common/forms/_forms.py +5 -14
- monopyly/common/forms/fields.py +0 -9
- monopyly/common/forms/utils.py +3 -3
- monopyly/core/context_processors.py +3 -21
- monopyly/credit/cards.py +1 -1
- monopyly/credit/forms.py +6 -2
- monopyly/static/css/style.css +4 -0
- monopyly/templates/banking/account_form/account_form_page_new.html +10 -8
- monopyly/templates/banking/account_page.html +24 -24
- monopyly/templates/banking/accounts_page.html +8 -6
- monopyly/templates/common/tags_page.html +12 -12
- monopyly/templates/core/index.html +12 -8
- monopyly/templates/core/profile.html +18 -19
- monopyly/templates/credit/account_page.html +17 -17
- monopyly/templates/credit/card_form/card_form_page_new.html +8 -5
- monopyly/templates/credit/statement_page.html +43 -44
- monopyly/templates/credit/statement_reconciliation/statement_reconciliation_page.html +19 -19
- monopyly/templates/credit/statements_page.html +13 -13
- monopyly/templates/credit/transaction_form/transaction_form_page_update.html +9 -9
- monopyly/templates/credit/transactions_page.html +28 -28
- monopyly/templates/layout.html +7 -5
- {monopyly-1.6.0.dist-info → monopyly-1.6.1.dist-info}/METADATA +5 -5
- {monopyly-1.6.0.dist-info → monopyly-1.6.1.dist-info}/RECORD +30 -30
- {monopyly-1.6.0.dist-info → monopyly-1.6.1.dist-info}/WHEEL +0 -0
- {monopyly-1.6.0.dist-info → monopyly-1.6.1.dist-info}/entry_points.txt +0 -0
- {monopyly-1.6.0.dist-info → monopyly-1.6.1.dist-info}/licenses/COPYING +0 -0
- {monopyly-1.6.0.dist-info → monopyly-1.6.1.dist-info}/licenses/LICENSE +0 -0
monopyly/CHANGELOG.md
CHANGED
|
@@ -237,4 +237,11 @@
|
|
|
237
237
|
- Update JavaScript libraries (jQuery, Chartist)
|
|
238
238
|
|
|
239
239
|
|
|
240
|
+
### 1.6.1
|
|
241
|
+
|
|
242
|
+
- Allow pie chart labels to overflow the SVG container
|
|
243
|
+
- Define JavaScript elements in header (deferring execution when logical)
|
|
244
|
+
- Bump dependencies
|
|
245
|
+
|
|
246
|
+
|
|
240
247
|
<a name="bottom" id="bottom"></a>
|
monopyly/_version.py
CHANGED
monopyly/banking/forms.py
CHANGED
|
@@ -115,6 +115,10 @@ class BankAccountForm(EntryForm):
|
|
|
115
115
|
}
|
|
116
116
|
return account_type_data
|
|
117
117
|
|
|
118
|
+
def gather_entry_data(self, entry):
|
|
119
|
+
"""Gather data for the form from the given database entry."""
|
|
120
|
+
raise NotImplementedError
|
|
121
|
+
|
|
118
122
|
# Fields to identify the bank/account type information for the account
|
|
119
123
|
bank_info = FormField(BankSubform)
|
|
120
124
|
account_type_info = FormField(AccountTypeSubform)
|
monopyly/common/forms/_forms.py
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
General form constructions.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from abc import
|
|
5
|
+
from abc import abstractmethod
|
|
6
6
|
from datetime import date
|
|
7
7
|
|
|
8
|
-
from
|
|
8
|
+
from dry_foundation.forms import AbstractFlaskForm, FlaskSubform
|
|
9
9
|
from wtforms.fields import StringField, SubmitField
|
|
10
10
|
from wtforms.validators import DataRequired
|
|
11
11
|
|
|
@@ -15,12 +15,7 @@ from .fields import CurrencyField, DateField
|
|
|
15
15
|
form_err_msg = "There was an improper value in your form. Please try again."
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
class
|
|
19
|
-
# Defined to allow the forms to also to be abstract base classes
|
|
20
|
-
pass
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
class EntryForm(FlaskForm, metaclass=AbstractEntryFormMixinMeta):
|
|
18
|
+
class EntryForm(AbstractFlaskForm):
|
|
24
19
|
"""
|
|
25
20
|
A form designed to accept database entry information.
|
|
26
21
|
|
|
@@ -85,11 +80,8 @@ class EntryForm(FlaskForm, metaclass=AbstractEntryFormMixinMeta):
|
|
|
85
80
|
)
|
|
86
81
|
|
|
87
82
|
|
|
88
|
-
class EntrySubform(EntryForm):
|
|
89
|
-
"""
|
|
90
|
-
|
|
91
|
-
def __init__(self, *args, **kwargs):
|
|
92
|
-
super().__init__(meta={"csrf": False}, *args, **kwargs)
|
|
83
|
+
class EntrySubform(FlaskSubform, EntryForm):
|
|
84
|
+
"""A subform implementing ``EntryForm`` behavior."""
|
|
93
85
|
|
|
94
86
|
|
|
95
87
|
class AcquisitionSubform(EntrySubform):
|
|
@@ -149,7 +141,6 @@ class TransactionForm(EntryForm):
|
|
|
149
141
|
}
|
|
150
142
|
return data
|
|
151
143
|
|
|
152
|
-
@abstractmethod
|
|
153
144
|
def gather_entry_data(self, entry):
|
|
154
145
|
if self.subtransaction_model is None:
|
|
155
146
|
raise RuntimeError(
|
monopyly/common/forms/fields.py
CHANGED
|
@@ -24,15 +24,6 @@ class DateField(wtforms_fields.DateField):
|
|
|
24
24
|
super().__init__(*args, filters=filters, **kwargs)
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
class OptionalDateField(DateField):
|
|
28
|
-
"""A date field where the field value is optional."""
|
|
29
|
-
|
|
30
|
-
def process_formdata(self, valuelist):
|
|
31
|
-
"""Process data from the form, ignoring an ommitted value."""
|
|
32
|
-
if valuelist != [""]:
|
|
33
|
-
super().process_formdata(valuelist)
|
|
34
|
-
|
|
35
|
-
|
|
36
27
|
class CurrencyField(wtforms_fields.DecimalField):
|
|
37
28
|
"""A decimal field with currency-specific customizations."""
|
|
38
29
|
|
monopyly/common/forms/utils.py
CHANGED
|
@@ -113,9 +113,9 @@ def extend_field_list_for_ajax(form_class, field_list_name, field_list_count):
|
|
|
113
113
|
|
|
114
114
|
Parameters
|
|
115
115
|
----------
|
|
116
|
-
form_class :
|
|
117
|
-
The class (not class instance) containing the field list to
|
|
118
|
-
extended.
|
|
116
|
+
form_class : type
|
|
117
|
+
The form class (not class instance) containing the field list to
|
|
118
|
+
be extended.
|
|
119
119
|
field_list_name : str
|
|
120
120
|
The name of the field list to be extended.
|
|
121
121
|
field_list_count : int
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
Filters defined for the application.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from
|
|
6
|
-
from importlib import import_module
|
|
5
|
+
from dry_foundation.utils import define_basic_template_global_variables
|
|
7
6
|
|
|
8
7
|
from .actions import determine_summary_balance_svg_viewbox_width
|
|
9
8
|
from .blueprint import bp
|
|
@@ -11,13 +10,8 @@ from .blueprint import bp
|
|
|
11
10
|
|
|
12
11
|
@bp.app_context_processor
|
|
13
12
|
def inject_global_template_variables():
|
|
14
|
-
"""Inject template
|
|
15
|
-
|
|
16
|
-
"app_version": _display_version(),
|
|
17
|
-
"copyright_statement": f"© {date.today().year}",
|
|
18
|
-
"date_today": date.today(),
|
|
19
|
-
}
|
|
20
|
-
return template_globals
|
|
13
|
+
"""Inject template variables globally into the template context."""
|
|
14
|
+
return define_basic_template_global_variables("monopyly._version")
|
|
21
15
|
|
|
22
16
|
|
|
23
17
|
@bp.app_context_processor
|
|
@@ -27,15 +21,3 @@ def inject_utility_functions():
|
|
|
27
21
|
"calculate_summary_balance_width": determine_summary_balance_svg_viewbox_width,
|
|
28
22
|
}
|
|
29
23
|
return utility_functions
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def _display_version():
|
|
33
|
-
"""Show the version (without commit information)."""
|
|
34
|
-
try:
|
|
35
|
-
version = import_module("monopyly._version").version
|
|
36
|
-
except ModuleNotFoundError:
|
|
37
|
-
# Fallback action in case Hatch VCS fails
|
|
38
|
-
display_version = ""
|
|
39
|
-
else:
|
|
40
|
-
display_version = version.split("+")[0]
|
|
41
|
-
return display_version
|
monopyly/credit/cards.py
CHANGED
|
@@ -137,7 +137,7 @@ def save_card(form, card_id=None):
|
|
|
137
137
|
|
|
138
138
|
Parameters
|
|
139
139
|
----------
|
|
140
|
-
form :
|
|
140
|
+
form : CreditCardForm
|
|
141
141
|
The form beign used to provide the data being saved.
|
|
142
142
|
card_id : int
|
|
143
143
|
The ID of hte card to be saved. If provided, the named card will
|
monopyly/credit/forms.py
CHANGED
|
@@ -5,6 +5,7 @@ Generate credit card forms for the user to complete.
|
|
|
5
5
|
from flask import abort
|
|
6
6
|
from wtforms.fields import (
|
|
7
7
|
BooleanField,
|
|
8
|
+
DateField,
|
|
8
9
|
FieldList,
|
|
9
10
|
FormField,
|
|
10
11
|
IntegerField,
|
|
@@ -18,7 +19,6 @@ from ..common.forms import AcquisitionSubform, EntryForm, EntrySubform, Transact
|
|
|
18
19
|
from ..common.forms.fields import (
|
|
19
20
|
CustomChoiceSelectField,
|
|
20
21
|
LastFourDigitsField,
|
|
21
|
-
OptionalDateField,
|
|
22
22
|
StringField,
|
|
23
23
|
)
|
|
24
24
|
from ..common.forms.utils import Autocompleter
|
|
@@ -152,6 +152,10 @@ class CardStatementTransferForm(EntryForm):
|
|
|
152
152
|
transfer = RadioField("transfer", choices=[("yes", "Yes"), ("no", "No")])
|
|
153
153
|
submit = SubmitField("Continue")
|
|
154
154
|
|
|
155
|
+
def gather_entry_data(self, entry):
|
|
156
|
+
"""Gather data for the form from the given database entry."""
|
|
157
|
+
raise NotImplementedError
|
|
158
|
+
|
|
155
159
|
|
|
156
160
|
class CreditTransactionForm(TransactionForm):
|
|
157
161
|
"""Form to input/edit credit card transactions."""
|
|
@@ -193,7 +197,7 @@ class CreditTransactionForm(TransactionForm):
|
|
|
193
197
|
# Fields to identify the card/bank information for the statement
|
|
194
198
|
card_info = FormField(CardSubform)
|
|
195
199
|
# Fields pertaining to the statement
|
|
196
|
-
issue_date =
|
|
200
|
+
issue_date = DateField("Statement Date", [Optional()])
|
|
197
201
|
|
|
198
202
|
def get_statement(self, transaction_date):
|
|
199
203
|
"""Get the credit card statement described by the form data."""
|
monopyly/static/css/style.css
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
{% extends "common/form_page.html" %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script type="module" src="{{ url_for('static', filename='js/display-new-bank-inputs.js') }}">
|
|
7
|
+
</script>
|
|
8
|
+
<script type="module" src="{{ url_for('static', filename='js/display-new-account-type-inputs.js') }}">
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
{% endblock %}
|
|
12
|
+
|
|
13
|
+
|
|
4
14
|
{% block title %}
|
|
5
15
|
New Bank Account
|
|
6
16
|
{% endblock %}
|
|
@@ -13,11 +23,3 @@
|
|
|
13
23
|
{% endwith %}
|
|
14
24
|
|
|
15
25
|
{% endblock %}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
{% block javascript %}
|
|
19
|
-
<script type="module" src="{{ url_for('static', filename='js/display-new-bank-inputs.js') }}">
|
|
20
|
-
</script>
|
|
21
|
-
<script type="module" src="{{ url_for('static', filename='js/display-new-account-type-inputs.js') }}">
|
|
22
|
-
</script>
|
|
23
|
-
{% endblock %}
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
{% extends 'layout.html' %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script>
|
|
7
|
+
const EXPAND_TRANSACTION_ENDPOINT = "{{ url_for('banking.expand_transaction') }}";
|
|
8
|
+
const LINKED_TRANSACTION_ENDPOINT = "{{ url_for('banking.show_linked_transaction') }}";
|
|
9
|
+
const LOAD_TRANSACTIONS_ENDPOINT = "{{ url_for('banking.load_more_transactions') }}";
|
|
10
|
+
const LOAD_TRANSACTIONS_SELECTORS = {
|
|
11
|
+
"account_id": {{ account.id }},
|
|
12
|
+
"block_count": 1
|
|
13
|
+
};
|
|
14
|
+
const BALANCE_CHART_DATA = {{ chart_data|tojson }};
|
|
15
|
+
</script>
|
|
16
|
+
<script type="module" src="{{ url_for('static', filename='js/load-more-transactions.js') }}">
|
|
17
|
+
</script>
|
|
18
|
+
<script type="module" src="{{ url_for('static', filename='js/expand-transaction.js') }}">
|
|
19
|
+
</script>
|
|
20
|
+
<script type="module" src="{{ url_for('static', filename='js/show-linked-transaction.js') }}">
|
|
21
|
+
</script>
|
|
22
|
+
<script type="module" src="{{ url_for('static', filename='js/create-balance-chart.js') }}">
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
{% endblock %}
|
|
26
|
+
|
|
27
|
+
|
|
4
28
|
{% block header %}
|
|
5
29
|
|
|
6
30
|
<h1>
|
|
@@ -57,27 +81,3 @@
|
|
|
57
81
|
</div>
|
|
58
82
|
|
|
59
83
|
{% endblock %}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
{% block javascript %}
|
|
63
|
-
|
|
64
|
-
<script>
|
|
65
|
-
const EXPAND_TRANSACTION_ENDPOINT = "{{ url_for('banking.expand_transaction') }}";
|
|
66
|
-
const LINKED_TRANSACTION_ENDPOINT = "{{ url_for('banking.show_linked_transaction') }}";
|
|
67
|
-
const LOAD_TRANSACTIONS_ENDPOINT = "{{ url_for('banking.load_more_transactions') }}";
|
|
68
|
-
const LOAD_TRANSACTIONS_SELECTORS = {
|
|
69
|
-
"account_id": {{ account.id }},
|
|
70
|
-
"block_count": 1
|
|
71
|
-
};
|
|
72
|
-
const BALANCE_CHART_DATA = {{ chart_data|tojson }};
|
|
73
|
-
</script>
|
|
74
|
-
<script type="module" src="{{ url_for('static', filename='js/load-more-transactions.js') }}">
|
|
75
|
-
</script>
|
|
76
|
-
<script type="module" src="{{ url_for('static', filename='js/expand-transaction.js') }}">
|
|
77
|
-
</script>
|
|
78
|
-
<script type="module" src="{{ url_for('static', filename='js/show-linked-transaction.js') }}">
|
|
79
|
-
</script>
|
|
80
|
-
<script type="module" src="{{ url_for('static', filename='js/create-balance-chart.js') }}">
|
|
81
|
-
</script>
|
|
82
|
-
|
|
83
|
-
{% endblock %}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
{% extends 'layout.html' %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script type="module" src="{{ url_for('static', filename='js/expand-bank-account.js') }}">
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
{% endblock %}
|
|
10
|
+
|
|
11
|
+
|
|
4
12
|
{% block header %}
|
|
5
13
|
|
|
6
14
|
<h1>
|
|
@@ -83,9 +91,3 @@
|
|
|
83
91
|
</div>
|
|
84
92
|
|
|
85
93
|
{% endblock %}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
{% block javascript %}
|
|
89
|
-
<script type="module" src="{{ url_for('static', filename='js/expand-bank-account.js') }}">
|
|
90
|
-
</script>
|
|
91
|
-
{% endblock %}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
{% extends 'layout.html' %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script>
|
|
7
|
+
const ADD_TAG_ENDPOINT = "{{ url_for('banking.add_tag') }}";
|
|
8
|
+
const REMOVE_TAG_ENDPOINT = "{{ url_for('banking.delete_tag') }}";
|
|
9
|
+
</script>
|
|
10
|
+
<script type="module" src="{{ url_for('static', filename='js/bind-tag-actions.js') }}">
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
{% endblock %}
|
|
14
|
+
|
|
15
|
+
|
|
4
16
|
{% block header %}
|
|
5
17
|
|
|
6
18
|
<h1>
|
|
@@ -31,15 +43,3 @@
|
|
|
31
43
|
</div>
|
|
32
44
|
|
|
33
45
|
{% endblock %}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
{% block javascript %}
|
|
37
|
-
|
|
38
|
-
<script>
|
|
39
|
-
const ADD_TAG_ENDPOINT = "{{ url_for('banking.add_tag') }}";
|
|
40
|
-
const REMOVE_TAG_ENDPOINT = "{{ url_for('banking.delete_tag') }}";
|
|
41
|
-
</script>
|
|
42
|
-
<script type="module" src="{{ url_for('static', filename='js/bind-tag-actions.js') }}">
|
|
43
|
-
</script>
|
|
44
|
-
|
|
45
|
-
{% endblock %}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
{% extends "layout.html" %}
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script>
|
|
7
|
+
const HIDE_HOMEPAGE_BLOCK_ENDPOINT = "{{ url_for('core.hide_homepage_block') }}";
|
|
8
|
+
</script>
|
|
9
|
+
<script type="module" src="{{ url_for('static', filename='js/hide-homepage-block.js') }}">
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
{% endblock %}
|
|
13
|
+
|
|
14
|
+
|
|
3
15
|
{% block content %}
|
|
4
16
|
|
|
5
17
|
{% if session["show_homepage_block"] %}
|
|
@@ -170,11 +182,3 @@
|
|
|
170
182
|
{% endif %}
|
|
171
183
|
|
|
172
184
|
{% endblock %}
|
|
173
|
-
|
|
174
|
-
{% block javascript %}
|
|
175
|
-
<script>
|
|
176
|
-
const HIDE_HOMEPAGE_BLOCK_ENDPOINT = "{{ url_for('core.hide_homepage_block') }}";
|
|
177
|
-
</script>
|
|
178
|
-
<script type="module" src="{{ url_for('static', filename='js/hide-homepage-block.js') }}">
|
|
179
|
-
</script>
|
|
180
|
-
{% endblock %}
|
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
{% extends "layout.html" %}
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script>
|
|
7
|
+
const UPDATE_BANK_NAME_ENDPOINTS = {
|
|
8
|
+
{% for bank in banks %}
|
|
9
|
+
{{ bank.id }}: "{{ url_for('banking.update_bank_name', bank_id=bank.id) }}",
|
|
10
|
+
{% endfor %}
|
|
11
|
+
};
|
|
12
|
+
</script>
|
|
13
|
+
<script type="module" src="{{ url_for('static', filename='js/expand-bank.js') }}">
|
|
14
|
+
</script>
|
|
15
|
+
<script type="module" src="{{ url_for('static', filename='js/update-bank-name.js') }}">
|
|
16
|
+
</script>
|
|
17
|
+
|
|
5
18
|
{% endblock %}
|
|
6
19
|
|
|
20
|
+
|
|
7
21
|
{% block header %}
|
|
8
|
-
<h1>Profile</h1>
|
|
22
|
+
<h1>{% block title %}Profile{% endblock %}</h1>
|
|
9
23
|
{% endblock %}
|
|
10
24
|
|
|
25
|
+
|
|
11
26
|
{% block content %}
|
|
12
27
|
|
|
13
28
|
<div id="profile">
|
|
@@ -76,19 +91,3 @@
|
|
|
76
91
|
</div>
|
|
77
92
|
|
|
78
93
|
{% endblock %}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
{% block javascript %}
|
|
82
|
-
<script>
|
|
83
|
-
|
|
84
|
-
const UPDATE_BANK_NAME_ENDPOINTS = {
|
|
85
|
-
{% for bank in banks %}
|
|
86
|
-
{{ bank.id }}: "{{ url_for('banking.update_bank_name', bank_id=bank.id) }}",
|
|
87
|
-
{% endfor %}
|
|
88
|
-
};
|
|
89
|
-
</script>
|
|
90
|
-
<script type="module" src="{{ url_for('static', filename='js/expand-bank.js') }}">
|
|
91
|
-
</script>
|
|
92
|
-
<script type="module" src="{{ url_for('static', filename='js/update-bank-name.js') }}">
|
|
93
|
-
</script>
|
|
94
|
-
{% endblock %}
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
{% extends 'layout.html' %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script>
|
|
7
|
+
const UPDATE_CARD_STATUS_ENDPOINT = "{{ url_for('credit.update_card_status') }}";
|
|
8
|
+
const UPDATE_ACCOUNT_STATEMENT_ISSUE_DAY_ENDPOINT = "{{ url_for('credit.update_account_statement_issue_day', account_id=account.id) }}";
|
|
9
|
+
const UPDATE_ACCOUNT_STATEMENT_DUE_DAY_ENDPOINT = "{{ url_for('credit.update_account_statement_due_day', account_id=account.id) }}";
|
|
10
|
+
</script>
|
|
11
|
+
<script src="{{ url_for('static', filename='js/flip-card.js') }}" defer>
|
|
12
|
+
</script>
|
|
13
|
+
<script type="module" src="{{ url_for('static', filename='js/update-card-status.js') }}">
|
|
14
|
+
</script>
|
|
15
|
+
<script type="module" src="{{ url_for('static', filename='js/update-account-statement-parameters.js') }}">
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
{% endblock %}
|
|
19
|
+
|
|
20
|
+
|
|
4
21
|
{% block header %}
|
|
5
22
|
|
|
6
23
|
<h1>
|
|
@@ -100,20 +117,3 @@
|
|
|
100
117
|
</div>
|
|
101
118
|
|
|
102
119
|
{% endblock %}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
{% block javascript %}
|
|
106
|
-
|
|
107
|
-
<script>
|
|
108
|
-
const UPDATE_CARD_STATUS_ENDPOINT = "{{ url_for('credit.update_card_status') }}";
|
|
109
|
-
const UPDATE_ACCOUNT_STATEMENT_ISSUE_DAY_ENDPOINT = "{{ url_for('credit.update_account_statement_issue_day', account_id=account.id) }}";
|
|
110
|
-
const UPDATE_ACCOUNT_STATEMENT_DUE_DAY_ENDPOINT = "{{ url_for('credit.update_account_statement_due_day', account_id=account.id) }}";
|
|
111
|
-
</script>
|
|
112
|
-
<script src="{{ url_for('static', filename='js/flip-card.js') }}">
|
|
113
|
-
</script>
|
|
114
|
-
<script type="module" src="{{ url_for('static', filename='js/update-card-status.js') }}">
|
|
115
|
-
</script>
|
|
116
|
-
<script type="module" src="{{ url_for('static', filename='js/update-account-statement-parameters.js') }}">
|
|
117
|
-
</script>
|
|
118
|
-
|
|
119
|
-
{% endblock %}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
{% extends "common/form_page.html" %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script type="module" src="{{ url_for('static', filename='js/display-new-credit-account-inputs.js') }}">
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
{% endblock %}
|
|
10
|
+
|
|
11
|
+
|
|
4
12
|
{% block title %}
|
|
5
13
|
New Card
|
|
6
14
|
{% endblock %}
|
|
@@ -17,8 +25,3 @@
|
|
|
17
25
|
{% endif %}
|
|
18
26
|
|
|
19
27
|
{% endblock %}
|
|
20
|
-
|
|
21
|
-
{% block javascript %}
|
|
22
|
-
<script type="module" src="{{ url_for('static', filename='js/display-new-credit-account-inputs.js') }}">
|
|
23
|
-
</script>
|
|
24
|
-
{% endblock %}
|
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
{% extends 'layout.html' %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script>
|
|
7
|
+
const CREDIT_ACTIVITY_RECONCILIATION_ENDPOINT = "{{ url_for('credit.reconcile_activity', statement_id=statement.id) }}";
|
|
8
|
+
const UPDATE_STATEMENT_DUE_DATE_ENDPOINT = "{{ url_for('credit.update_statement_due_date', statement_id=statement.id) }}";
|
|
9
|
+
const MAKE_PAYMENT_ENDPOINT = "{{ url_for('credit.pay_credit_card', card_id=statement.card_id, statement_id=statement.id) }}";
|
|
10
|
+
const EXPAND_TRANSACTION_ENDPOINT = "{{ url_for('credit.expand_transaction') }}";
|
|
11
|
+
const LINKED_TRANSACTION_ENDPOINT = "{{ url_for('credit.show_linked_transaction') }}";
|
|
12
|
+
</script>
|
|
13
|
+
<script>
|
|
14
|
+
const CATEGORY_CHART_DATA = {
|
|
15
|
+
labels: [
|
|
16
|
+
{% for label in chart_data['labels'] %}
|
|
17
|
+
{% if label == '' %}
|
|
18
|
+
"Other",
|
|
19
|
+
{% else %}
|
|
20
|
+
"{{ label }}",
|
|
21
|
+
{% endif %}
|
|
22
|
+
{% endfor %}
|
|
23
|
+
],
|
|
24
|
+
series: [
|
|
25
|
+
{% for subtotal in chart_data['subtotals'] %}
|
|
26
|
+
{{ subtotal }},
|
|
27
|
+
{% endfor %}
|
|
28
|
+
],
|
|
29
|
+
};
|
|
30
|
+
</script>
|
|
31
|
+
<script type="module" src="{{ url_for('static', filename='js/show-credit-activity-loader.js') }}">
|
|
32
|
+
</script>
|
|
33
|
+
<script type="module" src="{{ url_for('static', filename='js/update-statement-parameters.js') }}">
|
|
34
|
+
</script>
|
|
35
|
+
<script type="module" src="{{ url_for('static', filename='js/make-payment.js') }}">
|
|
36
|
+
</script>
|
|
37
|
+
<script type="module" src="{{ url_for('static', filename='js/expand-transaction.js') }}">
|
|
38
|
+
</script>
|
|
39
|
+
<script type="module" src="{{ url_for('static', filename='js/show-linked-transaction.js') }}">
|
|
40
|
+
</script>
|
|
41
|
+
<script type="module" src="{{ url_for('static', filename='js/create-category-chart.js') }}">
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
{% endblock %}
|
|
45
|
+
|
|
46
|
+
|
|
4
47
|
{% block header %}
|
|
5
48
|
|
|
6
49
|
<h1>
|
|
@@ -58,47 +101,3 @@
|
|
|
58
101
|
</div>
|
|
59
102
|
|
|
60
103
|
{% endblock %}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{% block javascript %}
|
|
64
|
-
|
|
65
|
-
<script>
|
|
66
|
-
const CREDIT_ACTIVITY_RECONCILIATION_ENDPOINT = "{{ url_for('credit.reconcile_activity', statement_id=statement.id) }}";
|
|
67
|
-
const UPDATE_STATEMENT_DUE_DATE_ENDPOINT = "{{ url_for('credit.update_statement_due_date', statement_id=statement.id) }}";
|
|
68
|
-
const MAKE_PAYMENT_ENDPOINT = "{{ url_for('credit.pay_credit_card', card_id=statement.card_id, statement_id=statement.id) }}";
|
|
69
|
-
const EXPAND_TRANSACTION_ENDPOINT = "{{ url_for('credit.expand_transaction') }}";
|
|
70
|
-
const LINKED_TRANSACTION_ENDPOINT = "{{ url_for('credit.show_linked_transaction') }}";
|
|
71
|
-
</script>
|
|
72
|
-
<script>
|
|
73
|
-
const CATEGORY_CHART_DATA = {
|
|
74
|
-
labels: [
|
|
75
|
-
{% for label in chart_data['labels'] %}
|
|
76
|
-
{% if label == '' %}
|
|
77
|
-
"Other",
|
|
78
|
-
{% else %}
|
|
79
|
-
"{{ label }}",
|
|
80
|
-
{% endif %}
|
|
81
|
-
{% endfor %}
|
|
82
|
-
],
|
|
83
|
-
series: [
|
|
84
|
-
{% for subtotal in chart_data['subtotals'] %}
|
|
85
|
-
{{ subtotal }},
|
|
86
|
-
{% endfor %}
|
|
87
|
-
],
|
|
88
|
-
};
|
|
89
|
-
</script>
|
|
90
|
-
<script type="module" src="{{ url_for('static', filename='js/show-credit-activity-loader.js') }}">
|
|
91
|
-
</script>
|
|
92
|
-
<script type="module" src="{{ url_for('static', filename='js/update-statement-parameters.js') }}">
|
|
93
|
-
</script>
|
|
94
|
-
<script type="module" src="{{ url_for('static', filename='js/make-payment.js') }}">
|
|
95
|
-
</script>
|
|
96
|
-
<script type="module" src="{{ url_for('static', filename='js/expand-transaction.js') }}">
|
|
97
|
-
</script>
|
|
98
|
-
<script type="module" src="{{ url_for('static', filename='js/show-linked-transaction.js') }}">
|
|
99
|
-
</script>
|
|
100
|
-
<script type="module" src="{{ url_for('static', filename='js/create-category-chart.js') }}">
|
|
101
|
-
</script>
|
|
102
|
-
|
|
103
|
-
{% endblock %}
|
|
104
|
-
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
{% extends 'layout.html' %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script>
|
|
7
|
+
const CREDIT_ACTIVITY_RECONCILIATION_ENDPOINT = "{{ url_for('credit.reconcile_activity', statement_id=statement.id) }}";
|
|
8
|
+
const EXPAND_TRANSACTION_ENDPOINT = "{{ url_for('credit.expand_transaction') }}";
|
|
9
|
+
const LINKED_TRANSACTION_ENDPOINT = "{{ url_for('credit.show_linked_transaction') }}";
|
|
10
|
+
</script>
|
|
11
|
+
<script type="module" src="{{ url_for('static', filename='js/show-credit-activity-loader.js') }}">
|
|
12
|
+
</script>
|
|
13
|
+
<script type="module" src="{{ url_for('static', filename='js/highlight-discrepant-transactions.js') }}">
|
|
14
|
+
</script>
|
|
15
|
+
<script type="module" src="{{ url_for('static', filename='js/expand-transaction.js') }}">
|
|
16
|
+
</script>
|
|
17
|
+
<script type="module" src="{{ url_for('static', filename='js/show-linked-transaction.js') }}">
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
{% endblock %}
|
|
21
|
+
|
|
22
|
+
|
|
4
23
|
{% block header %}
|
|
5
24
|
|
|
6
25
|
<h1>
|
|
@@ -65,22 +84,3 @@
|
|
|
65
84
|
</div>
|
|
66
85
|
|
|
67
86
|
{% endblock %}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
{% block javascript %}
|
|
71
|
-
|
|
72
|
-
<script>
|
|
73
|
-
const CREDIT_ACTIVITY_RECONCILIATION_ENDPOINT = "{{ url_for('credit.reconcile_activity', statement_id=statement.id) }}";
|
|
74
|
-
const EXPAND_TRANSACTION_ENDPOINT = "{{ url_for('credit.expand_transaction') }}";
|
|
75
|
-
const LINKED_TRANSACTION_ENDPOINT = "{{ url_for('credit.show_linked_transaction') }}";
|
|
76
|
-
</script>
|
|
77
|
-
<script type="module" src="{{ url_for('static', filename='js/show-credit-activity-loader.js') }}">
|
|
78
|
-
</script>
|
|
79
|
-
<script type="module" src="{{ url_for('static', filename='js/highlight-discrepant-transactions.js') }}">
|
|
80
|
-
</script>
|
|
81
|
-
<script type="module" src="{{ url_for('static', filename='js/expand-transaction.js') }}">
|
|
82
|
-
</script>
|
|
83
|
-
<script type="module" src="{{ url_for('static', filename='js/show-linked-transaction.js') }}">
|
|
84
|
-
</script>
|
|
85
|
-
|
|
86
|
-
{% endblock %}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
{% extends 'layout.html' %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
<script src="{{ url_for('static', filename='js/define-filter.js') }}" defer>
|
|
7
|
+
</script>
|
|
8
|
+
<script>
|
|
9
|
+
const FILTER_ENDPOINT = "{{ url_for('credit.update_statements_display') }}";
|
|
10
|
+
</script>
|
|
11
|
+
<script type="module" src="{{ url_for('static', filename='js/update-statements-display.js') }}">
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
{% endblock %}
|
|
15
|
+
|
|
16
|
+
|
|
4
17
|
{% block left_sidebar %}
|
|
5
18
|
|
|
6
19
|
<nav id="sidebar-nav-menu">
|
|
@@ -54,16 +67,3 @@
|
|
|
54
67
|
<a name="bottom"></a>
|
|
55
68
|
|
|
56
69
|
{% endblock %}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
{% block javascript %}
|
|
60
|
-
|
|
61
|
-
<script src="{{ url_for('static', filename='js/define-filter.js') }}">
|
|
62
|
-
</script>
|
|
63
|
-
<script>
|
|
64
|
-
const FILTER_ENDPOINT = "{{ url_for('credit.update_statements_display') }}";
|
|
65
|
-
</script>
|
|
66
|
-
<script type="module" src="{{ url_for('static', filename='js/update-statements-display.js') }}">
|
|
67
|
-
</script>
|
|
68
|
-
|
|
69
|
-
{% endblock %}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
{% extends "credit/transaction_form/transaction_form_page.html" %}
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
{% block javascript %}
|
|
5
|
+
|
|
6
|
+
{{ super() }}
|
|
7
|
+
<script type="module" src="{{ url_for('static', filename='js/use-suggested-amount.js') }}">
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
{% endblock %}
|
|
11
|
+
|
|
12
|
+
|
|
4
13
|
{% block title %}
|
|
5
14
|
Update Credit Transaction
|
|
6
15
|
{% endblock %}
|
|
@@ -13,12 +22,3 @@
|
|
|
13
22
|
{% endwith %}
|
|
14
23
|
|
|
15
24
|
{% endblock %}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
{% block javascript %}
|
|
19
|
-
|
|
20
|
-
{{ super() }}
|
|
21
|
-
<script type="module" src="{{ url_for('static', filename='js/use-suggested-amount.js') }}">
|
|
22
|
-
</script>
|
|
23
|
-
|
|
24
|
-
{% endblock %}
|
|
@@ -2,6 +2,34 @@
|
|
|
2
2
|
{% set full_view = True %}
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
{% block javascript %}
|
|
6
|
+
|
|
7
|
+
<script src="{{ url_for('static', filename='js/define-filter.js') }}" defer>
|
|
8
|
+
</script>
|
|
9
|
+
<script>
|
|
10
|
+
const FILTER_ENDPOINT = "{{ url_for('credit.update_transactions_display') }}";
|
|
11
|
+
const EXPAND_TRANSACTION_ENDPOINT = "{{ url_for('credit.expand_transaction') }}";
|
|
12
|
+
const LINKED_TRANSACTION_ENDPOINT = "{{ url_for('credit.show_linked_transaction') }}";
|
|
13
|
+
const LOAD_TRANSACTIONS_ENDPOINT = "{{ url_for('credit.load_more_transactions') }}";
|
|
14
|
+
const LOAD_TRANSACTIONS_SELECTORS = {
|
|
15
|
+
"selected_card_ids": {{ selected_card_ids }},
|
|
16
|
+
"sort_order": "{{ sort_order }}",
|
|
17
|
+
"block_count": 1,
|
|
18
|
+
"full_view": {{ full_view|tojson }}
|
|
19
|
+
}
|
|
20
|
+
</script>
|
|
21
|
+
<script type="module" src="{{ url_for('static', filename='js/update-transactions-display.js') }}">
|
|
22
|
+
</script>
|
|
23
|
+
<script type="module" src="{{ url_for('static', filename='js/load-more-transactions.js') }}">
|
|
24
|
+
</script>
|
|
25
|
+
<script type="module" src="{{ url_for('static', filename='js/expand-transaction.js') }}">
|
|
26
|
+
</script>
|
|
27
|
+
<script type="module" src="{{ url_for('static', filename='js/show-linked-transaction.js') }}">
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
{% endblock %}
|
|
31
|
+
|
|
32
|
+
|
|
5
33
|
{% block left_sidebar %}
|
|
6
34
|
|
|
7
35
|
<nav id="sidebar-nav-menu">
|
|
@@ -75,31 +103,3 @@
|
|
|
75
103
|
<a name="bottom"></a>
|
|
76
104
|
|
|
77
105
|
{% endblock %}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
{% block javascript %}
|
|
81
|
-
|
|
82
|
-
<script src="{{ url_for('static', filename='js/define-filter.js') }}">
|
|
83
|
-
</script>
|
|
84
|
-
<script>
|
|
85
|
-
const FILTER_ENDPOINT = "{{ url_for('credit.update_transactions_display') }}";
|
|
86
|
-
const EXPAND_TRANSACTION_ENDPOINT = "{{ url_for('credit.expand_transaction') }}";
|
|
87
|
-
const LINKED_TRANSACTION_ENDPOINT = "{{ url_for('credit.show_linked_transaction') }}";
|
|
88
|
-
const LOAD_TRANSACTIONS_ENDPOINT = "{{ url_for('credit.load_more_transactions') }}";
|
|
89
|
-
const LOAD_TRANSACTIONS_SELECTORS = {
|
|
90
|
-
"selected_card_ids": {{ selected_card_ids }},
|
|
91
|
-
"sort_order": "{{ sort_order }}",
|
|
92
|
-
"block_count": 1,
|
|
93
|
-
"full_view": {{ full_view|tojson }}
|
|
94
|
-
}
|
|
95
|
-
</script>
|
|
96
|
-
<script type="module" src="{{ url_for('static', filename='js/update-transactions-display.js') }}">
|
|
97
|
-
</script>
|
|
98
|
-
<script type="module" src="{{ url_for('static', filename='js/load-more-transactions.js') }}">
|
|
99
|
-
</script>
|
|
100
|
-
<script type="module" src="{{ url_for('static', filename='js/expand-transaction.js') }}">
|
|
101
|
-
</script>
|
|
102
|
-
<script type="module" src="{{ url_for('static', filename='js/show-linked-transaction.js') }}">
|
|
103
|
-
</script>
|
|
104
|
-
|
|
105
|
-
{% endblock %}
|
monopyly/templates/layout.html
CHANGED
|
@@ -43,7 +43,14 @@
|
|
|
43
43
|
<script>
|
|
44
44
|
window.Chartist || document.write('<script src="{{ url_for('static', filename='chartist-1.5.0.min.js') }}"><\/script>')
|
|
45
45
|
</script>
|
|
46
|
+
<!-- Custom application JavaScript -->
|
|
47
|
+
<script type="module" src="{{ url_for('static', filename='js/toggle-navigation.js') }}">
|
|
48
|
+
</script>
|
|
49
|
+
{% block javascript %}
|
|
50
|
+
{% endblock %}
|
|
51
|
+
|
|
46
52
|
</head>
|
|
53
|
+
|
|
47
54
|
<body>
|
|
48
55
|
|
|
49
56
|
<header id="masthead">
|
|
@@ -117,10 +124,5 @@
|
|
|
117
124
|
</p>
|
|
118
125
|
</footer>
|
|
119
126
|
|
|
120
|
-
<script type="module" src="{{ url_for('static', filename='js/toggle-navigation.js') }}">
|
|
121
|
-
</script>
|
|
122
|
-
{% block javascript %}
|
|
123
|
-
{% endblock %}
|
|
124
|
-
|
|
125
127
|
</body>
|
|
126
128
|
</html>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: monopyly
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.1
|
|
4
4
|
Summary: A homemade personal finance manager.
|
|
5
5
|
Project-URL: Download, https://pypi.org/project/monopyly
|
|
6
6
|
Project-URL: Homepage, http://monopyly.com
|
|
@@ -23,15 +23,15 @@ Classifier: Topic :: Office/Business :: Financial
|
|
|
23
23
|
Classifier: Topic :: Office/Business :: Financial :: Accounting
|
|
24
24
|
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
|
|
25
25
|
Requires-Python: >=3.10
|
|
26
|
-
Requires-Dist: dry-foundation==1.
|
|
26
|
+
Requires-Dist: dry-foundation==1.6.0
|
|
27
27
|
Requires-Dist: flask-wtf==1.2.2
|
|
28
28
|
Requires-Dist: flask==3.1.2
|
|
29
29
|
Requires-Dist: gunicorn==23.0.0
|
|
30
|
-
Requires-Dist: markdown==3.
|
|
30
|
+
Requires-Dist: markdown==3.10
|
|
31
31
|
Requires-Dist: nltk==3.9.2
|
|
32
32
|
Requires-Dist: python-dateutil==2.9.0
|
|
33
|
-
Requires-Dist: rich==14.
|
|
34
|
-
Requires-Dist: sqlalchemy==2.0.
|
|
33
|
+
Requires-Dist: rich==14.2.0
|
|
34
|
+
Requires-Dist: sqlalchemy==2.0.45
|
|
35
35
|
Description-Content-Type: text/markdown
|
|
36
36
|
|
|
37
37
|
<div id="header">
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
monopyly/CHANGELOG.md,sha256=
|
|
1
|
+
monopyly/CHANGELOG.md,sha256=Vnw4KMwtRmyZB90oD4eWHnhZgo3vG69hGpI280a5wjo,9702
|
|
2
2
|
monopyly/README.md,sha256=TBuObVJnYFYIiSvYUrcAsCtXCUz7D9ZpIHmhDzdPD9k,9045
|
|
3
3
|
monopyly/__init__.py,sha256=fC8Z7V4uGJMPfA4MeC94EPA8Tq5qgUE33vLngYg2ut8,2046
|
|
4
|
-
monopyly/_version.py,sha256=
|
|
4
|
+
monopyly/_version.py,sha256=edFVVa8HpVPfLqL2y6CKtViSqJREfmXxInA-HCy-134,411
|
|
5
5
|
monopyly/auth/actions.py,sha256=uwXg0LVz3QVJxKkiI-YCJMT8OSjUK7R-aEy-XTM0Ghs,702
|
|
6
6
|
monopyly/auth/blueprint.py,sha256=xA2vC10uu0ekFYPj0q0z2er1-v0G7juVI35RKNN0GQw,266
|
|
7
7
|
monopyly/auth/routes.py,sha256=V9c0omnvLKOp-B5EL14waUF-4QrkoriFVKMjPaRph2w,3345
|
|
@@ -11,19 +11,19 @@ monopyly/banking/actions.py,sha256=jPwLHJp2g0wpwEjaMbjnUD7iWd2ZlVYycGYTUSNs6Yw,3
|
|
|
11
11
|
monopyly/banking/banks.py,sha256=a-GaBtLu2v-8Bl5Q3lOVKUhK9dgpHdsr1sMs0uYcLOg,1751
|
|
12
12
|
monopyly/banking/blueprint.py,sha256=kOV9x7UjzZasGMDBlwoBV4mDHswDxaD5cct91hD8nXU,288
|
|
13
13
|
monopyly/banking/filters.py,sha256=EJ9qDAqDNWINc5FZ-7nddN18QFjDcKEa2heoev7_OYY,722
|
|
14
|
-
monopyly/banking/forms.py,sha256=
|
|
14
|
+
monopyly/banking/forms.py,sha256=dNl6H_OYjr3k4J25c-H9Hsg1zlXPyhn4xj_LZS7h1c4,10607
|
|
15
15
|
monopyly/banking/routes.py,sha256=-sqUDsuXVQiDqG5ChVeu_UvTHoga5pGHHHbcKxdD1Bs,10394
|
|
16
16
|
monopyly/banking/transactions.py,sha256=WtviQ8ukZEIool9G94Q0-AOm1Fgqg2kwJTQ0SqOxGPU,8884
|
|
17
17
|
monopyly/common/transactions.py,sha256=Oxt1ONyhWnw7g4GxuTDndYj-uO5ZdBkPxsgBxDqlAdY,20529
|
|
18
18
|
monopyly/common/utils.py,sha256=BjXhfNXGWkAPt-ebldvmZ2z00P8MhKJzjxrJJ6mzRQY,5867
|
|
19
19
|
monopyly/common/forms/__init__.py,sha256=hq_WYBvVxMcPqG80-mxooMVYkUCvF1wT_GNuDWC3gBc,241
|
|
20
|
-
monopyly/common/forms/_forms.py,sha256=
|
|
21
|
-
monopyly/common/forms/fields.py,sha256=
|
|
22
|
-
monopyly/common/forms/utils.py,sha256=
|
|
20
|
+
monopyly/common/forms/_forms.py,sha256=VkemlCQqmo_7WCZeTf1mVzrgYUdmN01F_hhyEDhqLZQ,9781
|
|
21
|
+
monopyly/common/forms/fields.py,sha256=RhRFEoUaT1GKqoJQk7TyBNnrK3Ue7C0N9j1bC4BE4Ok,3721
|
|
22
|
+
monopyly/common/forms/utils.py,sha256=Rs25-Q_HmWLB4UmyTPVbt3Q48f76EmTMWpxcC1r_nM0,5635
|
|
23
23
|
monopyly/common/forms/validators.py,sha256=C5_NN8ktvBw6MrSXwv_x9_SQohCNmnp4brNQFELHBlI,1205
|
|
24
24
|
monopyly/core/actions.py,sha256=qzuL7e4QTMcYG0jaYNFuyGB6GwptrIbAzDqhz5ve0sY,4079
|
|
25
25
|
monopyly/core/blueprint.py,sha256=oDqVD5XA6-l--MFGPPVNgdhhT3rXNibnObpvWfIAgTI,325
|
|
26
|
-
monopyly/core/context_processors.py,sha256=
|
|
26
|
+
monopyly/core/context_processors.py,sha256=UyXNqZcz0FzMlS69JH5YTx15oaT3zmuEYni2nJZzmGc,701
|
|
27
27
|
monopyly/core/errors.py,sha256=xF4gA3Hv99op3EMV_f2CskHWVLrV-9ckaHKJMWR2h7o,200
|
|
28
28
|
monopyly/core/filters.py,sha256=LMrqGgJE1sJUH0ojSVcn5ioGrY1OmE_OJtn-vEbNI10,1253
|
|
29
29
|
monopyly/core/internal_transactions.py,sha256=PImeViMU9rdDDPLXld1xC6bdAoulzRDr0zci4pUQY8I,459
|
|
@@ -31,8 +31,8 @@ monopyly/core/routes.py,sha256=IxO1opdVQ1ad3jO-UQvx0B7Gb2IzOrX9WItwdSu5-ic,2651
|
|
|
31
31
|
monopyly/credit/accounts.py,sha256=6BvQiPvFMWqdDHp-heYXmcjgzzaGMvrHmwCoNQ3CcvM,1904
|
|
32
32
|
monopyly/credit/actions.py,sha256=Ba55-2i8Fh84DABshDUNTZskwQhRubsYhLlYWgN-CJY,7223
|
|
33
33
|
monopyly/credit/blueprint.py,sha256=mn7kI4ZAYZpOjkkCoMfW7BcZnDvUjbCvsmhDaJRKrTM,273
|
|
34
|
-
monopyly/credit/cards.py,sha256=
|
|
35
|
-
monopyly/credit/forms.py,sha256=
|
|
34
|
+
monopyly/credit/cards.py,sha256=M69xpAGPW5jLNB2mT8uVIhWZIHtpD93-wLuvRWWGNhM,5704
|
|
35
|
+
monopyly/credit/forms.py,sha256=T_CJxhM51IaLuwAsWHYMm0ScnfnZUfNBfbuXjYdSF2c,13674
|
|
36
36
|
monopyly/credit/routes.py,sha256=h0djqZ4eVxLTMkWWuU7RM0NfZk_sa0o5XcpUe8yJZxE,21598
|
|
37
37
|
monopyly/credit/statements.py,sha256=_kJDqF8WT_bFaVcuklSXiqaLUtP7XSCtVmCfCEILo34,7225
|
|
38
38
|
monopyly/credit/transactions/__init__.py,sha256=LnixNzeUV3jzZqxB2xdxBBRu94F1oZh9SynkrgvGGPI,245
|
|
@@ -49,7 +49,7 @@ monopyly/database/views.sql,sha256=UTO2QRkVTfQ12bMVkR-O6Qv80DvYo8hngPHn2A1_1F8,3
|
|
|
49
49
|
monopyly/scripts/screenshot_application.py,sha256=CTp9LwCji17H5y4hxzyqzhj6-SVbrb3dLee_Eii0bTg,3560
|
|
50
50
|
monopyly/static/chartist-1.5.0.min.js,sha256=Rj91J3cXWPKNNW_89vKXqUIDA6LNgJDx8qEBTttcSvs,38065
|
|
51
51
|
monopyly/static/jquery-3.7.1.min.js,sha256=_JqT3SQfawRcv_BIHPThkBvs0OEvtFFmqPF_lYI_Cxo,87533
|
|
52
|
-
monopyly/static/css/style.css,sha256=
|
|
52
|
+
monopyly/static/css/style.css,sha256=K2WQ5VpbFVyIBpdWqb2nAhw4ir0dqAy8rcnYzCzqP3s,74034
|
|
53
53
|
monopyly/static/favicon/browserconfig.xml,sha256=Zt_AVOxiritWWXoUwPsHpx4vu4kM_butdFVzoYCYbM8,315
|
|
54
54
|
monopyly/static/favicon/favicon-114.png,sha256=kjElVFiix-kFCMdADkLpJsi8kL3GDsFm85oJhyCH-C0,20601
|
|
55
55
|
monopyly/static/favicon/favicon-120.png,sha256=g4uzHMdW0MlJhcgWfrOsj2MB2D-HdLa4t60_hvyICkM,22077
|
|
@@ -148,17 +148,17 @@ monopyly/static/js/modules/manage-overlays.js,sha256=nl-UlmZh22RnX648Nb_ybpt0Wfi
|
|
|
148
148
|
monopyly/static/js/modules/manage-subforms.js,sha256=-yKA7l8ZI0294auTI307LrKkw_Bl6I8suwK4VLuLhMc,2197
|
|
149
149
|
monopyly/static/js/modules/update-database-widget.js,sha256=S67hmqaGwzbPy94IjYrag0ZPOur4r5y_tb3_5t7xuYI,1581
|
|
150
150
|
monopyly/static/js/modules/update-display-ajax.js,sha256=mku6cCHq8wf2bPFhZMTAOx4sgu8kI4iLS2S0CzwdpaY,1336
|
|
151
|
-
monopyly/templates/layout.html,sha256=
|
|
151
|
+
monopyly/templates/layout.html,sha256=M-lvYyAebfYEhxJpua7nelyWpA9REc-E3KSS-migfq4,6008
|
|
152
152
|
monopyly/templates/auth/change_password.html,sha256=yf8Zg2QYmBd9U-MHQXoI8d6pwrnWokDRjbVMxMIJTdU,652
|
|
153
153
|
monopyly/templates/auth/login.html,sha256=Cr16HB8FkYb7jT4ueCsEoOtSM84Lh4e9Jombsb6UPr8,457
|
|
154
154
|
monopyly/templates/auth/register.html,sha256=rZh1IUhCN_67vcSHPHm4LS1rJTo8kcaNc2EEnCTrmoQ,774
|
|
155
|
-
monopyly/templates/banking/account_page.html,sha256=
|
|
155
|
+
monopyly/templates/banking/account_page.html,sha256=xhzlwT-v4k2_ZuQKe8hxFvdWRgK7BACH9e__EjicbKM,2300
|
|
156
156
|
monopyly/templates/banking/account_summaries.html,sha256=_NPs5Udx7mZEdKJZdKyOsSOIlbW5spXZEfwMvhFEeQE,1145
|
|
157
157
|
monopyly/templates/banking/account_summaries_page.html,sha256=puBlB52WMZR_Dhz6_rSLomNa9QSChsItsshrKT5Aixs,1113
|
|
158
158
|
monopyly/templates/banking/account_summary.html,sha256=401NaZQJJrzYkkg3uoPDN-h0k4pnmBDkQBKthhxwAO0,944
|
|
159
|
-
monopyly/templates/banking/accounts_page.html,sha256=
|
|
159
|
+
monopyly/templates/banking/accounts_page.html,sha256=SXiKiCJ5apoDFs3yZorGPXXbYVqQhVARsV661YXPLgk,2164
|
|
160
160
|
monopyly/templates/banking/account_form/account_form.html,sha256=v8AH6DTBW-4XVffcmr-sRRBl1k0e-30Q7Vy5sXHkrPM,1226
|
|
161
|
-
monopyly/templates/banking/account_form/account_form_page_new.html,sha256=
|
|
161
|
+
monopyly/templates/banking/account_form/account_form_page_new.html,sha256=TEYVzDP_wx-XXVgRDh0h6LDEsVVLlZ6_QAQ4XVNXZ3c,535
|
|
162
162
|
monopyly/templates/banking/transaction_form/bank_info_form.html,sha256=RkEjEgbD5zw4QlvpJ6koA8TxE0ZRTGmfmCy8SC2RVd0,670
|
|
163
163
|
monopyly/templates/banking/transaction_form/transaction_form.html,sha256=M8Jqdl50GtVLuKxV1kLNuS3eMiaDo7rXQvwq3DpPv9Q,1399
|
|
164
164
|
monopyly/templates/banking/transaction_form/transaction_form_page.html,sha256=q7pPXmqhpBXZ8jJKWENisqYXPpAZxVL1bYT0lIUUZA4,526
|
|
@@ -172,7 +172,7 @@ monopyly/templates/banking/transactions_table/transaction_field_titles.html,sha2
|
|
|
172
172
|
monopyly/templates/banking/transactions_table/transactions.html,sha256=UuBCMXwDqKlHdxUy07O_hVQjJ8V5nhM4O5trfF4zJYg,394
|
|
173
173
|
monopyly/templates/common/form_page.html,sha256=Sx2Y6dhNsjkDQBaepTBPBvVeIe7N730llhgbcAQOrCk,107
|
|
174
174
|
monopyly/templates/common/tag_tree.html,sha256=sCmyVNGJBaBtfuvl9PepYhfV9HPYn5aL79reGhpl6H4,644
|
|
175
|
-
monopyly/templates/common/tags_page.html,sha256=
|
|
175
|
+
monopyly/templates/common/tags_page.html,sha256=hBG1777lXotxAljoWGDZ15gVa1o_I9vyZN9Po5QePx8,803
|
|
176
176
|
monopyly/templates/common/transaction_form/subform.html,sha256=BjwJA0-ZOeBhrLdZAkddl5F5ElMN2MSykD2hZu8PNEA,370
|
|
177
177
|
monopyly/templates/common/transaction_form/subtransaction_subform.html,sha256=WBCGnkKNGC0x7KSJeKA1g8Xbm5sO9N3jY5Nt2WiWpUk,827
|
|
178
178
|
monopyly/templates/common/transaction_form/transaction_form_page.html,sha256=gZ7uWIgaVo67m4F9cgXnrjwQ3_nEk_F2E1jT_C1yy8s,294
|
|
@@ -185,8 +185,8 @@ monopyly/templates/common/transactions_table/transaction_condensed.html,sha256=V
|
|
|
185
185
|
monopyly/templates/common/transactions_table/transaction_expanded.html,sha256=mLUg9lSMEtoRwqHoheUObj-wrj9Xo2MvsBkkuZLVcHo,1261
|
|
186
186
|
monopyly/templates/common/transactions_table/transactions.html,sha256=yZ6AStD_aFvzfObYXsgqH6IYFnZA5SLsCSOfjGIV0Gk,433
|
|
187
187
|
monopyly/templates/core/credits.html,sha256=5XO5foZ_J1RA42BEOzN20bZRcWm9xhZe125BCKudoUc,1166
|
|
188
|
-
monopyly/templates/core/index.html,sha256=
|
|
189
|
-
monopyly/templates/core/profile.html,sha256=
|
|
188
|
+
monopyly/templates/core/index.html,sha256=7txnl128oOn5c6ev1kvsM4sSOd9I8xlkS2s6m6vncM0,5065
|
|
189
|
+
monopyly/templates/core/profile.html,sha256=C5bAOa73_RiruGqhzZXj6s0DiE9SHjqHvCPuHX53yP4,2340
|
|
190
190
|
monopyly/templates/core/story.html,sha256=iEKfX1aHxXrstAeeQ6J8Gnvg1zGt95c-iLELUhG-AtE,3331
|
|
191
191
|
monopyly/templates/core/errors/400.html,sha256=whUYO3b6UIQWfN8y563umccU8GLxqXu0A5nb5uNM-XY,152
|
|
192
192
|
monopyly/templates/core/errors/401.html,sha256=3HH9TSDZfhyxZVcVnT0PNe524ADvEHIj6BsllQYFFOQ,154
|
|
@@ -198,38 +198,38 @@ monopyly/templates/core/errors/418.html,sha256=zfs-NbLsfQpx_ZhS6O81LjXZgO0UKnxku
|
|
|
198
198
|
monopyly/templates/core/errors/425.html,sha256=9U-tIDbS6BKCTqMzokCrXcmPlKn5OcFL8z5ffz19LWg,141
|
|
199
199
|
monopyly/templates/core/errors/500.html,sha256=kSrvsTb1ueDst7m10hYuWmbPJ_ep6aaL3ujhBPmVl-g,154
|
|
200
200
|
monopyly/templates/core/errors/error.html,sha256=QBATauzceuPQAW3wDjjhw_8PkrRLbM5DeG4hEf09vQk,534
|
|
201
|
-
monopyly/templates/credit/account_page.html,sha256=
|
|
201
|
+
monopyly/templates/credit/account_page.html,sha256=tI_8D39cbHo4pb9G3aU7qq34SaXA-FwOq3pOf3doAmw,3624
|
|
202
202
|
monopyly/templates/credit/card_submission_page.html,sha256=7OU6PB01jACSKSzXGySWL8ccwfCT00SeX2KkdwW3K4Q,345
|
|
203
203
|
monopyly/templates/credit/cards.html,sha256=lvuKip2nHDmPi2Wj8zmO9ZXKXY22Dlv9fDrtHuYCSqA,598
|
|
204
204
|
monopyly/templates/credit/cards_page.html,sha256=HTrTQwF-Y5Z9oWqt72i6HbAaRhQibTEt3TJKavm6_2M,250
|
|
205
|
-
monopyly/templates/credit/statement_page.html,sha256=
|
|
205
|
+
monopyly/templates/credit/statement_page.html,sha256=jOE6YLxjbcdNUlIrpcmPI-MhncAW9yqcJ7bEuJq4Zvo,3050
|
|
206
206
|
monopyly/templates/credit/statement_summary.html,sha256=8D8l2eveeD11wOflymOVcNrm5TyyazguVzUvAa7qVto,2874
|
|
207
207
|
monopyly/templates/credit/statements.html,sha256=ndCGe4xEj9aFfKPSrr1fnTyKKU-KxGRLq0iJTeJnDvc,1783
|
|
208
|
-
monopyly/templates/credit/statements_page.html,sha256=
|
|
208
|
+
monopyly/templates/credit/statements_page.html,sha256=BQ3CQHGw_scxkNybZXpID_l3xnQhPKVo9R782Ab-VFs,1464
|
|
209
209
|
monopyly/templates/credit/transaction_submission_page.html,sha256=1AcegARS6qwisDLpUtjI6U9ZSX6t9fBCmURxPWYsLD4,3156
|
|
210
|
-
monopyly/templates/credit/transactions_page.html,sha256=
|
|
210
|
+
monopyly/templates/credit/transactions_page.html,sha256=aOp-uLejI0MUWqE3wObPQOPI1eZdrAcESTrUXib56rA,3039
|
|
211
211
|
monopyly/templates/credit/card_form/card_form.html,sha256=xF7x1RBQyAfKYuW_cRxwhKhug4tum-3s0YHyP0ovhFs,1666
|
|
212
|
-
monopyly/templates/credit/card_form/card_form_page_new.html,sha256=
|
|
212
|
+
monopyly/templates/credit/card_form/card_form_page_new.html,sha256=nvZqGfwBpzJtviyo5KfSr7TJ2ksLM-c9e7QHM8HjXN0,528
|
|
213
213
|
monopyly/templates/credit/card_form/transfer_statement_inquiry.html,sha256=LuxietZsTLF3AMqeeHqcPoAYvJX_TsJ8MlDldpZwpoQ,1228
|
|
214
214
|
monopyly/templates/credit/card_graphic/card_back.html,sha256=gfr3975mziF0PCd_f2Jy83Y4ktFeFnZ1icVVpiVwoQA,889
|
|
215
215
|
monopyly/templates/credit/card_graphic/card_front.html,sha256=I53u0WvrQj-m2D-fkcga0GRketfpMuMXNM6Rs0e5CNA,679
|
|
216
216
|
monopyly/templates/credit/statement_reconciliation/discrepant_records.html,sha256=IMnLShpED8CcXYA3jrQoz4Fc2v0s6i1Fl1OAUY9pjGw,837
|
|
217
217
|
monopyly/templates/credit/statement_reconciliation/statement_reconciliation_inquiry.html,sha256=4c8kZXF6-A2Q5wVgr0rjLjfoEXTIl646QpoVJ99DfLw,785
|
|
218
|
-
monopyly/templates/credit/statement_reconciliation/statement_reconciliation_page.html,sha256=
|
|
218
|
+
monopyly/templates/credit/statement_reconciliation/statement_reconciliation_page.html,sha256=hOoN3am2wTJ_uuOSVtKt0nFTopeNWCZiqYvi1lI-ezI,2723
|
|
219
219
|
monopyly/templates/credit/statement_reconciliation/summary.html,sha256=yDNREcWbCbvmVRSbMVst2YnyLoLrd-5sgG2bWzsNAF4,1804
|
|
220
220
|
monopyly/templates/credit/statement_reconciliation/unrecorded_activities.html,sha256=wCgqgaih413A9RkyARGIQ9OMqaA2POkL57P-wkfG47k,836
|
|
221
221
|
monopyly/templates/credit/transaction_form/transaction_form.html,sha256=_2tYKMqmLE1Yqu9Pk94nOYuCxt3ZXGW8wDboMNn2iGQ,1662
|
|
222
222
|
monopyly/templates/credit/transaction_form/transaction_form_page.html,sha256=x_gwHkqWVuiVIm2Ol_Cv7ce2EODJS1Ktn5S2kI4gG1o,795
|
|
223
223
|
monopyly/templates/credit/transaction_form/transaction_form_page_new.html,sha256=zIKYO4NyuzxFQltbyJg2FnfOinMHessSdaMpuBTbNxI,312
|
|
224
|
-
monopyly/templates/credit/transaction_form/transaction_form_page_update.html,sha256=
|
|
224
|
+
monopyly/templates/credit/transaction_form/transaction_form_page_update.html,sha256=PPzQNbCjuGdC_mYhi_9eKiPunUV7bkigfPgQbzxCjA8,513
|
|
225
225
|
monopyly/templates/credit/transactions_table/condensed_row_content.html,sha256=BuYxFOdVn5Xil73xYfpLobl5-LDdIckCkCobrkMzNUs,648
|
|
226
226
|
monopyly/templates/credit/transactions_table/expanded_row_content.html,sha256=UiGNqoOpz5lnkrsb1PIuoyZtjqpVTOoUvqyRrBjk2r8,2086
|
|
227
227
|
monopyly/templates/credit/transactions_table/table.html,sha256=S2xjvUyWnsKDIux2kt_sV2DRzKov-TfPuACBYrh9HDw,224
|
|
228
228
|
monopyly/templates/credit/transactions_table/transaction_field_titles.html,sha256=km-3YEDJaygwcKV-rwYnrE7xF8u4Z7jCBsk0Ia-LO-M,758
|
|
229
229
|
monopyly/templates/credit/transactions_table/transactions.html,sha256=83zHx5Oa1KH1bMrKk2mlBmMiYKwa1t5lBq_JSAgslgc,390
|
|
230
|
-
monopyly-1.6.
|
|
231
|
-
monopyly-1.6.
|
|
232
|
-
monopyly-1.6.
|
|
233
|
-
monopyly-1.6.
|
|
234
|
-
monopyly-1.6.
|
|
235
|
-
monopyly-1.6.
|
|
230
|
+
monopyly-1.6.1.dist-info/METADATA,sha256=9Pb68wIyAxWEnIN37V6c4dH08nmTyv03QtL-fNGM4Y8,10969
|
|
231
|
+
monopyly-1.6.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
232
|
+
monopyly-1.6.1.dist-info/entry_points.txt,sha256=VMqyRA0VRpTc0-5Z-VB-wX1AuyezoKKPhcf4bIUKz9g,110
|
|
233
|
+
monopyly-1.6.1.dist-info/licenses/COPYING,sha256=5X8cMguM-HmKfS_4Om-eBqM6A1hfbgZf6pfx2G24QFI,35150
|
|
234
|
+
monopyly-1.6.1.dist-info/licenses/LICENSE,sha256=94rIicMccmTPhqXiRLV9JsU8P2ocMuEUUtUpp6LPKiE,253
|
|
235
|
+
monopyly-1.6.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|