Skip to content

Commit

Permalink
Merge pull request #277 from flow-mn/sadespresso/stats-tab-again-2025…
Browse files Browse the repository at this point in the history
…0118

stats tab working draft
  • Loading branch information
sadespresso authored Jan 25, 2025
2 parents 36248e9 + 970cb89 commit ead7d3e
Show file tree
Hide file tree
Showing 34 changed files with 1,290 additions and 397 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## Beta 0.11.0 (next)

* Reworked stats tab (ongoing)

## Beta 0.10.2

### Improvements
Expand Down
7 changes: 7 additions & 0 deletions assets/l10n/en_IN.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"general.disabled": "Disabled",
"general.selectLocation": "Choose location",
"general.nextNDays": "Next {} day(s)",
"general.flow": "Flow",

"setup.getStarted": "Get started",
"setup.next": "Next",
Expand Down Expand Up @@ -240,6 +241,12 @@
"tabs.stats.chart.select.clickToSelect": "Click to select",
"tabs.stats.chart.noExchangeRatesWarning": "Missing exchange rate data. Transactions in non-primary currencies are not displayed.",
"tabs.stats.chart.noExchangeRatesWarning.retry": "Retry",
"tabs.stats.dailyReport.dailyAvgExpense": "Avg. daily expense",
"tabs.stats.dailyReport.dailyAvgIncome": "Avg. daily income",
"tabs.stats.dailyReport.forecastFor": "Expense forecast for {}",
"tabs.stats.dailyReport.totalExpenseFor": "{} total expense",
"tabs.stats.summaryByAccount": "Summary by account",
"tabs.stats.summaryByCategory": "Summary by category",
"tabs.accounts": "Accounts",
"tabs.accounts.reorder": "Reorder accounts",
"tabs.accounts.reorder.guide": "Long press and drag",
Expand Down
7 changes: 7 additions & 0 deletions assets/l10n/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"general.disabled": "Disabled",
"general.selectLocation": "Choose location",
"general.nextNDays": "Next {} day(s)",
"general.flow": "Flow",

"setup.getStarted": "Get started",
"setup.next": "Next",
Expand Down Expand Up @@ -240,6 +241,12 @@
"tabs.stats.chart.select.clickToSelect": "Click to select",
"tabs.stats.chart.noExchangeRatesWarning": "Missing exchange rate data. Transactions in non-primary currencies are not displayed.",
"tabs.stats.chart.noExchangeRatesWarning.retry": "Retry",
"tabs.stats.dailyReport.dailyAvgExpense": "Avg. daily expense",
"tabs.stats.dailyReport.dailyAvgIncome": "Avg. daily income",
"tabs.stats.dailyReport.forecastFor": "Expense forecast for {}",
"tabs.stats.dailyReport.totalExpenseFor": "{} total expense",
"tabs.stats.summaryByAccount": "Summary by account",
"tabs.stats.summaryByCategory": "Summary by category",
"tabs.accounts": "Accounts",
"tabs.accounts.reorder": "Reorder accounts",
"tabs.accounts.reorder.guide": "Long press and drag",
Expand Down
9 changes: 8 additions & 1 deletion assets/l10n/it_IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"general.disabled": "Disabilitato",
"general.selectLocation": "Scegli la posizione",
"general.nextNDays": "Prossimi {} giorni",
"general.flow": "Flusso",

"setup.getStarted": "Iniziare",
"setup.next": "Avanti",
Expand Down Expand Up @@ -240,6 +241,12 @@
"tabs.stats.chart.select.clickToSelect": "Clicca per selezionare",
"tabs.stats.chart.noExchangeRatesWarning": "Dati dei tassi di cambio mancanti. Le transazioni in valute diverse dalla principale non sono visualizzate.",
"tabs.stats.chart.noExchangeRatesWarning.retry": "Riprova",
"tabs.stats.dailyReport.dailyAvgExpense": "Spesa media giornaliera",
"tabs.stats.dailyReport.dailyAvgIncome": "Entrata media giornaliera",
"tabs.stats.dailyReport.forecastFor": "Previsione di spesa per {}",
"tabs.stats.dailyReport.totalExpenseFor": "Spesa totale {}",
"tabs.stats.summaryByAccount": "Riepilogo per conto",
"tabs.stats.summaryByCategory": "Riepilogo per categoria",
"tabs.accounts": "Conti",
"tabs.accounts.reorder": "Riordina i conti",
"tabs.accounts.reorder.guide": "Premi a lungo e trascina",
Expand Down Expand Up @@ -321,7 +328,7 @@
"enum.TransactionSubtype@receivedLoan": "Prestito (ricevuto)",
"enum.TransactionType": "Tipo di transazione",
"enum.TransactionType@income": "Entrata",
"enum.TransactionType@expense": "Uscita",
"enum.TransactionType@expense": "Spesa",
"enum.TransactionType@transfer": "Trasferimento",

