* Simplify cron code
use transactions for cron
remove only
bump mongoose to 8.x
remove deprecated config
fix race condition when users join a party
console debugging time
try calling transaction differently
add missing await
addditional console log
.
..
...
….
await
more debug log
mongoose logging
more logging
move session to encapsulate all of cron
delete old todos before fetching all tasks
changes
try waiting for mongoose connection
try adding timeout to time jump
cleanup and code refactoring
Translated using Weblate (Spanish)
Currently translated at 100.0% (821 of 821 strings)
Translated using Weblate (German)
Currently translated at 100.0% (821 of 821 strings)
Translated using Weblate (Japanese)
Currently translated at 87.0% (228 of 262 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 93.8% (107 of 114 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 18.1% (44 of 243 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 11.9% (29 of 243 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 88.1% (724 of 821 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 91.2% (104 of 114 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 7.4% (18 of 243 strings)
Translated using Weblate (Spanish)
Currently translated at 99.5% (817 of 821 strings)
Translated using Weblate (German)
Currently translated at 99.3% (816 of 821 strings)
Translated using Weblate (German)
Currently translated at 100.0% (3265 of 3265 strings)
Translated using Weblate (German)
Currently translated at 100.0% (3265 of 3265 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 98.2% (112 of 114 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 97.7% (131 of 134 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 69.1% (2257 of 3265 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 99.5% (239 of 240 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 16.4% (40 of 243 strings)
Translated using Weblate (German)
Currently translated at 99.9% (3264 of 3265 strings)
Translated using Weblate (Japanese)
Currently translated at 86.6% (227 of 262 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (272 of 272 strings)
Translated using Weblate (Japanese)
Currently translated at 97.9% (423 of 432 strings)
Translated using Weblate (German)
Currently translated at 100.0% (262 of 262 strings)
Translated using Weblate (German)
Currently translated at 100.0% (432 of 432 strings)
Translated using Weblate (German)
Currently translated at 100.0% (240 of 240 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 14.8% (36 of 243 strings)
Translated using Weblate (German)
Currently translated at 99.1% (814 of 821 strings)
Translated using Weblate (German)
Currently translated at 100.0% (397 of 397 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.7% (222 of 262 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 84.3% (221 of 262 strings)
Translated using Weblate (German)
Currently translated at 100.0% (60 of 60 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.0% (415 of 432 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.2% (3077 of 3265 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 63.7% (155 of 243 strings)
Translated using Weblate (German)
Currently translated at 99.0% (813 of 821 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 99.7% (396 of 397 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.7% (885 of 896 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (German)
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Japanese)
Currently translated at 97.4% (265 of 272 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (114 of 114 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (134 of 134 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (260 of 260 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (397 of 397 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (60 of 60 strings)
Update translation files
Updated by "Cleanup translation files" hook in Weblate.
Translated using Weblate (Japanese)
Currently translated at 98.7% (392 of 397 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (240 of 240 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (262 of 262 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (114 of 114 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (60 of 60 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (432 of 432 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (240 of 240 strings)
Translated using Weblate (Spanish)
Currently translated at 99.0% (813 of 821 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (397 of 397 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (French)
Currently translated at 100.0% (262 of 262 strings)
Translated using Weblate (French)
Currently translated at 100.0% (60 of 60 strings)
Translated using Weblate (French)
Currently translated at 100.0% (432 of 432 strings)
Translated using Weblate (French)
Currently translated at 100.0% (3265 of 3265 strings)
Translated using Weblate (French)
Currently translated at 100.0% (240 of 240 strings)
Translated using Weblate (French)
Currently translated at 100.0% (821 of 821 strings)
Translated using Weblate (French)
Currently translated at 100.0% (397 of 397 strings)
Translated using Weblate (French)
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (French)
Currently translated at 100.0% (3265 of 3265 strings)
Update translation files
Updated by "Cleanup translation files" hook in Weblate.
Update translation files
Updated by "Cleanup translation files" hook in Weblate.
Translated using Weblate (French)
Currently translated at 100.0% (3265 of 3265 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (3255 of 3255 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (15 of 15 strings)
Co-authored-by: Asier Gallego <agr2367789@gmail.com>
Co-authored-by: Asier Gallego Roca <asiernoide@users.noreply.translate.habitica.com>
Co-authored-by: Henrique Ferreira <pedroferreira217.ph@gmail.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: John Doe (Anonymous) <shyamjayeshduck@duck.com>
Co-authored-by: Katharina <katharinaanna.wilding@gmail.com>
Co-authored-by: Marie Blosse--Gilbin <mbgil@hotmail.fr>
Co-authored-by: Mauricio Pérez <mauriciodavidperez@gmail.com>
Co-authored-by: Raul Ernesto Ceron Lara <raztreuzz1234@gmail.com>
Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com>
Co-authored-by: Toro Mor <thomas.bizer@gmx.de>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Willhelm Winter <carapax@posteo.de>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/content/de/
Translate-URL: https://translate.habitica.com/projects/habitica/content/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/death/es/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/de/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/es/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/de/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/es/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/de/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/es/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/es/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/en_GB/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/
Translation: Habitica/Backgrounds
Translation: Habitica/Content
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
5.33.1
fix(links): next round of wiki revisions
Translated using Weblate (German)
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Portuguese)
Currently translated at 96.4% (864 of 896 strings)
Co-authored-by: Miya <baddybadges@gmail.com>
Co-authored-by: Toro Mor <thomas.bizer@gmx.de>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/
Translation: Habitica/Backgrounds
5.33.2
Fix achievement display in admin panel (#15326)
Fix news related permission issues (#15287)
Support sprite version of armoire icon (#15354)
* Use sprite component for armoire sprite
* use gif version of armoire sprite
* fix(import): sprite component path
---------
Co-authored-by: Kalista Payne <sabrecat@gmail.com>
log slow requests to loggly (#15364)
Update .eslintrc.js (#15388)
Add `require-await` to eslint config
Translated using Weblate (Japanese)
Currently translated at 93.0% (764 of 821 strings)
Translated using Weblate (Hungarian)
Currently translated at 54.8% (1790 of 3265 strings)
Translated using Weblate (Hungarian)
Currently translated at 53.5% (1748 of 3265 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (262 of 262 strings)
Translated using Weblate (Hungarian)
Currently translated at 52.1% (1704 of 3265 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Hungarian)
Currently translated at 59.3% (532 of 896 strings)
Translated using Weblate (Hungarian)
Currently translated at 79.3% (208 of 262 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (13 of 13 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (432 of 432 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (245 of 245 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (91 of 91 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 77.4% (2528 of 3265 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (167 of 167 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (167 of 167 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (167 of 167 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (272 of 272 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 93.0% (764 of 821 strings)
Translated using Weblate (French)
Currently translated at 100.0% (193 of 193 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (French)
Currently translated at 100.0% (260 of 260 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Hungarian)
Currently translated at 94.8% (258 of 272 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (245 of 245 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.2% (378 of 397 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Hungarian)
Currently translated at 82.8% (203 of 245 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (821 of 821 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.9% (377 of 397 strings)
Translated using Weblate (Hungarian)
Currently translated at 52.1% (1704 of 3265 strings)
Translated using Weblate (Hungarian)
Currently translated at 49.7% (122 of 245 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.1% (789 of 821 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (821 of 821 strings)
Translated using Weblate (Hungarian)
Currently translated at 48.5% (119 of 245 strings)
Translated using Weblate (Hungarian)
Currently translated at 26.1% (64 of 245 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2 of 2 strings)
Translated using Weblate (Hungarian)
Currently translated at 8.9% (22 of 245 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (15 of 15 strings)
Translated using Weblate (Hungarian)
Currently translated at 96.2% (790 of 821 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (432 of 432 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (240 of 240 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.4% (784 of 821 strings)
Translated using Weblate (Hungarian)
Currently translated at 91.5% (752 of 821 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (91 of 91 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (397 of 397 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (47 of 47 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (193 of 193 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (114 of 114 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (60 of 60 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (397 of 397 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (193 of 193 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (193 of 193 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (260 of 260 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (94 of 94 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (134 of 134 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (240 of 240 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (47 of 47 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (260 of 260 strings)
Translated using Weblate (German)
Currently translated at 99.2% (133 of 134 strings)
Translated using Weblate (German)
Currently translated at 99.2% (133 of 134 strings)
Translated using Weblate (Czech)
Currently translated at 95.2% (159 of 167 strings)
Translated using Weblate (Russian)
Currently translated at 91.2% (2978 of 3265 strings)
Translated using Weblate (Russian)
Currently translated at 99.3% (890 of 896 strings)
Translated using Weblate (German)
Currently translated at 100.0% (3265 of 3265 strings)
Translated using Weblate (German)
Currently translated at 100.0% (3265 of 3265 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (134 of 134 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (47 of 47 strings)
Translated using Weblate (French)
Currently translated at 100.0% (134 of 134 strings)
Translated using Weblate (French)
Currently translated at 100.0% (47 of 47 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (56 of 56 strings)
Translated using Weblate (Korean)
Currently translated at 98.5% (132 of 134 strings)
Translated using Weblate (Korean)
Currently translated at 6.9% (17 of 245 strings)
Translated using Weblate (Korean)
Currently translated at 71.9% (645 of 896 strings)
Translated using Weblate (Korean)
Currently translated at 49.2% (129 of 262 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (13 of 13 strings)
Translated using Weblate (Korean)
Currently translated at 81.9% (77 of 94 strings)
Translated using Weblate (Korean)
Currently translated at 91.6% (153 of 167 strings)
Translated using Weblate (Korean)
Currently translated at 67.3% (291 of 432 strings)
Translated using Weblate (Korean)
Currently translated at 79.5% (191 of 240 strings)
Translated using Weblate (Korean)
Currently translated at 54.6% (1785 of 3265 strings)
Translated using Weblate (Korean)
Currently translated at 88.8% (48 of 54 strings)
Translated using Weblate (Korean)
Currently translated at 89.3% (42 of 47 strings)
Translated using Weblate (Korean)
Currently translated at 93.9% (373 of 397 strings)
Translated using Weblate (Korean)
Currently translated at 54.9% (50 of 91 strings)
Translated using Weblate (German)
Currently translated at 100.0% (182 of 182 strings)
Translated using Weblate (German)
Currently translated at 100.0% (182 of 182 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 73.0% (179 of 245 strings)
Translated using Weblate (French)
Currently translated at 100.0% (245 of 245 strings)
Translated using Weblate (German)
Currently translated at 99.1% (243 of 245 strings)
Translated using Weblate (French)
Currently translated at 99.5% (244 of 245 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 62.0% (152 of 245 strings)
Translated using Weblate (Indonesian)
Currently translated at 73.4% (180 of 245 strings)
Translated using Weblate (Indonesian)
Currently translated at 96.0% (861 of 896 strings)
Translated using Weblate (Spanish (Latin America))
Currently translated at 62.0% (152 of 245 strings)
Translated using Weblate (German)
Currently translated at 98.7% (242 of 245 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (245 of 245 strings)
Translated using Weblate (Spanish)
Currently translated at 99.5% (244 of 245 strings)
Translated using Weblate (Portuguese)
Currently translated at 33.7% (82 of 243 strings)
Translated using Weblate (Portuguese)
Currently translated at 73.3% (602 of 821 strings)
Translated using Weblate (Portuguese)
Currently translated at 56.0% (51 of 91 strings)
Translated using Weblate (German)
Currently translated at 100.0% (167 of 167 strings)
Translated using Weblate (German)
Currently translated at 100.0% (167 of 167 strings)
Translated using Weblate (Portuguese)
Currently translated at 97.2% (107 of 110 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (896 of 896 strings)
Co-authored-by: César Orlando Pallares Delgado <copdeb@gmail.com>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: Diego Benitez <diego.benitez@bigpond.com>
Co-authored-by: Finrod <963505255@qq.com>
Co-authored-by: ForbiddenFigs <sorautai@outlook.com>
Co-authored-by: Hexe des Windes (she/her) <krausanna1@gmail.com>
Co-authored-by: Icaro <icaro.mascarenhas@outlook.com>
Co-authored-by: Ikmal <ikmal.s.16@gmail.com>
Co-authored-by: Jackal <qwerty70244@gmail.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: Katharina <katharinaanna.wilding@gmail.com>
Co-authored-by: Leslie Munguía <moongeeuh@gmail.com>
Co-authored-by: Lio Zam <zerofux@web.de>
Co-authored-by: Marius <mariusschmid11@gmail.com>
Co-authored-by: Miya <baddybadges@gmail.com>
Co-authored-by: Natalie Luhrs <eilatan@gmail.com>
Co-authored-by: Raul Ernesto Ceron Lara <raztreuzz1234@gmail.com>
Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com>
Co-authored-by: Toro Mor <thomas.bizer@gmx.de>
Co-authored-by: Viktor Révész <rviktor@ivankapal.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: 小王 <963505255@qq.com>
Co-authored-by: 이채린 <cofls1256@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/character/es/
Translate-URL: https://translate.habitica.com/projects/habitica/character/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/character/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/content/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/es/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/death/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/id/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/front/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/noscript/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/de/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/es/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ko/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Defaulttasks
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Messages
Translation: Habitica/Noscript
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
5.33.3
March 2025 Content Build (#15392)
* build: March 2025 css, backgrounds, subscriber gear, armoire
* build: March 2025 quests, seasonal gear, various fixes
* fix: fix string
* fix: fixes to string errors
* fix: string fixes
wait for mongoose connection on timetravel
rework broken cron recovery
remove lodash from cron code
remove old cron notification
Simplify cron code
fix unit tests
Remove unnecessary user fetch
Further code simplification
fix test check
lint fix
disable world boss calculation during cron for now
prevent saving user twice in paralllel when leaving group plan
correctly call cron in api call
remove console
fix tests failing
mark cronSignature as modified
fix test
Translated using Weblate (Spanish)
Currently translated at 99.5% (3288 of 3303 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (899 of 899 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (Spanish)
Currently translated at 99.5% (832 of 836 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (German)
Currently translated at 98.8% (826 of 836 strings)
Translated using Weblate (Russian)
Currently translated at 40.8% (100 of 245 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (French)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (Russian)
Currently translated at 40.4% (99 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 40.0% (98 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 40.0% (98 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 39.1% (96 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 91.2% (219 of 240 strings)
Translated using Weblate (Russian)
Currently translated at 38.7% (95 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 38.7% (95 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 38.7% (95 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 37.5% (92 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 37.1% (91 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 36.7% (90 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (60 of 60 strings)
Translated using Weblate (Russian)
Currently translated at 90.8% (218 of 240 strings)
Translated using Weblate (Russian)
Currently translated at 90.8% (218 of 240 strings)
Translated using Weblate (Russian)
Currently translated at 36.3% (89 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 36.3% (89 of 245 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (899 of 899 strings)
Translated using Weblate (Russian)
Currently translated at 99.3% (893 of 899 strings)
Translated using Weblate (Russian)
Currently translated at 99.2% (892 of 899 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (Spanish)
Currently translated at 99.4% (831 of 836 strings)
Translated using Weblate (Hungarian)
Currently translated at 62.6% (2068 of 3303 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.9% (804 of 821 strings)
Translated using Weblate (Portuguese)
Currently translated at 72.0% (602 of 836 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (Spanish)
Currently translated at 99.1% (829 of 836 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.4% (885 of 899 strings)
Translated using Weblate (Portuguese)
Currently translated at 99.6% (896 of 899 strings)
Translated using Weblate (Hungarian)
Currently translated at 57.9% (1915 of 3303 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.4% (800 of 821 strings)
Translated using Weblate (Hungarian)
Currently translated at 57.6% (1903 of 3303 strings)
Translated using Weblate (Hungarian)
Currently translated at 57.5% (1900 of 3303 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.0% (797 of 821 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (836 of 836 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (899 of 899 strings)
Translated using Weblate (Bulgarian)
Currently translated at 84.0% (79 of 94 strings)
Translated using Weblate (Bulgarian)
Currently translated at 84.0% (79 of 94 strings)
Translated using Weblate (Spanish)
Currently translated at 98.4% (823 of 836 strings)
Translated using Weblate (Spanish)
Currently translated at 98.7% (3263 of 3303 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.8% (795 of 821 strings)
Translated using Weblate (Spanish)
Currently translated at 98.3% (822 of 836 strings)
Translated using Weblate (Spanish)
Currently translated at 98.5% (3256 of 3303 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.8% (795 of 821 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.8% (795 of 821 strings)
Translated using Weblate (French)
Currently translated at 98.4% (823 of 836 strings)
Translated using Weblate (French)
Currently translated at 100.0% (3303 of 3303 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.5% (793 of 821 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (899 of 899 strings)
Translated using Weblate (French)
Currently translated at 99.8% (3297 of 3303 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.4% (792 of 821 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (899 of 899 strings)
Translated using Weblate (French)
Currently translated at 99.3% (3280 of 3303 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.7% (897 of 899 strings)
Translated using Weblate (French)
Currently translated at 99.1% (3275 of 3303 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.7% (897 of 899 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.7% (897 of 899 strings)
Translated using Weblate (German)
Currently translated at 100.0% (899 of 899 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.7% (897 of 899 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 97.6% (3187 of 3265 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.7% (897 of 899 strings)
Translated using Weblate (French)
Currently translated at 100.0% (899 of 899 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (262 of 262 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (272 of 272 strings)
Translated using Weblate (Hungarian)
Currently translated at 58.1% (1898 of 3265 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 62.8% (154 of 245 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (15 of 15 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.4% (792 of 821 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (91 of 91 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.2% (378 of 397 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (397 of 397 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (896 of 896 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (896 of 896 strings)
Co-authored-by: Anna <shiloanna007@gmail.com>
Co-authored-by: Besogon <victoria_murka@mail.ru>
Co-authored-by: Céu <marcel.ufscar@gmail.com>
Co-authored-by: ForbiddenFigs <sorautai@outlook.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: Nell Chant <doubletailor@gmail.com>
Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com>
Co-authored-by: Toro Mor <thomas.bizer@gmx.de>
Co-authored-by: Viktor Révész <rviktor@ivankapal.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: razil <boss.razmarin@gmail.com>
Co-authored-by: 小王 <963505255@qq.com>
Co-authored-by: 海岛钓鱼佬 <963505255@qq.com>
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/content/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/death/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/bg/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/hu/
Translation: Habitica/Backgrounds
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Limited
Translation: Habitica/Messages
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Subscriber
5.34.0
Update test.yml (#15397)
combined messages restyling - next round (#15386)
* split component prepare new views / states
* extract empty and disabled state as components
* fix empty state mail icon
* first logic switching between modes, move page to /private-messages/index.vue
* extract autoCompleteHelper.js
* style header + start new message input
* style plus button + focus input
* state logic, types for sanity
* WIP PM new Message started
* add /members/username test
* first design changes to messageCard
* delete private message or chat - based on the mode
* copy as todo
* mention links to modal
* report chat or private message
* WIP likeButton
* likeButton styling
* hide like on private message cards
* fix unit test
* replace copy as todo - to just a copy to clipboard
* style changes
* menu position + like button width
* dropdown items background + like font
* fix like button padding
* move api endpoints and tests around to group inbox methods + like for inbox private messages
* restyle system messages
* Dropdown Radius and Padding
* WIP system messages
* fix lint
* copy delta commit of allowing liking own private messages
* enable liking private messages
* fix menu non hovered item icon color
* fix import path
* ignore background on system messages
* requested changes + migration
* update migration to update the unique id to some messages and delete the duplicates
* migration based on users pagination
* fix(migration): use Promise.all
* change to bulkWrites per User, and all messages in one run (of a user)
* check for array
* use rest operator ...
* skip sorting to get the users
* remove migration, disable like for private messages without uniqueMessageId
* lean+bulkWrite for likes, add time checks for like and auth for further debugging
* add a limit 2 get the messages by uniqueId
* Adding a simple server start script
* remove pinned nodemon dep
* fix inbox controller/tests
* fix / requested style changes
* fix empty state padding /
* hide avatar weapons on messages - fix avatar spacing on messages
* Hourglass Simplification (#15323)
* begin removing obsolete tests
* begin refactoring
* update cron tests
* cleanup
* finish basic implementation of new logic
* add more subscription tests
* subscription test improvements
* return nextHourglassDate again
* fix gem limit
* fix(test): short circuit this.
* fix(admin): correct logic and style for shrimple subs
* WIP(frontend): draft of main subs page view
* fix hourglass count
* Fix hourglass logic for upgrades
* fix admin panel display
* WIP(subs): extant Stripe state
* fix admin panel strings
* fix missing transaction type
* add new field for cumulative subscription count
* show date for hourglass bonus if it was received
* fix test
* feat(subscription): max Gems progress readout
* fix(css): correct and refactor heights and selection states
* fix(subs): correct border-radius and redirect
* fix(stripe): correct redirect after success
* Admin panel display fixes
* don’t give additional HG for new sub if they already got one this month
* fix issue with promo hourglasses
* fix(subscription): update layout when gifting
* fix(subscriptions): more gift layout revisions
* fix(subscriptions): minor visual updates
* fix(subs): pass autoRenews through Stripe
* fix(subs): gifts DON't renew
* fix(lint): unnecessary ternary
* fix(lint): do negate object ig
* fix(subs): try again on gifts
* fix(subs): unhovery and un-12-monthy
* fix bug with incorrectly giving HG bonus
* remove only
* fix test
* fix test
* fix(subs): also redirect to subs after gift sub
* fix(subs): fix typeError
* fix(g1g1): don't try to find Gems promo during bogo
---------
Co-authored-by: Phillip Thelen <phillip@habitica.com>
Co-authored-by: Kalista Payne <sabe@habitica.com>
* chore(sprites): update subproject
* fix(layout): tighten cancellation note
* fix(subs): Google wording and HG escape
* chore(testing): fake g1g1 dates
* fix(subs): don't hide HG preview entirely
* fix(subs): center next hourglass message
* working validatedTextInput.vue within start-new-conversation-input-header.vue 🎉
* fix(git): remove changes from old develop
* Revert "fix(git): remove changes from old develop"
This reverts commit 0e30f7df00.
* fix(git): no actually just this file i guesss
* adding an empty loading state, hiding
* fought the avatar arch nemesis again
* fix chatMessages (party chat) message spacing
* move disabled text back to above the input area - re-enable input area
* show disabled private messages top panel
* fix font color
* fixing uiStates - removing disabled - moving the own user check to the last
* fix(lint): add missing prop defaults
* fix(lint): object default should be fn
* fix(chat): correct grammar in error
* remove weapon position relative
* revert most of avatar.vue changes, add back weapons in chat message UI
* show date tooltip above system / skill messages
* fix toggle disable icon position
* trivial CSS cleanup
* fix(typo): English syntax in test
* chore(test): small style cleanup
* chore(logging): revert debug function
* chore(debug): remove timers from inbox like
---------
Co-authored-by: SabreCat <sabe@habitica.com>
Co-authored-by: Kalista Payne <sabrecat@gmail.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
* improve method signature
* add fallback
* syntax fix
* fix merge error
* facepalm
---------
Co-authored-by: SabreCat <sabe@habitica.com>
Co-authored-by: Kalista Payne <sabrecat@gmail.com>
* log armoire, quoest response and cron events to history
* show user history in admin panel
* allow stats to be edited from admin panel
* Improve admin panel stats input
* improve setting client in history
* fix tests
* fix lint
* fix armoire buying issue
* Improve hero saving
* Formatting fix
* Improve user history logging
* allow class to be changed from admin panel
* make terminating subscriptions easier
* support decimal extraMonths
* Fix editing some achievements in admin panel
* log if a user invites party to quest
* Log more quest events into user history
* make userhistory length configurable
* fix some numbered achievements
* fix extraMonths field
* Automatically set up group plan subs with admin panel
* show party info nicer in admin panel
* improve admin panel sub handling
* add missing brace
* display when there are unsaved changes
* fix setting group plan
* fix showing group id
* Display group plan info in admin panel
* fix setting hourglass promo date
* Improve termination handling in admin panel
* reload data after certain save events in admin panel
* remove console
* fix plan.extraMonths not being reset if terminating a sub
* add more options when cancelling subs
* reload data after group plan change
* Add a way to remove users from a party
* fix issue with removing user from party
* pass party id correctly
* correctly call async function
* Improve sub display in admin panel
* fix line length
* fix line
* shorter
* plaid
* fix(lint): vue code style
---------
Co-authored-by: Kalista Payne <sabrecat@gmail.com>
* Show "Next Hourglass" Month
* fix lint
* lint,
* lint
* lint..
* linting bad
* ui fixes
* remove additional margin
* show next hourglass date to debug further
* WIP tests - maybe broken logic
* flex:1 doesn't work - so stats columns now at 33% width
* fix(cron): lint and short circuit
* refactor logic
* update test dates using timezone
* also check for the timezone date
* fix timezone for tests
* fixing the test dates?
* fixing the test dates?
* change nextHourglass logic + update gem cap label / value
* fix lint
* dont add gemsBought to it
* remove tooltip
Co-authored-by: SabreCat <sabe@habitica.com>
* Log all gem transactions to database
* Also store hourglass transactions
* Fix tests
* Display transaction history in hall of heroes for admins
* add tests to new API call
* hide transaction settings tab for non admins
* fix(lint): remove console
* fix(lint): various automatic corrections
* fix(transactions): use enum expected pluralizations
* fix api unit tests
* fix lint
* fix failing test
* Fix minor inconsistencies
* Log all gem transactions to database
* Also store hourglass transactions
* Fix tests
* Display transaction history in hall of heroes for admins
* add tests to new API call
* hide transaction settings tab for non admins
* fix(lint): remove console
* fix(lint): various automatic corrections
* fix(transactions): use enum expected pluralizations
* fix api unit tests
* fix lint
* Fix minor inconsistencies
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* upgrade stripe module
* switch stripe api to latest version
* fix api version in tests
* start upgrading client and server
* client: switch to redirect
* implement checkout session creation for gems, start implementing webhooks
* stripe: start refactoring one time payments
* working gems and gift payments
* start adding support for subscriptions
* stripe: migrate subscriptions and fix cancelling sub
* allow upgrading group plans
* remove console.log statements
* group plans: upgrade from static page / create new one
* fix#11885, correct group plan modal title
* silence more stripe webhooks
* fix group plans redirects
* implement editing payment method
* start cleaning up code
* fix(stripe): update in-code docs, fix eslint issues
* subscriptions tests
* remove and skip old tests
* skip integration tests
* fix client build
* stripe webhooks: throw error if request fails
* subscriptions: correctly pass groupId
* remove console.log
* stripe: add unit tests for one time payments
* wip: stripe checkout tests
* stripe createCheckoutSession unit tests
* stripe createCheckoutSession unit tests
* stripe createCheckoutSession unit tests (editing card)
* fix existing webhooks tests
* add new webhooks tests
* add more webhooks tests
* fix lint
* stripe integration tests
* better error handling when retrieving customer from stripe
* client: remove unused strings and improve error handling
* payments: limit gift message length (server)
* payments: limit gift message length (client)
* fix redirects when payment is cancelled
* add back "subUpdateCard" string
* fix redirects when editing a sub card, use proper names for products, check subs when gifting
* Issue 10209 - Remove read usages of zone
* Issue 10209 - Add coverage on daysSince and startOfDay cron utility functions
* Issue 10209 - Add unit test for daysUserHasMissed method
* Issue 10209 - Remove usages of deprecated `moment.js#zone` method.
* Issue 10209 - Add helper function to centralise logic
Also simplify timezoneOffsetToUtc function in site.vue
* Issue 10209 - Also add getUtcOffset as method on user
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
* feat(subscriber): award mystery items at cron
* fix(mystery): backfill skipped months
* fix(mystery): adjust subscriber text
* fix(mystery): correct moment logic
and remove irrelevant tests
* fix(mystery): build set one month in advance
* fix(mystery): don't add empty set to Time Travelers
* refactor(mystery): readability
* Fix: moved debuffPotions from vue component
- Move logic of choosing proper debuf potion from vue component to website commons
- introduce new function to get debuffSpellItems
* Fix: move debuffPotions to server
* Refactoring: move setting of debuff potion to func
* Fix: sanity
* Refactoring & Tests:
- Create test case for get and set DebuffPotionItems functions
- Fix setDebuffPotionItems function to not create duplicated debuff items
- Make debuff potion type of items unpinnable
- Move list of debuffs to constant to reuse it in tests and functions
* Fix: typo in test describe
* Fix: translation of unpin
* Fix: setDebuffPotionItems on cron buffs reset
* Fix: use full path for debuff potions
* fix(teams): no hover bg change for noninteractive checkboxes
* feat(teams): send notification to managers on task claim
Also fix client unit test broken by prev commit
* feat(groups): don't penalize for tasks assigned since last activity
* fix(tests): actually fix client unit
* fix(teams): improve task styles
* fix(teams): let people other than leader see relevant approvals
Also more style fixes
* fix(approvals): better filtering and task headings for approval data
* fix(test): correct test expectations for new GET /approvals behavior
* fix(groups): style tweaks
* different border for group and normal tasks
* fix(teams): remove extra click for claiming
* fix(teams): leaders & managers can check off approval-required tasks
* fix(teams): don't notify user of own claim
* fix group task margin and z-index on hover
* fix(menu): sporadic error in top bar
* fix(teams): more approval header and footer adjustments
* fix(tests): adjust expectations for self-approval
* fix(teams): address PR comments
* refactor(timestamps): date user activity on authenticated requests
* refactor(timestamps): update local user instead of direct db update
* WIP(analytics): add / improve tracking
* fix(groups): revert attempt at tracking on group model
* fix(analytics): track questing based on user data
* each buy-operation now has a getItemType method - typo getItemKey - removed unneeded overrides
* remove commented-out code for purging PMs - no longer needed
https://github.com/HabitRPG/habitica/issues/7940#issuecomment-406489506
* adjust comments
* move cron code when sleeping / resting back into main body of cron code
* rename tests to use consistent terminology for sleeping
* add tests for cron when user is sleeping
* move sleeping tests to same place as non-sleeping test
This matches how the code has sleeping and non-sleeping code mingled.
* replace a broken test with new tests
The deleted test wasn't working correctly. The check that the user's
health hadn't decreased would have worked even if the user wasn't
sleeping because the Daily had been marked completed.
The new tests test both no damage from incomplete Dailies and
that Dailies are reset.
* add tests for Perfect Day buff and rename existing tests for consistent terminology
* remove old test code
* allow Hourglasses and gemCapExtra to increase promptly after a multi-month subscription has renewed
* fix existing Hourglass and Gem Cap tests that were wrong
The scenario originally used for these two tests was a six-month recurring
subscription (you can tell that from the starting offset having a non-zero value).
For recurring subscriptions, we do NOT want to increase the consecutive month
benefits as soon as the sixth month starts because the user has already been
given a full six months' benefits in advance and they might cancel the
subscription before it renews later in the sixth month.
Therefore we want to give the extra benefits at the beginning of the seventh
month (ideally we'd give them mid-month in the sixth month when the renewal
happens but we don't have support for tracking renewal dates).
So, the two changed tests were actually not correct for the case
where the offset started as non-zero.
These tests are correct for one-month recurring subscriptions (when the offset
is never set to anything above zero). The user isn't meant to get any consecutive
month benefits until a multiple of 3 months has been reached.
* add tests for one-month recurring subscription before 3x months are reached
* add tests for 3-, 6-, and 12-month recurring subscriptions
The 3-month tests are the most thorough, stepping through the
expected start and end values of consecutive data for a 7-month
range.
The 6-month tests are a bit less thorough since the same code is
used for all multi-month periods.
The discount Google subscription code is used to ensure we keep
support for it.
The 12-month tests are less thorough still, since again the same
code is used.
I'm about to try some more tests with `useFakeTimers`, which should
be a better way to test the code since they won't rely on me having
set the initial values correctly for each test. :) But I wanted to
work through these cases manually first to ensure my understanding
of how the values should change does actually match the code.
* add tests for 1-, 3-, 6-, and 12-month recurring subscriptions using clock changes to simulate passing months
Also fixed the clock call in an unrelated test because it was forming
the date incorrectly (`unix()` can't be used to create a date).
Also changed email@email.email to email@example.com because
email@email.email is potentially a real email address.
* add tests for 3-month gift subscriptions - no extra consecutive benefits given
* add tests for consecutive benefits for 6-month recurring subscription that has incorrect consecutive month data because it started before issue #4819 was fixed
* fix lint errors
* remove outdated subscription tests
* dailies history date added in scoreTask instead of cron
* fix lint issues
* changes based on feedback. Undo cron code deletion and deleted iteration on scoreTask
* fix lint issues
* add task history entry in cron for dailies that weren't completed
* add history entry after value is fully evaluated
* Add support for `multiDaysCountAsOneDay == false` to evasion
`if (dailiesDaysMissed > 1) dailiesDaysMissed = 1;` causes the evasion for-loop to only evaluate once even if `multiDaysCountAsOneDay == false`. This statement isn't necessary because `if (multiDaysCountAsOneDay) break;` will cause the for-loop to evaluate only once if `multiDaysCountAsOneDay == true`. Removing this statement makes the `dailiesDaysMissed` variable unnecessary.
* Moves break statement out of conditional