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)
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