"enum.CSVHeadersV1": "Intestazioni CSV",
Expand Down
7 changes: 7 additions & 0 deletions assets/l10n/mn_MN.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"general.disabled": "Идэвхгүй",
"general.selectLocation": "Байршил сонгох",
"general.nextNDays": "Ирэх {} хоног",
"general.flow": "Урсгал",

"setup.getStarted": "Эхэлцгээе",
"setup.next": "Үргэлжлүүлэх",
Expand Down Expand Up @@ -240,6 +241,12 @@
"tabs.stats.chart.select.clickToSelect": "Товшиж сонгоно уу",
"tabs.stats.chart.noExchangeRatesWarning": "Валютын ханшийн мэдээлэл байхгүй учир үндсэн валютаас ({currency}) бусад гүйлгээнүүд харагдахгүй байна",
"tabs.stats.chart.noExchangeRatesWarning.retry": "Дахин оролдох",
"tabs.stats.dailyReport.dailyAvgExpense": "Дундаж зарлага (өдөр)",
"tabs.stats.dailyReport.dailyAvgIncome": "Дундаж орлого (өдөр)",
"tabs.stats.dailyReport.forecastFor": "Урьдчилсан зарлагын тооцоо ({})",
"tabs.stats.dailyReport.totalExpenseFor": "{}-н нийт зарлага",
"tabs.stats.summaryByAccount": "Данс бүрээр харах",
"tabs.stats.summaryByCategory": "Ангилал бүрээр харах",
"tabs.accounts": "Данснууд",
"tabs.accounts.reorder": "Дараалал өөрчлөх",
"tabs.accounts.reorder.guide": "Удаан дарж чирнэ үү",
Expand Down
31 changes: 30 additions & 1 deletion assets/l10n/tr_TR.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"appName": "Flow",
"appShortDesc": "Kişisel finans takipçiniz",

"visitGitHubRepo": "GitHub'da depoyu ziyaret edin",

"general.back": "Geri Git",
"general.delete": "Silmek",
"general.delete.permanentWarning": "Bu eylem geri alınamaz",
Expand All @@ -28,6 +30,8 @@
"general.disabled": "Devredışı",
"general.selectLocation": "Konum seçin",
"general.nextNDays": "Sonraki {} gün",
"general.flow": "Akış",

"setup.getStarted": "Başlayın",
"setup.next": "Sonraki",
"setup.slides.foss.title": "Ücretsiz ve açık kaynak",
Expand Down Expand Up @@ -70,6 +74,7 @@
"setup.onboarding.freshStart.description": "Flow'u ilk kez kullanıyorum",
"setup.onboarding.importExisting": "Bir yedekten içeri aktarma",
"setup.onboarding.importExisting.description": "Önceki bir Flow yedeklemesinden verileri geri yükleme",

"account": "Hesap",
"account.name": "Hesap adı",
"account.balance": "Bakiye",
Expand All @@ -92,6 +97,7 @@
"account.thisMonth": "Bu ay",
"account.postTransactionBalance": "Bu işlemden sonraki bakiye",
"accounts": "Hesap",

"transaction": "İşlem",
"transaction.new": "Yeni işlem",
"transaction.edit": "İşlemi düzenle",
Expand Down Expand Up @@ -120,6 +126,7 @@
"transaction.location.edit": "Düzenlemek için haritaya dokunun",
"transaction.pending": "Beklemede",
"transaction.pending.preapproved": "Ön Onaylı",

