跳转到主要内容

一个简单的共享预算管理网页应用。

项目描述

I hate money

GitHub Actions Status Translation status from Weblate Donate Docker image

我讨厌金钱 是一个旨在简化共享预算管理的网页应用程序。它可以追踪谁买了什么,何时买,为谁买;并帮助结算账单。

代码根据BSD 啤酒 衍生许可证分发:如果你亲自遇见这些人并且想请他们喝一杯手工啤酒,我们强烈鼓励你这么做。

需求

  • Python:版本 3.7 到 3.11。
  • 后端:SQLite、PostgreSQL、MariaDB(版本 10.3.2 或更高版本)、内存。

贡献

你想为 IHateMoney 做贡献吗?太棒了!官方 贡献 页面有很多非常有用的帮助。

你也可以 捐赠一些资金。所有资金都将用于维护 托管版本

加入其他贡献者。

翻译状态

Translation status for each language

变更日志

本文档描述了每个过去版本之间的更改。

6.1.5 (2024-03-19)

  • 修复 README 和变更日志在 PyPI 上未显示的问题
  • 修复在项目存在现有货币时无法更改项目设置的问题(#1292)
  • 更新荷兰语和德语的翻译

6.1.4 (2023-12-14)

  • 修复 manifest 中缺少 markdown 包含的问题(#1274)
  • 更新中文、土耳其语、捷克语、西班牙语(拉丁美洲)、瑞典语的翻译

6.1.3 (2023-11-23)

  • 由于回归,撤销对 flask 和 werkzeug 2.3 的更新(参见 #1272)

6.1.2 (2023-11-19)

  • 修复密码生成命令行崩溃(#1242)
  • 更新到 flask 和 werkzeug 2.3(#1244)

6.1.1 (2023-10-04)

货币转换 API 工作绕

我们正在使用外部 API 进行货币转换。这个 API 最近开始要求 API 密钥,这导致 I Hate Money 在许多方面都无法使用。

此版本添加了一套针对此问题的解决方案。这应该会恢复添加账单等基本功能。然而,为了防止崩溃,我们不得不禁用一些操作。

  • 在现有项目中设置或更改默认货币不再可能。但是,可以将项目设置为“无货币”。
  • 添加或编辑与项目默认货币不同的货币的账单不再可能

正在讨论长期解决方案。如果您在项目中使用货币,欢迎您提供意见。

新增

  • 仅使用键盘简化添加账单(#1221)
  • 在历史记录中添加账单详情(#1223)
  • 添加新账单时记住最后的“为谁?”字段(#1222)
  • 加快单元测试速度(#1214)
  • 更新西班牙语、俄语、卡纳达语、瑞典语、波兰语、德语和意大利语的翻译

修复

  • 修复在切换项目时记住最后选择的付款人(#1224)

6.1.0 (2023-07-29)

新增

  • 为每个项目添加 RSS 源(#1158)
  • 安全:编辑项目设置时需要私有代码(#1204)

修复

  • 修复 404 页面崩溃(#1201)

6.0.1 (2023-07-22)

新增

  • 支持 Docker 容器中的 APPLICATION_ROOT(#1189)
  • 改进 docker-compose 示例:数据库的管理员密码和卷(#1169)

修复

  • 修复 docker-compose 示例引号问题(#1164)
  • 修复使用现有会话时的崩溃(将它们迁移到字典)(#1194)
  • 将新创建的项目添加到项目列表(#1193)

6.0.0 (2023-07-13)

重大变更

  • 删除 Python 3.6 支持
  • 添加 Python 3.11 支持

现在最低支持版本是 Python 3.7,项目经过 Python 3.11 的测试

新增

  • 启用新语言:加泰罗尼亚语、捷克语、西班牙语、波斯语、希伯来语、匈牙利语、卡纳达语、塞尔维亚语、泰卢固语、泰语
  • 构建 ARM64 和 ARMv7 Docker 镜像(#1141)
  • 允许金额为零的账单(#1133)
  • 添加删除费用的确认功能 (#1096)
  • 在邀请人员时显示二维码 (#1000)
  • 编辑账单时添加取消按钮,以改善用户体验 (#1013)

修复

  • 修复仪表板中的项目删除问题 (#1094)
  • 修复下拉列表中的重复项目名称 (#1082)
  • 修复验证码验证,应在不区分大小写的情况下进行 (#1061)
  • 修复登出时的CSRF问题 (#1040)
  • 修复通过电子邮件邀请人员时的XSS问题 (#1044)

已更改

  • 使用更高质量的favicon (#1102)
  • 使用Flask-Limiter实现速率限制 (#1054)

5.2.0 (2022-04-07)

新增

  • 使Docker镜像生产就绪:支持PostgreSQL,允许自定义端口、PUID、PGID (#919)
  • 在API的api/currencies下列出支持的货币 (#961)
  • 允许以CSV格式导入账单,与Cospend兼容 (#951) 注意,此新功能存在已知问题 [链接]

新增设置

更改设置

  • MAIL_DEFAULT_SENDER现在是一个字符串,而不是一个元组。旧语法仍然被接受,但将在下一个主要版本中停止支持 (#1007)

修复

  • 修复支持大写字母的项目ID (#925, #934)
  • 删除项目时清除项目历史记录 (#989)
  • 防止大整数输入以避免崩溃 (#994)
  • [性能] 与账单一起获取权重总和 (#949)
  • 在使用API时不需要验证码 (#931)
  • 修复Docker中的默认“法律链接”值 (#950)
  • 修复子目录安装时的展示图片 (#974)
  • 检查所选语言是否在支持列表中 (#971)

已更改

  • 用户界面修复,特别是针对移动设备 (#901, #904, #905, #929, #943, #944, #945, #991)
  • 始终在账单列表中显示顶部按钮:新建账单按钮和分页 (#956)
  • 显示项目活跃月份范围内的月度统计信息 (#885)
  • 当只有一个收款人时隐藏“每个”金额 (#1008)
  • 在密码提示错误消息中显示管理员电子邮件 (#965)
  • 当通过API创建项目时发送电子邮件 (#938)
  • 添加对Python 3.10的兼容性 (#921)
  • 支持WTForms 3 (#916)

5.1.1 (2021-10-26)

  • 没有实际更改,这是一个修复发布,因为5.1.0未上传到pypi

5.1.0 (2021-10-26)

新增

  • 添加在页面底部显示“法律链接”的选项 (#883)

新增设置

已更改

  • 改进余额和统计计算的性能 (#890)
  • 将展示图片的分辨率降低50% (#880)
  • 改进账单列表中的分页样式 (#873)

5.0.1 (2021-10-20)

  • 将图片包含在包存档中 (#872)

5.0.0 (2021-10-19)

重大变更

  • 将项目代码包含到项目身份验证令牌中。这使所有旧版本的API令牌和邀请链接失效 (#802 #843)
  • 停止支持Python 2 (#483)
  • 停止支持Python 3.5 (#571)
  • 停止支持MySQL (#743)
  • 需要MariaDB版本10.3.2或更高版本 (#632)
  • 默认启用会话cookie安全 (#845)
  • 将令牌路径认证更改为/{project}/join/{token} (#843)

现在最低支持的版本是Python 3.6,项目已测试到Python 3.9

查看升级说明,以确保升级顺利进行。

安全

  • 在破坏性操作上添加CSRF验证 (#796)
  • 要求删除项目或项目历史记录的私有代码 (#796)
  • 添加标题以减轻点击劫持、跨站脚本(XSS)和其他攻击:[X-Frame-Options]{.title-ref}、[X-XSS-Protection]{.title-ref}、[X-Content-Type-Options]{.title-ref}、[Content-Security-Policy]{.title-ref}、[Referrer-Policy]{.title-ref} (#845)
  • 为外部链接添加URL验证以防止XSS (#846)

新增

  • 允许导入之前导出的json数据 (#518)
  • 在账单表中添加新的可选字段“外部链接” (#429)
  • 在项目和账单中添加可选货币 (#541, #864)
  • 添加显示月度支出的新统计信息 (#526)
  • 在账单列表中添加分页 (#480)
  • 在管理员仪表板上添加排序、分页和搜索 (#538)
  • 添加记录所有更改的项目历史页面 (#553)
  • 为API添加基于令牌的认证 (#504)
  • 添加作为展示的插图,目前仅限法语 (#544)
  • 添加下载移动应用程序的页面 (#688)
  • 添加可选的支持简单的CAPTCHA (#844)
  • 添加希腊语、世界语、意大利语、日语、葡萄牙语和瑞典语的翻译
  • 发布官方的Docker镜像

新增设置

已更改

  • 使用外部债务库来解决结算 (#476)
  • 在统计视图中移除余额列 (#323)
  • 使语言选择持久化 (#547)
  • 在当前语言中本地化日期字符串 (#590)
  • 区分“快速警报”通知 (#594)
  • 持久显示“快速消息”而不是使其消失 (#856)
  • 改进菜单栏间距,将历史和设置放在子菜单中 (#739)
  • 将Dockerfile更改为在构建时安装python依赖项 (#793)
  • 更新项目设置不需要输入或更新项目代码 (#774)
  • 增加依赖项:WTForms (#768) jinja2 (#753) itsdangerous (#756) flask (#755 #757 #764)
  • 删除要求文件,以支持setup.cfg锁定 (#558)
  • 使语言选择持久化 (#547)
  • 闪存消息必须手动删除 (#856)
  • 增加标志的字体大小 (#828)

修复

  • 改善邀请人们加入项目时电子邮件地址的输入 (#133)
  • 修复统计页面中参与者的顺序 (#608)
  • 阐明项目版本表单:私有代码不是必需的 (#774)
  • 修复Python依赖项约束,使其不那么严格
  • 改进文档 (#781 #819 #821)
  • 修复某些浏览器上显示两次的日期选择器 (#221)
  • 成员权重现在四舍五入到两位小数 (#838)

文档

  • 重新组织“贡献”文档,使其对新贡献者更容易访问
  • 改进有关数据库迁移的文档 (#569)
  • 添加关于安全模型的页面 (#858)

4.1.5 (2020-07-26)

此版本修复了一个严重安全问题

鼓励所有用户升级。

修复

  • 修复项目数据的未经授权访问和修改(CVE-2020-15120)(#663)

已更改

  • 更改移动图标链接 (#598)
  • 改进电子邮件模板的法语翻译 (#593)

新增

  • 添加葡萄牙语(巴西)、泰米尔语、印地语的翻译

4.1.4 (2020-06-07)

这是一个仅修复错误的版本。这很可能是最后一个支持Python 2的版本:您应该升级到Python 3!

修复

  • 修复由于依赖项未锁定而导致安装失败 (#540, #545, #558)
  • 后端:修剪用户名以删除前导或尾随空格。这避免了不同名称在视觉上相同的情况 (#367)
  • 后端:修复当[ALLOW_PUBLIC_PROJECT_CREATION]{.title-ref}设置为false时禁止创建项目的API (#496)
  • 后端:修复缺少本地化电子邮件模板时的崩溃 (#592)
  • 后端:修复语言代码解析 (#589)
  • 后端:改进发送电子邮件时的错误处理 (#595)
  • 用户界面:修复某些浏览器上显示两次的日期选择器 (#221)
  • UI:修复添加账单时“提交并添加新账单”按钮无效的问题(#498)
  • UI:取消自动完成时防止取消账单(#506)
  • UI:修复小屏幕上主页的响应式宽度问题(#549)
  • UI:修复“添加成员”按钮的颜色(#499)
  • UI:修复缺失的HTML标签(#583)
  • UI:修复法语项目提醒电子邮件中的小错误(#486)
  • UI:修复添加成员时显示的消息中的错误(#575)
  • UI:修复关于私有代码的错误工具提示信息(#623)
  • UI:修复工具提示信息的错误(#635)

新增

  • 添加德语、西班牙语(拉丁美洲)、挪威语(博克马尔)、印尼语、波兰语、俄语、中文、土耳其语、乌克兰语的翻译
  • 更新所有语言的翻译

4.1.3 (2019-09-18)

修复

  • 修复打包问题。之前的(4.1)版本在所有系统上都无法使用pip安装。
  • 修复readme和requirements.txt文件以便上传到PyPI。

已更改

  • 在新页面上显示密码提醒信息,而不是在闪存消息中显示(#455,#469)

4.1 (2019-09-08)

新增

  • 在makefile中添加compress_assets目标以压缩PNG(#459)
  • 记录如何使用systemd(#435)
  • 添加对Python 3.7的支持
  • 在页脚中添加指向文档、移动应用和git仓库的链接(#445)
  • 使用weblate处理翻译
  • 添加荷兰语翻译
  • 如果已经登录,在登录页面上添加项目切换器(#445)

已更改

  • 文档已清理和重新组织。
  • 当账单列表中没有条目时,显示占位符。(#457)
  • 在成员存在之前禁用“添加账单”操作(#457)
  • 改进邀请用户体验(#451)
  • 在账单列表中,将“添加时间”列显示为工具提示(#443)
  • 更新到最新稳定的bootstrap(#440)
  • 改进“项目已存在”信息(#442)
  • 特别改进小屏幕的可用性(#441)
  • 用链接替换导出表单(#450)
  • 重新设计主页设计(#445)
  • Docker现在从PyPI或参考git仓库下载IHM(#446)
  • 根据功能排列导航栏项目(#445)

4.0 (2019-01-24)

新增

  • 在API中添加CORS头(#407)
  • 记录数据库迁移(#390)
  • 允许在金额字段中执行基本数学运算(#413)
  • 添加bill.creation_date字段(#327)
  • 记录PostgreSQL配置(#415)

修复

  • 不允许用户有负权重(#366)
  • 修复Docker镜像(#398)
  • 轻微的文档更改

已更改

  • 更新API项目列表(#405)

3.0 (2018-11-25)

修复

  • 修复pip ≥ 10时安装损坏的问题(#340)
  • 修复生成supervisord模板的错误(#309)
  • 修复Apache conf模板的错误(#359)
  • 重新生成翻译并改进法语翻译(#338)
  • 修复哈希密码验证的错误(#310)
  • 修复访问/时发生的无限循环(#358)
  • 修复发送邀请时的电子邮件验证错误
  • 修复删除账单时的双击问题(#349)
  • 修复错误转义问题(#388)
  • 修复已存在的参与者的表单错误(#370)
  • 修复通过API创建账单的文档(#391)
  • 修复Docker中的ADMIN_PASSWORD配置(#384)
  • 修复Docker中配置在每个运行时重复的bug(#392)
  • 修复Dockerfile中的cffi安装问题(#364)

新增

  • 记录MySQL设置(#357)
  • 添加favicon.ico(#381)
  • 记录外部邮件服务器配置(#278)
  • 改进设置文档的样式(#251)
  • 添加ihatemoney delete-project命令以删除项目(#375)
  • 添加漂亮的404错误页面(#379)

已更改

  • 增强翻译工具(#360)
  • 改进Makefile(#387)
  • 在新账单表单中按字母顺序排列成员。 (#374)
  • 在鼠标悬停时下划线操作链接(#377)

已移除

  • 移除Sentry,因为它在prod上不再使用。(#380)

2.1 (2018-02-16)

已更改

  • 使用flask-restful代替已弃用的flask-rest进行REST API(#315)
  • 使侧边栏可滚动。对于大型组很有用(#316)

修复

  • 修复运行[ihate
  • 使左侧边栏可滚动(#318)
  • 修复并增强Docker支持(#320,#321)

新增

  • 统计API(#343)
  • 允许通过API禁用/启用成员(#301)
  • 为API启用基本的Apache身份验证代理(#303)

2.0 (2017-12-27)

重大变更

  • ADMIN_PASSWORD 现在以哈希形式存储。现在可以使用 ihatemoney generate_password_hash 命令来生成正确的密码哈希 (#236)
  • 将 WSGI 文件转换为 Python 模块,将 budget/ihatemoney.wsgi 重命名为 ihatemoney/wsgi.py。请更新您的 Apache/Gunicorn 配置! (#218)
  • 现在需要管理员权限才能访问仪表板 (#262)
  • 已从项目 API GET 视图中删除 [password]{.title-ref} 字段 (#289)

已更改

  • 已登录管理员可以查看任何项目 (#262)
  • 更简单、更安全的身份验证逻辑 (#270)
  • 使用基于令牌的认证来重置密码 (#269)
  • 更好的安装文档 (#275)
  • 在邀请电子邮件中使用基于令牌的认证 (#280)
  • 为项目使用哈希密码 (#286)

新增

  • ihatemoney generate-config 以提供配置文件的工作示例 (#275)
  • 统计选项卡 (#257)
  • 支持 Python3.6 (#259)
  • ALLOW_PUBLIC_PROJECT_CREATION 设置 (#262)
  • 可以从仪表板编辑/删除项目 (#262)
  • ACTIVATE_ADMIN_DASHBOARD 设置 (#262)
  • 在导航栏中链接到仪表板 (#262)
  • Dockerfile
  • 解释升级过程的文档

修复

  • 修复 [PUT api/project/:code/members/:id]{.title-ref} API 端点 (#295)
  • 修复 API 中的成员名称唯一性验证 (#299)

已移除

  • 在设置脚本中删除未使用的选项

1.0 (2017-06-20)

新增

  • Apache WSGI 支持 (#191)
  • 改进 Makefile (#207, #201)
  • 将设置从源文件夹外部化 (#193)
  • Makefile:添加新规则以编译翻译 (#207)
  • 可以将项目创建限制为管理员 (#210)
  • 更响应式的布局 (#213)

已更改

  • 一些 README 优化
  • 将测试移动到 budget.tests (#205)
  • 可以禁用演示项目 (#209)

修复

  • 修复 sphinx 集成 (#208)

0.9 (2017-04-04)

  • 项目的第一个版本。

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分布

ihatemoney-6.1.5.tar.gz (1.7 MB 查看哈希值)

上传时间

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面