-
Notifications
You must be signed in to change notification settings - Fork 3
proposed_content
Moduł odpowiedzialny za obsługę proponowanych karty tworzonych w Edytorze Kart.
W przyszłości moduł ten będzie odpowiedzialny także za obsługę proponowanych historii do Trybu Adventure oraz proponowanych pytań do Quizów.
Architektura bazy danych proponowanych kart czerpie wszystko z architektury bazy danych kart.
Różni się jedynie następującymi encjami:
-
Zamiast CardInfo mamy ProposedCardInfo
ProposedCardInfo przechowuje podstawowe informacje o proponowanej karcie (nazwa, opis, ...). Ma takie same atrybuty, jak CardInfo
-
Zamiast Card mamy ProposedCard
ProposedCard Przechowuje informacje o konkretnych poziomach danej proponowanej karty. Ma takie same atrybuty, jak Card
-
Zamiast CardLevelEffects mamy ProposedCardLevelEffects
ProposedCardLevelEffects przechowuje informacje o efektach proponowanej karty na danym poziomie. Ma takie same atrybuty, jak CardLevelEffects
Wszystkie modele dziedziczą z bazowych abstrakcyjnych modeli zagnieżdżonych wewnątrz funkcji. By zrozumieć ten mechanizm warto przeczytać tę sekcję.
TODO: osobna sekcja z prostym przykładem tłumaczącym mechanizm
class ProposedCardInfo(base_card_info_factory('proposed_content/cards/images/'))
ProposedCardInfo
przechowuje podstawowe informacje o zaproponowanej karcie.
Dziedziczy pola z abstrakcyjnej karty BaseCardInfo
tworzonej w funkcji base_card_info_factory
. (Dlaczego nie dziedziczy po prostu z BaseCardInfo
? Wytłumaczone tutaj).
class ProposedCard(base_card_factory(ProposedCardInfo))
ProposedCard
przechowuje informacje o danym poziomie proponowanej karty.
Dziedziczy pola z abstrakcyjnej karty BaseCard
tworzonej w funkcji base_card_factory
. (Dlaczego nie dziedziczy po prostu z BaseCard
? Wytłumaczone tutaj).
class ProposedCardLevelEffects(base_card_level_effects_factory(ProposedCard))
ProposedCardLevelEffects
przechowuje informacje o tym, jakie efekty ma proponowane karta na danym poziomie.
Dziedziczy pola z abstrakcyjnej karty BaseCardLevelEffects
tworzonej w funkcji base_card_level_effects_factory
. (Dlaczego nie dziedziczy po prostu z BaseCardLevelEffects
? Wytłumaczone tutaj).
Tak samo, jak modele, serializery dziedziczą z bazowych serializerów zagnieżdżonych w funkcji. Motywacją do użycia tego mechanizmu tworzenia bazowych serializerów jest ponowne użycie kodu stworzonego w module Cards.
class SimpleProposedCardLevelEffectsSerializer(base_simple_card_lvl_efcts_ser_factory(ProposedCardLevelEffects)):
Dziedziczy wszystkie reguły serializacji z BaseSimpleCardLevelEffectsSerializer.
class SimpleProposedCardSerializer(base_simple_card_serializer_factory(Card, SimpleProposedCardLevelEffectsSerializer)):
Dziedziczy wszystkie reguły serializacji z BaseSimpleCardSerializer.
class WholeProposedCardSerializer(base_whole_card_serializer_factory(ProposedCardInfo, SimpleProposedCardSerializer)):
"""
(De)Serializes Card as a whole, packs all the information scattered across many models in one serializer.
Information like:
- card name
- card image
- card tooltip
- all possible card's levels
- all effects on given card's level
etc.
See: base_whole_card_serializer_factory
"""
Dziedziczy wszystkie reguły serializacji z BaseWholeCardSerializer.
WMI Adventure
Dokumentacja
- System punktów
- API
- Backend
-
Frontend
- Struktura plików
- Komponenty:
-
Komponent CardsCreator
- Atoms:
- Organisms:
-
Komponent CardsCreator