Compare commits

...

4 Commits

12 changed files with 34 additions and 35 deletions

View File

@ -1,8 +0,0 @@
from django.contrib import admin
from .models import Category, Invoice, Snapshot, Transaction
admin.site.register(Transaction)
admin.site.register(Invoice)
admin.site.register(Category)
admin.site.register(Snapshot)

View File

@ -2,5 +2,4 @@ from django.apps import AppConfig
class MainConfig(AppConfig): class MainConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "main" name = "main"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.0.1\n" "Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-21 15:41+0200\n" "POT-Creation-Date: 2023-04-22 09:41+0200\n"
"PO-Revision-Date: 2022-12-21 17:30+0100\n" "PO-Revision-Date: 2022-12-21 17:30+0100\n"
"Last-Translator: edpibu <git@edgarpierre.fr>\n" "Last-Translator: edpibu <git@edgarpierre.fr>\n"
"Language-Team: edpibu <git@edgarpierre.fr>\n" "Language-Team: edpibu <git@edgarpierre.fr>\n"
@ -67,7 +67,7 @@ msgid "Budget"
msgstr "Budget" msgstr "Budget"
#: .\models.py:114 .\templates\main\form\snapshot.html:23 #: .\models.py:114 .\templates\main\form\snapshot.html:23
#: .\templates\main\index.html:32 #: .\templates\main\index.html:30
msgid "Categories" msgid "Categories"
msgstr "Catégories" msgstr "Catégories"
@ -150,6 +150,7 @@ msgstr "Paiement"
#: .\templates\main\form\snapshot.html:27 .\templates\main\index.html:26 #: .\templates\main\form\snapshot.html:27 .\templates\main\index.html:26
#: .\templates\main\list\transaction.html:6 #: .\templates\main\list\transaction.html:6
#: .\templates\main\list\transaction.html:23 #: .\templates\main\list\transaction.html:23
#: .\templates\main\month\transaction.html:15
#: .\templates\main\table\snapshot.html:28 #: .\templates\main\table\snapshot.html:28
msgid "Transactions" msgid "Transactions"
msgstr "Transactions" msgstr "Transactions"
@ -170,7 +171,7 @@ msgstr "Aller au contenu principal"
msgid "Home" msgid "Home"
msgstr "Accueil" msgstr "Accueil"
#: .\templates\main\base.html:38 .\templates\main\index.html:42 #: .\templates\main\base.html:38 .\templates\main\index.html:40
msgid "Snapshots" msgid "Snapshots"
msgstr "Relevés" msgstr "Relevés"
@ -199,6 +200,10 @@ msgstr "Se déconnecter"
msgid "Log in" msgid "Log in"
msgstr "Se connecter" msgstr "Se connecter"
#: .\templates\main\base.html:83
msgid "Logged in as <strong>%(user)s</strong>"
msgstr "Connecté en tant que <strong>%(user)s</strong>"
#: .\templates\main\confirm_delete.html:19 #: .\templates\main\confirm_delete.html:19
#, python-format #, python-format
msgid "Are you sure you want do delete <strong>%(object)s</strong> ?" msgid "Are you sure you want do delete <strong>%(object)s</strong> ?"
@ -217,7 +222,7 @@ msgid "New account"
msgstr "Nouveau compte" msgstr "Nouveau compte"
#: .\templates\main\form\account.html:19 .\templates\main\form\category.html:15 #: .\templates\main\form\account.html:19 .\templates\main\form\category.html:15
#: .\templates\main\index.html:28 #: .\templates\main\index.html:44
msgid "History" msgid "History"
msgstr "Historique" msgstr "Historique"

View File