"transactions.all": "Tüm işlemler",
"transactions.pending": "Bekleyen işlemler",
"transactions.query.noResult": "Gösterilecek işlem yok",
Expand All @@ -139,6 +146,7 @@
"transactions.query.filter.categories.n": "{} kategoriler",
"transactions.query.filter.categories.all": "Tüm Kategoriler",
"transactions.count": "{} İşlemler",

"category": "Kategori",
"category.name": "Kategori adı",
"category.new": "Kategori ekleme",
Expand All @@ -148,9 +156,12 @@
"category.none": "Kategori yok",
"categories": "Kategori",
"categories.noCategories": "Herhangi bir kategoriniz yok",

"profile.name": "Ad",

"currency": "Para birimi",
"currency.searchHint": "Aramak... (ülke, para birimi, kod)",

"preferences": "Tercihler",
"preferences.primaryCurrency": "Birincil para birimi",
"preferences.language": "Dil",
Expand Down Expand Up @@ -199,6 +210,7 @@
"preferences.moneyFormatting.preferFull.description": "Mümkün olduğunca sayıları kısaltmayın",
"preferences.moneyFormatting.useCurrencySymbol": "Para birimi simgesini kullan",
"preferences.moneyFormatting.useCurrencySymbol.description": "örneğin, \"5$\" yerine \"5 ABD Doları\"",

"tabs.home": "Ev",
"tabs.home.greetings": "Merhaba, {name}!",
"tabs.home.noTransactions": "Kriterlere uyan işlem yok",
Expand All @@ -211,6 +223,7 @@
"tabs.home.last7days": "Son 7 gün",
"tabs.home.totalBalance": "Toplam bilanço",
"tabs.home.flow": "Flow",

"tabs.stats": "İstatistik",
"tabs.stats.timeRange.select": "Aralık seç",
"tabs.stats.timeRange.changeMode": "Daha fazla seçenek",
Expand All @@ -228,6 +241,12 @@
"tabs.stats.chart.select.clickToSelect": "Seçmek için tıklayın",
"tabs.stats.chart.noExchangeRatesWarning": "Eksik döviz kuru verileri. Birincil olmayan para birimlerindeki işlemler görüntülenmez.",
"tabs.stats.chart.noExchangeRatesWarning.retry": "Tekrar dene",
"tabs.stats.dailyReport.dailyAvgExpense": "Günlük ortalama gider",
"tabs.stats.dailyReport.dailyAvgIncome": "Günlük ortalama gelir",
"tabs.stats.dailyReport.forecastFor": "{} için gider tahmini",
"tabs.stats.dailyReport.totalExpenseFor": "{} toplam gider",
"tabs.stats.summaryByAccount": "Hesaba göre özet",
"tabs.stats.summaryByCategory": "Kategoriye göre özet",
"tabs.accounts": "Hesap",
"tabs.accounts.reorder": "Hesapları yeniden sıralama",
"tabs.accounts.reorder.guide": "Uzun basın ve sürükleyin",
Expand All @@ -238,7 +257,8 @@
"tabs.profile.joinDiscord": "Flow Discord'a Katılın",
"tabs.profile.backup": "Yedek",
"tabs.profile.import": "İçe aktarmak",
"tabs.profile.withLoveFromTheCreator": "Sadespresso'dan 🤍",
"tabs.profile.withLoveFromTheCreator": "sadespresso'dan 🤍",

"support": "Destek",
"support.description": "Flow, özgür ve herkese açık bir sevgi emeğidir. Flow'u değerli buluyorsanız, projenin büyümesine yardımcı olmayı düşünün! Bunu yapmanın bazı yolları şunlardır:",
"support.requestFeatures": "Bize fikir verin",
Expand All @@ -249,6 +269,7 @@
"support.donateDeveloper": "İçerik oluşturucuya destek verin",
"support.donateDeveloper.description": "Flow'un tüm işlevleri ücretsiz olarak sunulur ve geliştiriciye bahşiş vermek herhangi bir ek özelliğin kilidini açmaz",
"support.donateDeveloper.action": "Yaratıcıya bir kahve ısmarla",

