Skip to content

Commit

Permalink
Merge pull request #195 from SFTtech/milo/add-changelog
Browse files Browse the repository at this point in the history
add changelog
  • Loading branch information
mikonse authored Jan 5, 2024
2 parents c94b0e3 + 25ce982 commit 2263bb9
Show file tree
Hide file tree
Showing 9 changed files with 147 additions and 74 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/backend.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: pip install -e '.[dev,test]'
- name: Analysing the code with pylint
Expand All @@ -20,10 +20,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: pip install -e '.[dev,test]'
- name: Analysing the code with mypy
Expand Down Expand Up @@ -71,10 +71,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: pip install -e '.[dev,test]'
- name: Check formatting
Expand Down
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changelog

## Unreleased

[Compare the full difference.](https://github.com/SFTtech/abrechnung/compare/v0.12.1...HEAD)

## 0.12.1 (2024-01-05)

[Compare the full difference.](https://github.com/SFTtech/abrechnung/compare/v0.12.0...v0.12.1)

### Fixed

- Correctly filter out deleted transactions in balance computations
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ package:
docs:
$(MAKE) -C docs html

.PHONY: serve-docs
serve-docs:
python3 -m http.server -d docs/_build/html 8888

.PHONY: generate-openapi
generate-openapi:
mkdir -p api
Expand Down
40 changes: 19 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@

The *Abrechnung* (German for *reckoning*, *settlement*, *revenge*) aims to be a versatile and user-centric **payment**, **transaction** and **bookkeeping** management tool for human groups and events.

>>> You can simply **try** our [**demo instance**](https://demo.abrechnung.sft.lol)!
> You can simply **try** our [**demo instance**](https://demo.abrechnung.sft.lol)!
> You can get the android app over from the [releases page](https://github.com/SFTtech/abrechnung/releases/latest)
Abrechnung is a tool to track *money*, *purchases* (and its items) and *debtors* for:

Group life | Events | Travelling
-|-|-
Flat share roommates | Cooking revelries | Holiday trips
Your Hackerspace | LAN parties | Business trips
Family life | Regular parties | Adventures
... | ... | ...

| Group life | Events | Travelling |
|----------------------|-------------------|----------------|
| Flat share roommates | Cooking revelries | Holiday trips |
| Your Hackerspace | LAN parties | Business trips |
| Family life | Regular parties | Adventures |
| ... | ... | ... |

---

Expand All @@ -38,13 +38,12 @@ To help you set up your instance or understand the inner workings:

## Technical foundation

Technology | Component
------------------|----------
**Python** | Backend logic
**React** | Web UI framework
**PostgresSQL** | Database
**Homo Sapiens** | Magic sauce

| Technology | Component |
|------------------|------------------|
| **Python** | Backend logic |
| **React** | Web UI framework |
| **PostgresSQL** | Database |
| **Homo Sapiens** | Magic sauce |

## Contributing

Expand All @@ -61,12 +60,11 @@ If there is **that feature** you really want to see implemented, you found a **b
To directly reach developers and other users, we have chat rooms.
For questions, suggestions, problem support, please join and just ask!

Contact | Where?
-----------------|-------
Issue Tracker | [SFTtech/abrechnung](https://github.com/SFTtech/abrechnung/issues)
Matrix Chat | [`#sfttech:matrix.org`](https://app.element.io/#/room/#sfttech:matrix.org)
Support us | [![money sink](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/SFTtech)

| Contact | Where? |
|---------------|-------------------------------------------------------------------------------------------------|
| Issue Tracker | [SFTtech/abrechnung](https://github.com/SFTtech/abrechnung/issues) |
| Matrix Chat | [`#sfttech:matrix.org`](https://app.element.io/#/room/#sfttech:matrix.org) |
| Support us | [![money sink](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/SFTtech) |

## License

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
createTransaction,
fetchTransactions,
selectCurrentUserPermissions,
selectGroupById,
selectGroupTransactionsStatus,
selectSortedTransactions,
} from "@abrechnung/redux";
Expand All @@ -20,6 +21,7 @@ import { useApi } from "../../core/ApiProvider";
import { GroupTabScreenProps } from "../../navigation/types";
import {
selectActiveGroupId,
selectGroupSlice,
selectTransactionSlice,
selectUiSlice,
useAppDispatch,
Expand All @@ -35,6 +37,7 @@ export const TransactionList: React.FC<Props> = ({ navigation }) => {
const { api } = useApi();

const groupId = useAppSelector((state) => selectActiveGroupId({ state: selectUiSlice(state) })) as number; // TODO: proper typing
const group = useAppSelector((state) => selectGroupById({ state: selectGroupSlice(state), groupId }));
const [search, setSearch] = useState<string>("");
const [sortMode, setSortMode] = useState<TransactionSortMode>("last_changed");
const transactions = useAppSelector((state) =>
Expand Down Expand Up @@ -79,7 +82,7 @@ export const TransactionList: React.FC<Props> = ({ navigation }) => {
return;
}
navigation.getParent()?.setOptions({
headerTitle: "Transactions",
headerTitle: group?.name ?? "",
titleShown: !showSearchInput,
headerRight: () => {
if (showSearchInput) {
Expand Down Expand Up @@ -118,7 +121,7 @@ export const TransactionList: React.FC<Props> = ({ navigation }) => {
);
},
});
}, [isFocused, showSearchInput, isMenuOpen, search, sortMode, theme, navigation]);
}, [group, isFocused, showSearchInput, isMenuOpen, search, sortMode, theme, navigation]);

const createNewTransaction = (type: TransactionType) => {
dispatch(createTransaction({ groupId, type }))
Expand Down
11 changes: 5 additions & 6 deletions frontend/apps/mobile/src/screens/groups/AccountList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
selectAccountBalances,
selectCurrentUserPermissions,
selectGroupAccountsStatus,
selectGroupCurrencySymbol,
selectGroupById,
selectSortedAccounts,
} from "@abrechnung/redux";
import { Account, AccountBalance } from "@abrechnung/types";
Expand Down Expand Up @@ -40,6 +40,7 @@ export const AccountList: React.FC<Props> = ({ route, navigation }) => {
const accountType: AccountType = route.name === "AccountList" ? "personal" : "clearing";

const groupId = useAppSelector((state) => selectActiveGroupId({ state: selectUiSlice(state) })) as number; // TODO: proper typing
const group = useAppSelector((state) => selectGroupById({ state: selectGroupSlice(state), groupId }));
const [search, setSearch] = useState<string>("");
const [sortMode, setSortMode] = useState<AccountSortMode>("name");
const accounts = useAppSelector((state) =>
Expand All @@ -53,9 +54,7 @@ export const AccountList: React.FC<Props> = ({ route, navigation }) => {
);
const accountBalances = useAppSelector((state) => selectAccountBalances({ state, groupId }));
const permissions = useAppSelector((state) => selectCurrentUserPermissions({ state: state, groupId }));
const currency_symbol = useAppSelector((state) =>
selectGroupCurrencySymbol({ state: selectGroupSlice(state), groupId })
);
const currency_symbol = group?.currency_symbol;
const accountStatus = useAppSelector((state) =>
selectGroupAccountsStatus({ state: selectAccountSlice(state), groupId })
);
Expand Down Expand Up @@ -87,7 +86,7 @@ export const AccountList: React.FC<Props> = ({ route, navigation }) => {
}

navigation.getParent()?.setOptions({
headerTitle: accountType === "personal" ? "People" : "Events",
headerTitle: group?.name ?? "",
titleShown: !showSearchInput,
headerRight: () => {
if (showSearchInput) {
Expand Down Expand Up @@ -125,7 +124,7 @@ export const AccountList: React.FC<Props> = ({ route, navigation }) => {
);
},
});
}, [isFocused, showSearchInput, isMenuOpen, setMenuOpen, sortMode, theme, navigation, accountType, search]);
}, [group, isFocused, showSearchInput, isMenuOpen, setMenuOpen, sortMode, theme, navigation, accountType, search]);

const createNewAccount = () => {
dispatch(
Expand Down
28 changes: 10 additions & 18 deletions frontend/apps/web/src/pages/groups/Group.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,12 @@ import {
unsubscribe,
} from "@abrechnung/redux";
import React, { Suspense } from "react";
import { batch } from "react-redux";
import { Navigate, Route, Routes, useParams } from "react-router-dom";
import { toast } from "react-toastify";
import { Balances } from "../accounts/Balances";
import { Loading } from "../../components/style/Loading";
import { api, ws } from "../../core/api";
import {
selectAccountSlice,
selectGroupSlice,
selectTransactionSlice,
useAppDispatch,
useAppSelector,
} from "../../store";
import { Loading } from "@/components/style/Loading";
import { api, ws } from "@/core/api";
import { selectAccountSlice, selectGroupSlice, selectTransactionSlice, useAppDispatch, useAppSelector } from "@/store";
import { AccountDetail } from "../accounts/AccountDetail";
import { PersonalAccountList } from "../accounts/PersonalAccountList";
import { ClearingAccountList } from "../accounts/ClearingAccountList";
Expand All @@ -32,6 +25,7 @@ import { GroupLog } from "./GroupLog";
import { GroupMemberList } from "./GroupMemberList";
import { GroupSettings } from "./GroupSettings";
import { TransactionDetail } from "../transactions/TransactionDetail";
import { SerializedError } from "@reduxjs/toolkit";

export const Group: React.FC = () => {
const params = useParams();
Expand Down Expand Up @@ -69,14 +63,12 @@ export const Group: React.FC = () => {

React.useEffect(() => {
if (groupExists) {
batch(() => {
dispatch(fetchGroupDependencies({ groupId, api, fetchAnyway: true }))
.unwrap()
.catch((err) => {
console.warn(err);
toast.error(`Error while loading transactions and accounts: ${err}`);
});
});
dispatch(fetchGroupDependencies({ groupId, api, fetchAnyway: true }))
.unwrap()
.catch((err: SerializedError) => {
console.warn(err);
toast.error(`Error while loading transactions and accounts: ${err.message}`);
});
}
}, [groupExists, groupId, dispatch]);

Expand Down
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,6 @@ commit = false
files = [
{ filename = "abrechnung/__init__.py" },
{ filename = "frontend/apps/mobile/android/app/build.gradle" },
{ filename = "CHANGELOG.md", search = "Unreleased", replace = "{current_version} ({now:%Y-%m-%d})"},
{ filename = "CHANGELOG.md", search = "v{current_version}...HEAD", replace = "v{current_version}...v{new_version}"},
]
Loading

0 comments on commit 2263bb9

Please sign in to comment.