-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Повторяющиеся ачивки #163
Повторяющиеся ачивки #163
Conversation
# при условии, что по этому ключу будет список с id-шнниками новых иос-ачивок. Если будут названия, надо написать сравнение с названиями из query | ||
self._new_achievements.extend(ios_achievements) | ||
if self._new_ios_achievements is not None: | ||
self._new_achievements.extend(self._new_ios_achievements) | ||
|
||
def _query_unfinished_achievements(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ничего не понял. Почему просто не исключить одним запросом полученные ачивки и ачивки iOS?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ничего не понял. Почему просто не исключить одним запросом полученные ачивки и ачивки iOS?
Потому что полученные могут быть повторяемыми, и тогда их нельзя исплючать.
backend/utils/achievements.py
Outdated
id__in=UserAchievement.objects.filter(user_id=self._user.id).values("achievement_id") | ||
) | ||
self._unfinished_achievements = unfinished_non_ios.union(recurring_non_ios) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тут любопытно, unfinished_non_ios.union(recurring_non_ios)
меняет unfinished_non_ios
, мы правда больше негде не используем её, но мне видится что лучше было бы так unfinished_non_ios | recurring_non_ios
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Прикольно. А по сути это то же самое, объединение множеств (кверисетов) ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не совсем в 1 случае меняем объект unfinished_non_ios а потом даем ссылку на него в self._unfinished_achievements(то есть unfinished_non_ios и self._unfinished_achievements ссылаются на 1 объект), а в unfinished_non_ios | recurring_non_ios создается новый объект на который ссылается только self._unfinished_achievements, не знаю как это можно использовать и что лучше. Хотя я подумал что не факт что qweryset имеет все методы set... и я зря это пишу.
Добавил поле повторяющихся ачивок
Подправил фикстуры
Исправил некоторые опечатки
Пофиксил баг в логах
Добавил тесты
Сделал константы в utils для констант, надо туда потихоньку мигрировать
В валидаторы теперь передается история
Сделал логику обновления ачивок
Наколдовал вроде query для формирования кверисета для проверки ачивок
Ну и замкнул чтобы возвращались новые ачивки во вьюхе
Вроде, все, наверное что-то забыл