"flowIcon.change": "Simgeyi değiştir",
"flowIcon.type.icon": "İkon",
"flowIcon.type.icon.brands": "Markalar & Logolar",
Expand All @@ -259,6 +280,7 @@
"flowIcon.type.image.description": "Simge olarak kullanmak için bir resim seçin",
"flowIcon.type.character": "Karakter",
"flowIcon.type.character.description": "Simge olarak kullanmak için bir emoji veya harf girin",

"sync.import": "İçe aktarmak",
"sync.import.pickFile": "Bir dosya seçin",
"sync.import.pickFile.pickOrDrop": "Bir dosyayı seçin veya bırakın",
Expand All @@ -276,6 +298,7 @@
"sync.import.start": "İçe aktarmaya başla",
"sync.import.zipWarning": "Flow uygulaması tarafından üretilen ZIP dosyasını içe aktardığınızdan emin olun!",
"sync.import.success": "İçe aktarma başarılı!",

"sync.export": "Dışa aktarma",
"sync.export.type": "Dışa aktarma ({type})",
"sync.export.asCSV": "CSV olarak",
Expand All @@ -297,6 +320,7 @@
"sync.export.save": "Yedeklemeyi kaydet",
"sync.export.save.shareTitle": "Flow yedekleme ({type}, {date})",
"sync.export.fileDeleted": "Dosya bulunamadı",

"enum.TransactionSubtype": "Tür",
"enum.TransactionSubtype#null": "Varsayılan",
"enum.TransactionSubtype@transactionFee": "İşlem ücreti",
Expand All @@ -306,6 +330,7 @@
"enum.TransactionType@income": "Gelir",
"enum.TransactionType@expense": "Gider",
"enum.TransactionType@transfer": "Aktarmak",

"enum.CSVHeadersV1": "CSV Başlıkları",
"enum.CSVHeadersV1@uuid": "ID",
"enum.CSVHeadersV1@title": "Başlık",
Expand All @@ -323,6 +348,7 @@
"enum.CSVHeadersV1@latitude": "Enlem",
"enum.CSVHeadersV1@longitude": "Boylam",
"enum.CSVHeadersV1@extra": "Ekstra (JSON)",

"enum.ImportV1Progress@waitingConfirmation": "Onay bekleniyor",
"enum.ImportV1Progress@erasing": "Mevcut verilerin silinmesi",
"enum.ImportV1Progress@writingCategories": "Yazma kategorileri",
Expand All @@ -331,6 +357,7 @@
"enum.ImportV1Progress@writingTransactions": "İşlemlerin yazılması",
"enum.ImportV1Progress@success": "Başarılı",
"enum.ImportV1Progress@error": "Bir şeyler ters gitti ({error})",

"enum.ImportV2Progress@waitingConfirmation": "Onay bekleniyor",
"enum.ImportV2Progress@erasing": "Mevcut verilerin silinmesi",
"enum.ImportV2Progress@writingCategories": "Yazma kategorileri",
Expand All @@ -342,6 +369,7 @@
"enum.ImportV2Progress@copyingImages": "Görüntüleri kopyalama",
"enum.ImportV2Progress@success": "Başarılı",
"enum.ImportV2Progress@error": "Bir şeyler ters gitti ({error})",

"enum.BackupEntryType@manual": "El ile",
"[email protected]": "Kullanıcı tarafından oluşturulan yedekleme",
"enum.BackupEntryType@automated": "Otomatik yedekleme",
Expand All @@ -352,6 +380,7 @@
"[email protected]": "Önceki yedeklemeden içe aktarmadan önce önlem olarak oluşturulan yedekleme",
"enum.BackupEntryType@other": "Diğer yedekleme",
"[email protected]": "Diğer yedekleme",

"error.route.404": "Sayfa bulunamadı",
"error.route.400": "Sayfa yüklenemedi",
"error.input.mustBeNotEmpty": "Lütfen bu alanı doldurun",
Expand Down
7 changes: 3 additions & 4 deletions lib/data/flow_analytics.dart
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import "package:flow/data/money_flow.dart";
import "package:moment_dart/moment_dart.dart";

class FlowAnalytics<T> {
final DateTime from;
final DateTime to;
final TimeRange range;

final Map<String, MoneyFlow<T>> flow;

const FlowAnalytics({
required this.from,
required this.to,
required this.range,
required this.flow,
});
}
Loading

0 comments on commit ead7d3e

Please sign in to comment.