示例#1
0
def classcard_info():
    """
        Page to list permissions for a subscription
    """
    from openstudio.os_customer_classcard import CustomerClasscard

    ccdID = request.vars['ccdID']
    response.title = T('Profile')
    response.subtitle = T('Class card info')
    response.view = 'shop/index.html'

    # Check of the subscriptions feature is enabled
    features = db.customers_profile_features(1)
    if not features.Classcards:
        redirect(URL('profile', 'index'))

    # Check if this subscription belongs to the currently signed in user
    ccd = CustomerClasscard(ccdID)
    if ccd.classcard.auth_customer_id != auth.user.id:
        session.flash = T("That class card doesn't belong to this user")
        return URL('profile', 'index')

    content = DIV(H4(T('Class access'), ' ', ccd.name),
                  ccd.get_class_permissions(formatted=True))

    back = os_gui.get_button('back', URL('profile', 'index'))

    return dict(content=content, back=back)
示例#2
0
    def get_subscriptions_and_classcards_formatted(self,
                                                   date,
                                                   new_cards=True,
                                                   show_subscriptions=True):
        """
            Returns a formatted list of subscriptions and classcards for
            a customer
        """
        from openstudio.os_customer_classcard import CustomerClasscard
        from openstudio.os_customer_subscriptions import CustomerSubscriptions

        DATE_FORMAT = current.DATE_FORMAT
        T = current.T
        os_gui = current.globalenv['os_gui']

        cuID = self.cuID
        subscription = ''
        has_subscription = False
        if show_subscriptions:
            subscriptions = self.get_subscriptions_on_date(date)
            if subscriptions:
                has_subscription = True
                subscription = DIV()
                for cs in subscriptions:
                    csID = cs.customers_subscriptions.id
                    # dates
                    subscr_dates = SPAN(
                        ' [',
                        cs.customers_subscriptions.Startdate.strftime(
                            DATE_FORMAT))
                    if cs.customers_subscriptions.Enddate:
                        subscr_dates.append(' - ')
                        subscr_dates.append(
                            cs.customers_subscriptions.Enddate.strftime(
                                DATE_FORMAT))
                    subscr_dates.append('] ')
                    # credits
                    #TODO: Add check for system setting if we should show the credits
                    subscr_credits = ''
                    if cs.customers_subscriptions.CreditsRemaining:
                        subscr_credits = SPAN(
                            XML(' • '),
                            round(cs.customers_subscriptions.CreditsRemaining,
                                  1), ' ', T('Credits'))
                    subscription.append(
                        SPAN(cs.school_subscriptions.Name, subscr_dates,
                             subscr_credits))

                    cs = CustomerSubscriptions(csID)
                    paused = cs.get_paused(date)
                    if paused:
                        pause_text = SPAN(' | ', paused, _class='bold')
                        subscription.append(pause_text)
                    subscription.append(BR())

        # get class card for customer
        has_classcard = False
        customer_classcards = self.get_classcards(date)
        if customer_classcards:
            has_classcard = True
            classcards = DIV()
            for card in customer_classcards:
                ccdID = card.customers_classcards.id
                classcard = CustomerClasscard(ccdID)
                remaining_classes = classcard.get_classes_remaining()
                if not remaining_classes:
                    continue

                try:
                    enddate = card.customers_classcards.Enddate.strftime(
                        DATE_FORMAT)
                except AttributeError:
                    enddate = T('No expiry')

                classcards.append(
                    SPAN(card.school_classcards.Name, XML(' • '),
                         T('expires'), ' ', enddate, XML(' • '),
                         remaining_classes))

                if not card.school_classcards.Unlimited:
                    classcards.append(SPAN(' ', T("Classes remaining")))

                classcards.append(BR())

        else:
            classcards = T("")

        # format data for display
        subscr_cards = TABLE(_class='grey small_font')

        if not has_subscription and not has_classcard:
            if show_subscriptions:
                subscr_cards.append(
                    DIV(T("No subscription or class card"), _class='red'))
                latest = self.get_subscription_latest()
                subscr_cards.append(latest if latest else '')

        else:
            if subscription and show_subscriptions:
                subscr_cards.append(TR(subscription))
            if classcards:
                subscr_cards.append(TR(classcards))

        return subscr_cards