def format_strikeout_price(user, course, base_price=None, check_for_discount=True): """ Return a formatted price, including a struck-out original price if a discount applies, and also whether a discount was applied, as the tuple (formatted_price, has_discount). """ if base_price is None: base_price = get_course_prices(course, verified_only=True)[0] original_price = format_course_price(base_price) if not check_for_discount or can_receive_discount(user, course): discount_price = base_price * ( (100.0 - discount_percentage(course)) / 100) if discount_price == int(discount_price): discount_price = format_course_price( "{:0.0f}".format(discount_price)) else: discount_price = format_course_price( "{:0.2f}".format(discount_price)) # Separate out this string because it has a lot of syntax but no actual information for # translators to translate formatted_discount_price = HTML( u"{s_dp}{discount_price}{e_p} {s_st}{s_op}{original_price}{e_p}{e_st}" ).format( original_price=original_price, discount_price=discount_price, s_op=HTML("<span class='price original'>"), s_dp=HTML("<span class='price discount'>"), s_st=HTML("<del aria-hidden='true'>"), e_p=HTML("</span>"), e_st=HTML("</del>"), ) return (HTML( _(u"{s_sr}Original price: {s_op}{original_price}{e_p}, discount price: {e_sr}{formatted_discount_price}" )).format( original_price=original_price, formatted_discount_price=formatted_discount_price, s_sr=HTML("<span class='sr-only'>"), s_op=HTML("<span class='price original'>"), e_p=HTML("</span>"), e_sr=HTML("</span>"), ), True) else: return (HTML(u"<span class='price'>{}</span>").format(original_price), False)
def get_course_price(self, model): registration_price, course_price = get_course_prices(model) return course_price
def user_courseenrollment_post_save_callback(sender, instance, **kwargs): marketo_data = {} marketo_data["action"] = "createOrUpdate" marketo_data["lookupField"] = "enrollmentId" input_dict = {} input_list = [] enrollment_id = instance.id email = instance.user.email course_id = instance.course_id if instance.course.start_date: start_date = instance.course.start_date.strftime("%Y-%m-%d,T%H:%M:%S") else: start_date = "" if instance.course.end_date: end_date = instance.course.end_date.strftime("%Y-%m-%d,T%H:%M:%S") else: end_date = "" language = instance.course.language title = instance.course.display_name_with_default univercity = instance.course.display_org_with_default course_url = settings.LMS_BASE + "/courses" + str(course_id) + "/course" status = "In Progress" registration_price, course_price = get_course_prices(instance.course) if course_price: price = registration_price else: price = 0 input_dict["enrollmentId"] = enrollment_id input_dict["emailAddress"] = email input_dict["courseEndDate"] = end_date input_dict["courseID"] = str(course_id) input_dict["courseLanguage"] = language input_dict["coursePrice"] = price input_dict["courseStartDate"] = start_date input_dict["courseTitle"] = title input_dict["courseUniversity"] = univercity input_dict["courseURL"] = course_url input_dict["status"] = status input_list.append(input_dict) marketo_data["input"] = input_list log.info("marketo data %s", marketo_data) url = "https://329-HDZ-280.mktorest.com/identity/oauth/token?grant_type=client_credentials&client_id=363c80f1-9401-429d-bc10-d88819845677&client_secret=OlkWcLXzboXYxiLIkSsxHOg1egZkn51P" payload = {} headers = {} import requests response = requests.request("GET", url, headers=headers, data=payload) result = response.json() access_token = result['access_token'] log.info("access token --------------> %s", access_token) log.info("marketo data --->%s", marketo_data) if access_token: marketo_url = "https://329-hdz-280.mktorest.com/rest/v1/customobjects/courseEnrollment_c.json" payload = json.dumps(marketo_data) header_data = 'Bearer ' + access_token headers = { 'Authorization': header_data, 'Content-Type': 'application/json' } response = requests.request("POST", marketo_url, headers=headers, data=payload) final_result = response.json() log.info("final responsee ---> %s", response) log.info("final result ---> %s", final_result)