Actual fix, I ended up just copying 
min_course_price_for_verified_for_currency:

    @classmethod
    def min_course_price_for_currency(cls, course_id, currency):
        """
        Returns the minimum price of the course in the appropriate currency 
over all the course's
        non-expired modes.
        If there is no mode found, will return the price of DEFAULT_MODE, 
which is 0
        """
        modes = cls.modes_for_course(course_id)
        for mode in modes:
            if mode.currency.lower() == currency.lower() and mode.min_price:
                return mode.min_price
        return 0

On Wednesday, February 21, 2018 at 9:21:14 AM UTC+11, Samuel Marks wrote:
>
> Is this a bug I should report, or have I misconfigured?
>
> Feb 20 22:12:35 OpenEdX4 [service_variant=lms][django.request][env:sandbox
> ] ERROR [OpenEdX4  3812] [base.py:256] - Internal Server Error: /courses/
> course-v1:mycourseid/about
> Traceback (most recent call last):
>   File 
> "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py"
> , line 132, in get_response
>     response = wrapped_callback(request, *callback_args, **callback_kwargs
> )
>   File 
> "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py"
> , line 145, in inner
>     return func(*args, **kwargs)
>   File 
> "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py"
> , line 110, in _wrapped_view
>     response = view_func(request, *args, **kwargs)
>   File "/edx/app/edxapp/edx-platform/common/djangoapps/util/views.py", 
> line 49, in inner
>     response = view_func(request, *args, **kwargs)
>   File "/edx/app/edxapp/edx-platform/common/djangoapps/util/cache.py", 
> line 83, in wrapper
>     return view_func(request, *args, **kwargs)
>   File 
> "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/views/views.py", 
> line 762, in course_about
>     registration_price, course_price = get_course_prices(course)
>   File 
> "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/views/views.py", 
> line 607, in get_course_prices
>     settings.PAID_COURSE_REGISTRATION_CURRENCY[0]
>   File 
> "/edx/app/edxapp/edx-platform/common/djangoapps/course_modes/models.py", 
> line 649, in min_course_price_for_currency
>     return min(mode.min_price for mode in modes if mode.currency.lower() 
> == currency.lower())
> ValueError: min() arg is an empty sequence
>
> In the meantime, I've rewritten mine to:
>     
> @classmethod
>     def min_course_price_for_currency(cls, course_id, currency):
>         """
>         Returns the minimum price of the course in the appropriate 
> currency over all the course's
>         non-expired modes.
>         If there is no mode found, will return the price of DEFAULT_MODE, 
> which is 0
>         """
>         modes = cls.modes_for_course(course_id)
>         if modes:
>             return min(mode.min_price for mode in modes if mode.currency.
> lower() == currency.lower())
>         return cls.DEFAULT_MODE
>
> (was: 
> https://github.com/edx/edx-platform/blob/25130ae3c8333e5353ab88860c76619ebb9098f9/common/djangoapps/course_modes/models.py#L674
>  
> )
>

-- 
You received this message because you are subscribed to the Google Groups 
"General Open edX discussion" group.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/edx-code/da027530-59eb-4a18-888e-9550a034e761%40googlegroups.com.

Reply via email to