Exemplo n.º 1
0
            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('')
Exemplo n.º 2
0
        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)
Exemplo n.º 3
0
            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)
Exemplo n.º 4
0
    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)

Exemplo n.º 5
0
            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,
Exemplo n.º 6
0
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
                           })
Exemplo n.º 7
0
    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'))
Exemplo n.º 8
0
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'все')]
Exemplo n.º 9
0
    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())
Exemplo n.º 10
0
            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'по имени'))
Exemplo n.º 11
0
                               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',
Exemplo n.º 12
0
    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')
Exemplo n.º 13
0
        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
########################################