Compare commits
4 commits
0e1c1be189
...
82c7a03965
Author | SHA1 | Date | |
---|---|---|---|
82c7a03965 | |||
88f4f9099b | |||
b18088f9d6 | |||
4c75cb460d |
12 changed files with 34 additions and 35 deletions
|
@ -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)
|
|
@ -2,5 +2,4 @@ from django.apps import AppConfig
|
|||
|
||||
|
||||
class MainConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "main"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 0.0.1\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"
|
||||
"Last-Translator: edpibu <git@edgarpierre.fr>\n"
|
||||
"Language-Team: edpibu <git@edgarpierre.fr>\n"
|
||||
|
@ -67,7 +67,7 @@ msgid "Budget"
|
|||
msgstr "Budget"
|
||||
|
||||
#: .\models.py:114 .\templates\main\form\snapshot.html:23
|
||||
#: .\templates\main\index.html:32
|
||||
#: .\templates\main\index.html:30
|
||||
msgid "Categories"
|
||||
msgstr "Catégories"
|
||||
|
||||
|
@ -150,6 +150,7 @@ msgstr "Paiement"
|
|||
#: .\templates\main\form\snapshot.html:27 .\templates\main\index.html:26
|
||||
#: .\templates\main\list\transaction.html:6
|
||||
#: .\templates\main\list\transaction.html:23
|
||||
#: .\templates\main\month\transaction.html:15
|
||||
#: .\templates\main\table\snapshot.html:28
|
||||
msgid "Transactions"
|
||||
msgstr "Transactions"
|
||||
|
@ -170,7 +171,7 @@ msgstr "Aller au contenu principal"
|
|||
msgid "Home"
|
||||
msgstr "Accueil"
|
||||
|
||||
#: .\templates\main\base.html:38 .\templates\main\index.html:42
|
||||
#: .\templates\main\base.html:38 .\templates\main\index.html:40
|
||||
msgid "Snapshots"
|
||||
msgstr "Relevés"
|
||||
|
||||
|
@ -199,6 +200,10 @@ msgstr "Se déconnecter"
|
|||
msgid "Log in"
|
||||
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
|
||||
#, python-format
|
||||
msgid "Are you sure you want do delete <strong>%(object)s</strong> ?"
|
||||
|
@ -217,7 +222,7 @@ msgid "New account"
|
|||
msgstr "Nouveau compte"
|
||||
|
||||
#: .\templates\main\form\account.html:19 .\templates\main\form\category.html:15
|
||||
#: .\templates\main\index.html:28
|
||||
#: .\templates\main\index.html:44
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
|
|
|
@ -23,16 +23,7 @@ class UserModel(models.Model):
|
|||
abstract = True
|
||||
|
||||
|
||||
class NummiModel(UserModel):
|
||||
@property
|
||||
def adding(self):
|
||||
return self._state.adding
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
|
||||
class Account(NummiModel):
|
||||
class Account(UserModel):
|
||||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||
name = models.CharField(max_length=64, default=_("Account"), verbose_name=_("Name"))
|
||||
icon = models.SlugField(
|
||||
|
@ -72,7 +63,7 @@ class Account(NummiModel):
|
|||
verbose_name_plural = _("Accounts")
|
||||
|
||||
|
||||
class AccountModel(NummiModel):
|
||||
class AccountModel(UserModel):
|
||||
account = models.ForeignKey(
|
||||
Account,
|
||||
on_delete=models.CASCADE,
|
||||
|
@ -83,7 +74,7 @@ class AccountModel(NummiModel):
|
|||
abstract = True
|
||||
|
||||
|
||||
class Category(NummiModel):
|
||||
class Category(UserModel):
|
||||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||
name = models.CharField(
|
||||
max_length=64, default=_("Category"), verbose_name=_("Name")
|
||||
|
@ -194,7 +185,7 @@ class Snapshot(AccountModel):
|
|||
verbose_name_plural = _("Statements")
|
||||
|
||||
|
||||
class Transaction(NummiModel):
|
||||
class Transaction(UserModel):
|
||||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||
name = models.CharField(
|
||||
max_length=256, default=_("Transaction"), verbose_name=_("Name")
|
||||
|
@ -264,7 +255,7 @@ class Transaction(NummiModel):
|
|||
verbose_name_plural = _("Transactions")
|
||||
|
||||
|
||||
class Invoice(NummiModel):
|
||||
class Invoice(UserModel):
|
||||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||
name = models.CharField(
|
||||
max_length=256, default=_("Invoice"), verbose_name=_("Name")
|
||||
|
|
|
@ -79,6 +79,11 @@
|
|||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% if user %}
|
||||
<p>
|
||||
{% blocktranslate %}Logged in as <strong>{{ user }}</strong>{% endblocktranslate %}
|
||||
</p>
|
||||
{% endif %}
|
||||
</nav>
|
||||
{% endspaceless %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
{% endblock %}
|
||||
{% block h2 %}{{ form.instance.icon|remix }}{{ form.instance }}{% endblock %}
|
||||
{% block tables %}
|
||||
{% if not form.instance.adding %}
|
||||
{% if not form.instance|adding %}
|
||||
<h3>{% translate "Statements" %}</h3>
|
||||
{% include "main/table/snapshot.html" %}
|
||||
{% endif %}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{% load main_extras %}
|
||||
{% load i18n %}
|
||||
{% block title %}
|
||||
{% if form.instance.adding %}
|
||||
{% if form.instance|adding %}
|
||||
{% block title_new %}{% endblock %}
|
||||
{% else %}
|
||||
{{ form.instance }}
|
||||
|
@ -24,7 +24,7 @@
|
|||
{% endblock %}
|
||||
{% block body %}
|
||||
{% with instance=form.instance %}
|
||||
{% if instance.adding %}
|
||||
{% if instance|adding %}
|
||||
<h2 class="new">
|
||||
{% block h2_new %}{% endblock %}
|
||||
</h2>
|
||||
|
@ -36,7 +36,7 @@
|
|||
{% block pre %}{% endblock %}
|
||||
<form method="post">
|
||||
{% 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>
|
||||
{% block tables %}{% endblock %}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{% load i18n %}
|
||||
{% load main_extras %}
|
||||
{% block fields %}
|
||||
{% if form.non_field_errors %}
|
||||
<ul class='errorlist'>
|
||||
|
@ -25,11 +26,11 @@
|
|||
<tr class="buttons">
|
||||
<td colspan="2">
|
||||
{% block buttons %}
|
||||
{% if not form.instance.adding %}
|
||||
{% if not form.instance|adding %}
|
||||
<a class="del" href="{{ form.instance.get_delete_url }}">{% translate "Delete" %}</a>
|
||||
{% endif %}
|
||||
<input type="reset" value="{% translate "Reset" %}" />
|
||||
{% if form.instance.adding %}
|
||||
{% if form.instance|adding %}
|
||||
<input type="submit" value="{% translate "Create" %}" />
|
||||
{% else %}
|
||||
<input type="submit" value="{% translate "Save" %}" />
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<h3>{% translate "Categories" %}</h3>
|
||||
{% include "main/plot/category.html" %}
|
||||
{% endif %}
|
||||
{% if not form.instance.adding %}
|
||||
{% if not form.instance|adding %}
|
||||
<h3>{% translate "Transactions" %} ({{ form.instance.sum|pmvalue }} / {{ form.instance.diff|pmvalue }})</h3>
|
||||
{% include "main/table/transaction.html" %}
|
||||
{% endif %}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{% extends "main/form/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load main_extras %}
|
||||
{% block title_new %}
|
||||
{% translate "Create transaction" %}
|
||||
{% endblock %}
|
||||
|
@ -14,7 +15,7 @@
|
|||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block tables %}
|
||||
{% if not form.instance.adding %}
|
||||
{% if not form.instance|adding %}
|
||||
<h3>{% translate "Invoices" %}</h3>
|
||||
{% include "main/table/invoice.html" %}
|
||||
{% endif %}
|
||||
|
|
|
@ -54,3 +54,8 @@ def extension(file):
|
|||
@register.filter
|
||||
def verbose_name(obj):
|
||||
return obj._meta.verbose_name
|
||||
|
||||
|
||||
@register.filter
|
||||
def adding(obj):
|
||||
return obj._state.adding
|
||||
|
|
Loading…
Reference in a new issue