message_id = int(raw_value) except ValueError: self.raise_wrong_format() message = tt_api.get_message(context.account.id, message_id) if not message: self.raise_wrong_value() return message ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='personal_messages') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) resource.add_processor(accounts_views.LoginRequiredProcessor()) resource.add_processor(accounts_views.FullAccountProcessor()) ######################################## # views ######################################## @utils_views.PageNumberProcessor() @utils_views.TextFilterProcessor(get_name='filter', context_name='filter', default_value=None) @resource('')
raw_value = raw_value.split(',') if len(raw_value) != 6: self.raise_wrong_format() for value in raw_value: if not isinstance(value, str): self.raise_wrong_format() return raw_value ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='game') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) resource.add_processor(heroes_views.CurrentHeroProcessor()) ######################################## # views ######################################## @accounts_views.LoginRequiredProcessor() @resource('') def game_page(context): battle = Battle1x1Prototype.get_by_account_id(context.account.id)
id = int(raw_value) except ValueError: self.raise_wrong_format() news = logic.load_news(id) if news is None: self.raise_wrong_value() return news ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='news') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) resource.add_processor(EditNewsProcessor()) @utils_views.PageNumberProcessor() @resource('') def index(context): url_builder = UrlBuilder(url('news:'), arguments={'page': context.page}) news_count = models.News.objects.all().count() paginator = Paginator(context.page, news_count, conf.settings.NEWS_ON_PAGE, url_builder)
def parse(self, context, raw_value): try: id = int(raw_value) except ValueError: self.raise_wrong_format() if id not in storage.companions: self.raise_wrong_value() return storage.companions.get(id) ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='companions') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) resource.add_processor(CreateCompanionProcessor()) resource.add_processor(ModerateCompanionProcessor()) ######################################## # filters ######################################## INDEX_TYPE = list_filter.filter_relation(beings_relations.TYPE) INDEX_DEDICATION = list_filter.filter_relation(relations.DEDICATION) INDEX_ABILITIES = list_filter.filter_relation(abilities_effects.ABILITIES, sort_key=lambda r: r.text)
place_id = int(raw_value) except ValueError: self.raise_wrong_format() place = storage.places.get(place_id) if not place: self.raise_wrong_value() return place ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='places') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) ######################################## # views ######################################## @api.Processor(versions=(conf.settings.API_LIST_VERSION, )) @resource('api', 'list', name='api-list') def api_list(context): data = {'places': {}} for place in storage.places.all(): place_data = { 'name': place.name,
from the_tale.game.places import storage as places_storage from the_tale.game.places import info as places_info from the_tale.game.abilities.relations import ABILITY_TYPE from . import conf from . import models ######################################## # processors definition ######################################## ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='map') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) ######################################## # views ######################################## @resource('') def index(context): return dext_views.Page('map/index.html', content={ 'current_map_version': map_info_storage.version, 'resource': context.resource })
GET_NAME = 'purchase' CONTEXT_NAME = 'purchase' def parse(self, context, raw_value): id = raw_value if id not in price_list.PURCHASES_BY_UID: self.raise_wrong_value() return price_list.PURCHASES_BY_UID.get(id) ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='shop') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) resource.add_processor(accounts_views.LoginRequiredProcessor()) resource.add_processor(accounts_views.FullAccountProcessor()) resource.add_processor(accounts_views.BanGameProcessor()) resource.add_processor(third_party_views.RefuseThirdPartyProcessor()) resource.add_processor(XsollaEnabledProcessor()) @resource('') def index(context): if context.account.is_premium: return dext_views.Redirect(target_url=url('market:')) return dext_views.Redirect(target_url=url('shop:shop'))
class GoodProcessor(dext_views.ArgumentProcessor): CONTEXT_NAME = 'good' ERROR_MESSAGE = u'Неверный идентификатор товара' GET_NAME = 'good' def parse(self, context, raw_value): if not context.account_goods.has_good(raw_value): self.raise_wrong_value() return context.account_goods.get_good(raw_value) ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='market') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) resource.add_processor(accounts_views.LoginRequiredProcessor()) resource.add_processor(accounts_views.FullAccountProcessor()) resource.add_processor(accounts_views.BanGameProcessor()) resource.add_processor(GoodsProcessor()) resource.add_processor(shop_views.XsollaEnabledProcessor()) ######################################## # filters ######################################## def filter_groups_choices(choice_element): choices = [(None, u'все')]
PERMISSION = 'accounts.moderate_account' CONTEXT_NAME = 'can_moderate_accounts' class ModerateAccessProcessor(dext_views.AccessProcessor): ERROR_CODE = 'accounts.no_moderation_rights' ERROR_MESSAGE = 'Вы не являетесь модератором' def check(self, context): return context.can_moderate_accounts ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='') resource.add_processor(CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) ############################### # new views ############################### accounts_resource = dext_views.Resource(name='accounts') accounts_resource.add_processor( AccountProcessor(error_message='Аккаунт не найден', url_name='account', context_name='master_account', default_value=None)) accounts_resource.add_processor(ModerateAccountProcessor())
self.raise_wrong_format() for card_uid in cards_uids: if not context.account_hero.cards.has_card(card_uid=card_uid): self.raise_wrong_value() return [ context.account_hero.cards.get_card(card_uid) for card_uid in cards_uids ] ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='cards') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) resource.add_processor(heroes_views.CurrentHeroProcessor()) guide_resource = dext_views.Resource(name='cards') guide_resource.add_processor(accounts_views.CurrentAccountProcessor()) guide_resource.add_processor(utils_views.FakeResourceProcessor()) ######################################## # filters ######################################## class INDEX_ORDER(DjangoEnum): records = (('RARITY', 0, u'по редкости'), ('NAME', 1, u'по имени'))
places_storage.places.get_choices()), list_filter.choice_element('мастер:', attribute='person', choices=lambda x: [(None, 'все')] + persons_objects.Person.form_choices()) ] class HistoryFilter(list_filter.ListFilter): ELEMENTS = HISTORY_FILTERS ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='politic-power') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) ######################################## # views ######################################## @dext_views.RelationArgumentProcessor(relation=POWER_TYPE_FILTER, error_message='неверный тип влияния', default_value=POWER_TYPE_FILTER.ALL, get_name='power_type', context_name='power_type') @accounts_views.AccountProcessor(error_message='Игрок не найден', get_name='account',
PERMISSION = 'accounts.moderate_account' CONTEXT_NAME = 'can_moderate_accounts' class ModerateAccessProcessor(dext_views.AccessProcessor): ERROR_CODE = 'accounts.no_moderation_rights' ERROR_MESSAGE = 'Вы не являетесь модератором' def check(self, context): return context.can_moderate_accounts ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='') resource.add_processor(CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) ############################### # new views ############################### accounts_resource = dext_views.Resource(name='accounts') accounts_resource.add_processor(AccountProcessor(error_message='Аккаунт не найден', url_name='account', context_name='master_account', default_value=None)) accounts_resource.add_processor(ModerateAccountProcessor()) resource.add_child(accounts_resource) registration_resource = dext_views.Resource(name='registration')
try: cards_uids = [uuid.UUID(card_id.strip()) for card_id in raw_value] except ValueError: self.raise_wrong_format() for card_uid in cards_uids: if card_uid not in context.account_cards: self.raise_wrong_value() return [context.account_cards[card_uid] for card_uid in cards_uids] ######################################## # resource and global processors ######################################## resource = dext_views.Resource(name='cards') resource.add_processor(accounts_views.CurrentAccountProcessor()) resource.add_processor(utils_views.FakeResourceProcessor()) resource.add_processor(heroes_views.CurrentHeroProcessor()) guide_resource = dext_views.Resource(name='cards') guide_resource.add_processor(accounts_views.CurrentAccountProcessor()) guide_resource.add_processor(utils_views.FakeResourceProcessor()) technical_resource = dext_views.Resource(name='cards') ######################################## # filters ########################################