@ -23,16 +23,7 @@ class UserModel(models.Model):
abstract = True abstract = True
class NummiModel(UserModel): class Account(UserModel):
@property
def adding(self):
return self._state.adding
class Meta:
abstract = True
class Account(NummiModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=64, default=_("Account"), verbose_name=_("Name")) name = models.CharField(max_length=64, default=_("Account"), verbose_name=_("Name"))
icon = models.SlugField( icon = models.SlugField(
@ -72,7 +63,7 @@ class Account(NummiModel):
verbose_name_plural = _("Accounts") verbose_name_plural = _("Accounts")
class AccountModel(NummiModel): class AccountModel(UserModel):
account = models.ForeignKey( account = models.ForeignKey(
Account, Account,
on_delete=models.CASCADE, on_delete=models.CASCADE,
@ -83,7 +74,7 @@ class AccountModel(NummiModel):
abstract = True abstract = True
class Category(NummiModel): class Category(UserModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField( name = models.CharField(
max_length=64, default=_("Category"), verbose_name=_("Name") max_length=64, default=_("Category"), verbose_name=_("Name")
@ -194,7 +185,7 @@ class Snapshot(AccountModel):
verbose_name_plural = _("Statements") verbose_name_plural = _("Statements")
class Transaction(NummiModel): class Transaction(UserModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField( name = models.CharField(
max_length=256, default=_("Transaction"), verbose_name=_("Name") max_length=256, default=_("Transaction"), verbose_name=_("Name")
@ -264,7 +255,7 @@ class Transaction(NummiModel):
verbose_name_plural = _("Transactions") verbose_name_plural = _("Transactions")
class Invoice(NummiModel): class Invoice(UserModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField( name = models.CharField(
max_length=256, default=_("Invoice"), verbose_name=_("Name") max_length=256, default=_("Invoice"), verbose_name=_("Name")

View File

@ -79,6 +79,11 @@
</li> </li>
{% endif %} {% endif %}
</ul> </ul>
{% if user %}
<p>
{% blocktranslate %}Logged in as <strong>{{ user }}</strong>{% endblocktranslate %}
</p>
{% endif %}
</nav> </nav>
{% endspaceless %} {% endspaceless %}
{% endblock %} {% endblock %}

View File

@ -9,7 +9,7 @@
{% endblock %} {% endblock %}
{% block h2 %}{{ form.instance.icon|remix }}{{ form.instance }}{% endblock %} {% block h2 %}{{ form.instance.icon|remix }}{{ form.instance }}{% endblock %}
{% block tables %} {% block tables %}
{% if not form.instance.adding %} {% if not form.instance|adding %}
<h3>{% translate "Statements" %}</h3> <h3>{% translate "Statements" %}</h3>
{% include "main/table/snapshot.html" %} {% include "main/table/snapshot.html" %}
{% endif %} {% endif %}

View File

@ -3,7 +3,7 @@
{% load main_extras %} {% load main_extras %}
{% load i18n %} {% load i18n %}
{% block title %} {% block title %}
{% if form.instance.adding %} {% if form.instance|adding %}
{% block title_new %}{% endblock %} {% block title_new %}{% endblock %}
{% else %} {% else %}
{{ form.instance }} {{ form.instance }}
@ -24,7 +24,7 @@
{% endblock %} {% endblock %}
{% block body %} {% block body %}
{% with instance=form.instance %} {% with instance=form.instance %}
{% if instance.adding %} {% if instance|adding %}
<h2 class="new"> <h2 class="new">
{% block h2_new %}{% endblock %} {% block h2_new %}{% endblock %}
</h2> </h2>
@ -36,7 +36,7 @@
{% block pre %}{% endblock %} {% block pre %}{% endblock %}
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
{% if instance.adding %}<input hidden name="next" value="{{ request.path }}" />{% endif %} {% if instance|adding %}<input hidden name="next" value="{{ request.path }}" />{% endif %}
{{ form }} {{ form }}
</form> </form>
{% block tables %}{% endblock %} {% block tables %}{% endblock %}

View File

@ -1,4 +1,5 @@
{% load i18n %} {% load i18n %}
{% load main_extras %}
{% block fields %} {% block fields %}
{% if form.non_field_errors %} {% if form.non_field_errors %}
<ul class='errorlist'> <ul class='errorlist'>
@ -25,11 +26,11 @@
<tr class="buttons"> <tr class="buttons">
<td colspan="2"> <td colspan="2">
{% block buttons %} {% block buttons %}
{% if not form.instance.adding %} {% if not form.instance|adding %}
<a class="del" href="{{ form.instance.get_delete_url }}">{% translate "Delete" %}</a> <a class="del" href="{{ form.instance.get_delete_url }}">{% translate "Delete" %}</a>
{% endif %} {% endif %}
<input type="reset" value="{% translate "Reset" %}" /> <input type="reset" value="{% translate "Reset" %}" />
{% if form.instance.adding %} {% if form.instance|adding %}
<input type="submit" value="{% translate "Create" %}" /> <input type="submit" value="{% translate "Create" %}" />
{% else %} {% else %}
<input type="submit" value="{% translate "Save" %}" /> <input type="submit" value="{% translate "Save" %}" />

View File

@ -23,7 +23,7 @@
<h3>{% translate "Categories" %}</h3> <h3>{% translate "Categories" %}</h3>
{% include "main/plot/category.html" %} {% include "main/plot/category.html" %}
{% endif %} {% endif %}
{% if not form.instance.adding %} {% if not form.instance|adding %}
<h3>{% translate "Transactions" %} ({{ form.instance.sum|pmvalue }} / {{ form.instance.diff|pmvalue }})</h3> <h3>{% translate "Transactions" %} ({{ form.instance.sum|pmvalue }} / {{ form.instance.diff|pmvalue }})</h3>
{% include "main/table/transaction.html" %} {% include "main/table/transaction.html" %}
{% endif %} {% endif %}

View File

@ -1,5 +1,6 @@
{% extends "main/form/base.html" %} {% extends "main/form/base.html" %}
{% load i18n %} {% load i18n %}
{% load main_extras %}
{% block title_new %} {% block title_new %}
{% translate "Create transaction" %} {% translate "Create transaction" %}
{% endblock %} {% endblock %}
@ -14,7 +15,7 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block tables %} {% block tables %}
{% if not form.instance.adding %} {% if not form.instance|adding %}
<h3>{% translate "Invoices" %}</h3> <h3>{% translate "Invoices" %}</h3>
{% include "main/table/invoice.html" %} {% include "main/table/invoice.html" %}
{% endif %} {% endif %}

View File

@ -54,3 +54,8 @@ def extension(file):
@register.filter @register.filter
def verbose_name(obj): def verbose_name(obj):
return obj._meta.verbose_name return obj._meta.verbose_name
@register.filter
def adding(obj):
return obj._state.adding