Ejemplo n.º 1
0
def get_collections_statistics(account_items):

    statistics = {
        'total_items_in_collections': {},
        'total_items_in_kits': {},
        'account_items_in_collections': {},
        'account_items_in_kits': {},
        'total_items': 0,
        'account_items': 0
    }

    items_in_kits, items_in_collections = get_items_count(items_storage.all())
    statistics['total_items_in_kits'] = items_in_kits
    statistics['total_items_in_collections'] = items_in_collections
    statistics['total_items'] = sum(items_in_collections.values())

    if account_items:
        items_in_kits, items_in_collections = get_items_count(
            item for item in items_storage.all()
            if item.id in account_items.items_ids())
        statistics['account_items_in_kits'] = items_in_kits
        statistics['account_items_in_collections'] = items_in_collections
        statistics['account_items'] = sum(items_in_collections.values())

    return statistics
Ejemplo n.º 2
0
    def show(self, account=None):

        if account is None and self.account.is_authenticated:
            return self.redirect(
                url('collections:collections:show',
                    self.collection.id,
                    account=self.account.id))

        self.master_account = account

        master_account_items = None
        if self.master_account:
            master_account_items = AccountItemsPrototype.get_by_account_id(
                self.master_account.id)

        account_items = None
        if self.account.is_authenticated:
            account_items = AccountItemsPrototype.get_by_account_id(
                self.account.id)

        collections_statistics = get_collections_statistics(
            account_items=master_account_items)

        kits = sorted([
            kit for kit in kits_storage.all()
            if kit.collection_id == self.collection.id
        ],
                      key=lambda k: k.caption)

        if not (self.can_edit_kit or self.can_moderate_kit):
            kits = [kit for kit in kits if kit.approved]

        items = {kit.id: [] for kit in kits}

        items_query = items_storage.all()

        if not self.edit_item_permission and not self.moderate_item_permission:
            items_query = (item for item in items_query if item.approved)

        items_query = sorted(
            [item for item in items_query if item.kit_id in items],
            key=lambda i: i.caption)

        for item in items_query:
            items[item.kit_id].append(item)

        return self.template(
            'collections/collections/show.html', {
                'kits': kits,
                'items': items,
                'account_items': account_items,
                'master_account_items': master_account_items,
                'collections_statistics': collections_statistics
            })
Ejemplo n.º 3
0
def get_collections_statistics(account_items):

    statistics = {'total_items_in_collections': {},
                  'total_items_in_kits': {},
                  'account_items_in_collections': {},
                  'account_items_in_kits': {},
                  'total_items': 0,
                  'account_items': 0}

    items_in_kits, items_in_collections = get_items_count(items_storage.all())
    statistics['total_items_in_kits'] = items_in_kits
    statistics['total_items_in_collections'] = items_in_collections
    statistics['total_items'] = sum(items_in_collections.values())

    if account_items:
        items_in_kits, items_in_collections = get_items_count(item for item in items_storage.all() if item.id in account_items.items_ids())
        statistics['account_items_in_kits'] = items_in_kits
        statistics['account_items_in_collections'] = items_in_collections
        statistics['account_items'] = sum(items_in_collections.values())

    return statistics
Ejemplo n.º 4
0
    def show(self, account=None):

        if account is None and self.account.is_authenticated:
            return self.redirect(url('collections:collections:show', self.collection.id, account=self.account.id))

        self.master_account = account

        master_account_items = None
        if self.master_account:
            master_account_items = AccountItemsPrototype.get_by_account_id(self.master_account.id)

        account_items = None
        if self.account.is_authenticated:
            account_items = AccountItemsPrototype.get_by_account_id(self.account.id)

        collections_statistics = get_collections_statistics(account_items=master_account_items)


        kits = sorted([kit for kit in kits_storage.all() if kit.collection_id == self.collection.id], key=lambda k: k.caption)

        if not (self.can_edit_kit or self.can_moderate_kit):
            kits = [kit for kit in kits if kit.approved]

        items = {kit.id: [] for kit in kits}

        items_query = items_storage.all()

        if not self.edit_item_permission and not self.moderate_item_permission:
            items_query = (item for item in items_query if item.approved)

        items_query = sorted([item for item in items_query if item.kit_id in items], key=lambda i: i.caption)

        for item in items_query:
            items[item.kit_id].append(item)

        return self.template('collections/collections/show.html',
                             {'kits': kits,
                              'items': items,
                              'account_items': account_items,
                              'master_account_items': master_account_items,
                              'collections_statistics': collections_statistics})