def post(self): if not self.is_logged_in(): self.redirect(LOGIN_PAGE_URL) else: customer = Customer.get_by_key_name(self.get_current_username()) customer.first_name = self.get_argument('first_name') customer.last_name = self.get_argument('last_name') customer.timezone = self.get_argument('timezone') landline_key = self.get_argument('landline_key') landline = db.get(db.Key(landline_key)) landline.number = self.get_argument('landline_number') mobile_key = self.get_argument('mobile_key') mobile = db.get(db.Key(mobile_key)) mobile.number = self.get_argument('mobile_number') location_key = self.get_argument('location_key') location = db.get(db.Key(location_key)) location.city = self.get_argument('city') location.country = self.get_argument('country') location.state_or_province = self.get_argument('state_or_province') location.area_or_suburb = self.get_argument('area_or_suburb') location.street_name = self.get_argument('street_name') location.zip_code = self.get_argument('zip_code') db.put([customer, mobile, landline, location]) self.get()
def post(self): if not self.is_logged_in(): self.redirect(LOGIN_PAGE_URL) else: machine_id = self.get_argument('machine_id') timezone = self.get_argument('timezone') deactivation_entry_code = self.get_argument('deactivation_entry_code') customer = Customer.get_by_key_name(self.get_current_username()) activation_credentials = ActivationCredentials.get_all_for_customer_and_machine_id(customer=customer, machine_id=machine_id) activation_credentials_list = [] for credentials in activation_credentials: credentials_id = credentials.key().id() serial_number = self.get_argument('serial_number_ac_%d' % credentials_id) activation_code = self.get_argument('activation_code_ac_%d' % credentials_id) if serial_number == credentials.serial_number and activation_code == credentials.activation_code: credentials.deactivation_code = self.get_argument('deactivation_code_ac_%d' % credentials_id) credentials.deactivation_entry_code = deactivation_entry_code credentials.timezone = timezone credentials.when_deactivated = datetime.utcnow() activation_credentials_list.append(credentials) else: pass # Error. db.put(activation_credentials_list) self.redirect('/dashboard')
def post(self): machine_id = self.get_argument('machine_id') customer = Customer.get_by_key_name(session.get_current_username()) credentials = ActivationCredentials.get_all_active_for_customer_and_machine_id( customer=customer, machine_id=machine_id) self.set_header('Content-Type', 'application/json') self.write(json.dumps(len(credentials) > 0))
def get(self): if not self.is_logged_in(): self.redirect(LOGIN_PAGE_URL) else: customer = Customer.get_by_key_name(self.get_current_username()) subscriptions = [] for order in customer.orders: subscriptions.append(order.subscription) self.render('unsubscribe.html', subscriptions=subscriptions)
def post(self): if not self.is_logged_in(): self.redirect(LOGIN_PAGE_URL) else: customer = Customer.get_by_key_name(self.get_current_username()) if customer.is_password_correct(self.get_argument('old_password')): p = hash_password(self.get_argument('new_password')) customer.password_hash = p[0] customer.password_salt = p[1] customer.put() self.redirect('/dashboard')
def post(self): email = self.get_argument('login-email') password = self.get_argument('login-password') customer = Customer.get_by_key_name(email) if customer: if customer.is_password_correct(password): self.do_login(email) self.redirect('/dashboard') else: self.redirect('/?error=login_failed') else: self.redirect('/?error=login_failed')
def post(self): if not self.is_logged_in(): self.redirect(LOGIN_PAGE_URL) else: machine_id = self.get_argument('machine_id') timezone = self.get_argument('timezone') deactivation_entry_code = self.get_argument('deactivation_entry_code') customer = Customer.get_by_key_name(self.get_current_username()) activation_credentials = ActivationCredentials.get_all_active_for_customer_and_machine_id(customer=customer, machine_id=machine_id) self.render('deinstall_maths_english_input.html', activation_credentials=activation_credentials, customer=customer, machine_id=machine_id, timezone=timezone, deactivation_entry_code=deactivation_entry_code)
def get(self): if not self.is_logged_in(): self.redirect(LOGIN_PAGE_URL) else: customer = Customer.get_by_key_name(self.get_current_username()) if customer.has_active_activation_credentials(): from activation import generate_deactivation_entry_code from pytz.gae import pytz deactivation_entry_code = generate_deactivation_entry_code(timezone=customer.timezone) self.render('deinstall_maths_english.html', default_timezone=customer.timezone, deactivation_entry_code=deactivation_entry_code, timezones=pytz.all_timezones) else: self.render('deinstall_no_active_subscriptions.html')
def post(self): from activation import generate_deactivation_entry_code timezone = self.get_argument('timezone') customer = Customer.get_by_key_name(self.get_current_username()) customer.timezone = timezone customer.put() deactivation_entry_code = generate_deactivation_entry_code(timezone=timezone) self.set_header('Content-Type', 'application/json') self.write(json.dumps({ 'deactivationEntryCode': deactivation_entry_code, 'timezone': timezone, }))
def get(self): if not self.is_logged_in(): self.redirect(LOGIN_PAGE_URL) else: from pytz.gae import pytz customer = Customer.get_by_key_name(self.get_current_username()) landline = Phone.all().filter('profile = ', customer).filter('phone_type = ', 'landline').get() mobile = Phone.all().filter('profile = ', customer).filter('phone_type = ', 'mobile').get() self.render('profile.html', countries=COUNTRIES_TUPLE, landline=landline, mobile=mobile, customer=customer, location=customer.locations[0], default_timezone=customer.timezone, timezones=pytz.all_timezones)
def post(self): # Get customer and create an invoice. customer = Customer.get_by_key_name(self.get_current_username()) invoice = Invoice(customer=customer) invoice.put() # Now start processing subscription data. subscription_data = self.session['subscription-data'] products = db.get([db.Key(key) for key in subscription_data.get('products')]) period = subscription_data.get('period') subscription_period = SubscriptionPeriod.get_by_period(period) units = [product for product in products if 'product_keys' not in product.properties()] baskets = [product for product in products if 'product_keys' in product.properties()] activation_credentials_list = [] orders = [] for unit in units: subscription = Subscription.get_by_product_and_period(unit, period) order = Order(customer=customer, invoice=invoice, subscription=subscription) order.subscription_price = subscription.price order.subscription_general_sales_tax = subscription.general_sales_tax order.subscription_period_in_months = subscription.period_in_months order.subscription_free_period_in_months = subscription_period.free_period_in_months order.price = subscription.price + subscription.general_sales_tax order.subscription_currency = subscription.currency orders.append(order) order.put() unit_id = unit.key().id() activation_credentials = ActivationCredentials() activation_credentials.serial_number = self.get_argument('u_%d_serial_number' % unit_id) activation_credentials.machine_id = self.get_argument('u_%d_machine_id' % unit_id) activation_credentials.order = order activation_credentials.product = unit activation_credentials.customer = customer logging.info(activation_credentials) activation_credentials_list.append(activation_credentials) for basket in baskets: subscription = Subscription.get_by_product_and_period(basket, period) order = Order(customer=customer, invoice=invoice, subscription=subscription) order.subscription_price = subscription.price order.subscription_general_sales_tax = subscription.general_sales_tax order.subscription_period_in_months = subscription.period_in_months order.subscription_free_period_in_months = subscription_period.free_period_in_months order.price = subscription.price + subscription.general_sales_tax order.subscription_currency = subscription.currency orders.append(order) order.put() for unit in basket.products: basket_id = basket.key().id() unit_id = unit.key().id() activation_credentials = ActivationCredentials() activation_credentials.serial_number = self.get_argument('b_%d_u_%d_serial_number' % (basket_id, unit_id,)) activation_credentials.machine_id = self.get_argument('b_%d_u_%d_machine_id' % (basket_id, unit_id,)) activation_credentials.order = order activation_credentials.product = unit activation_credentials.customer = customer logging.info(activation_credentials) activation_credentials_list.append(activation_credentials) db.put(activation_credentials_list) invoice.total_price = sum([order.price for order in orders]) invoice.currency = orders[0].subscription_currency invoice.put() self.session['activation-invoice-key'] = str(invoice.key()) self.redirect('/activate/overview')
def get(self): if not self.is_logged_in(): self.redirect(LOGIN_PAGE_URL) else: customer = Customer.get_by_key_name(self.get_current_username()) self.render('dashboard.html', customer=customer)