feat: export (WIP)

This commit is contained in:
Herculino Trotta
2025-02-19 08:51:33 -03:00
parent 3080df9b66
commit 069f1b450c
7 changed files with 268 additions and 4 deletions

View File

@@ -0,0 +1,25 @@
from import_export import fields, resources, widgets
from apps.accounts.models import Account
from apps.export_app.widgets.foreign_key import AutoCreateForeignKeyWidget
class AccountResource(resources.ModelResource):
group = fields.Field(
attribute="group",
column_name="group",
widget=AutoCreateForeignKeyWidget("accounts.AccountGroup", "name"),
)
currency = fields.Field(
attribute="currency",
column_name="currency",
widget=widgets.ForeignKeyWidget("currencies.Currency", "name"),
)
exchange_currency = fields.Field(
attribute="exchange_currency",
column_name="exchange_currency",
widget=widgets.ForeignKeyWidget("currencies.Currency", "name"),
)
class Meta:
model = Account

View File

@@ -0,0 +1,46 @@
from import_export import fields, resources, widgets
from apps.currencies.models import Currency, ExchangeRate, ExchangeRateService
class CurrencyResource(resources.ModelResource):
exchange_currency = fields.Field(
attribute="exchange_currency",
column_name="exchange_currency",
widget=widgets.ForeignKeyWidget("currencies.Currency", "name"),
)
class Meta:
model = Currency
class ExchangeRateResource(resources.ModelResource):
from_currency = fields.Field(
attribute="from_currency",
column_name="from_currency",
widget=widgets.ForeignKeyWidget("currencies.Currency", "name"),
)
to_currency = fields.Field(
attribute="to_currency",
column_name="to_currency",
widget=widgets.ForeignKeyWidget("currencies.Currency", "name"),
)
class Meta:
model = ExchangeRate
class ExchangeRateServiceResource(resources.ModelResource):
target_currencies = fields.Field(
attribute="target_currencies",
column_name="target_currencies",
widget=widgets.ManyToManyWidget("currencies.Currency", field="name"),
)
target_accounts = fields.Field(
attribute="target_accounts",
column_name="target_accounts",
widget=widgets.ForeignKeyWidget("accounts.Account", field="name"),
)
class Meta:
model = ExchangeRateService

View File

@@ -1,4 +1,5 @@
from import_export import fields, resources
from import_export.widgets import ForeignKeyWidget
from apps.export_app.widgets.foreign_key import AutoCreateForeignKeyWidget
from apps.export_app.widgets.many_to_many import AutoCreateManyToManyWidget
@@ -14,7 +15,7 @@ class TransactionResource(resources.ModelResource):
account = fields.Field(
attribute="account",
column_name="account",
widget=AutoCreateForeignKeyWidget("accounts.Account", "name"),
widget=ForeignKeyWidget("accounts.Account", "name"),
)
category = fields.Field(
@@ -37,3 +38,18 @@ class TransactionResource(resources.ModelResource):
class Meta:
model = Transaction
class TransactionTagResource(resources.ModelResource):
class Meta:
model = TransactionTag
class TransactionEntityResource(resources.ModelResource):
class Meta:
model = TransactionEntity
class TransactionCategoyResource(resources.ModelResource):
class Meta:
model = TransactionCategory