|
14 | 14 | from api.models import FeatureFlag
|
15 | 15 | from openstax.functions import build_image_url, build_document_url
|
16 | 16 | from books.models import Book, SubjectBooks, BookFacultyResources, BookStudentResources
|
| 17 | +from books.models import get_book_data |
17 | 18 | from webinars.models import Webinar
|
18 | 19 | from news.models import BlogStreamBlock # for use on the ImpactStories
|
19 | 20 |
|
@@ -2953,44 +2954,17 @@ def subjects(self):
|
2953 | 2954 | subject_categories['icon'] = subject.subject_icon
|
2954 | 2955 | all_books = [book for book in Book.objects.all().order_by('title') if subject.name in book.subjects()]
|
2955 | 2956 | for category in snippets.SubjectCategory.objects.filter(subject_id=subject.id).order_by('subject_category'):
|
2956 |
| - books = {} |
2957 | 2957 | book_list = {}
|
| 2958 | + book_data = [] |
2958 | 2959 | for book in all_books:
|
2959 | 2960 | if book.subject_categories is not None \
|
2960 | 2961 | and category.subject_category in book.subject_categories \
|
2961 | 2962 | and book.book_state not in ['retired', 'unlisted']:
|
2962 |
| - book_data = [] |
2963 |
| - book_data.append({ |
2964 |
| - 'id': book.id, |
2965 |
| - 'slug': 'books/{}'.format(book.slug), |
2966 |
| - 'book_state': book.book_state, |
2967 |
| - 'title': book.title, |
2968 |
| - 'subjects': book.subjects(), |
2969 |
| - 'subject_categories': book.subject_categories, |
2970 |
| - 'k12subject': book.k12subjects(), |
2971 |
| - 'is_ap': book.is_ap, |
2972 |
| - 'cover_url': book.cover_url, |
2973 |
| - 'cover_color': book.cover_color, |
2974 |
| - 'high_resolution_pdf_url': book.high_resolution_pdf_url, |
2975 |
| - 'low_resolution_pdf_url': book.low_resolution_pdf_url, |
2976 |
| - 'ibook_link': book.ibook_link, |
2977 |
| - 'ibook_link_volume_2': book.ibook_link_volume_2, |
2978 |
| - 'webview_link': book.webview_link, |
2979 |
| - 'webview_rex_link': book.webview_rex_link, |
2980 |
| - 'bookshare_link': book.bookshare_link, |
2981 |
| - 'kindle_link': book.kindle_link, |
2982 |
| - 'amazon_coming_soon': book.amazon_coming_soon, |
2983 |
| - 'amazon_link': book.amazon_link, |
2984 |
| - 'bookstore_coming_soon': book.bookstore_coming_soon, |
2985 |
| - 'comp_copy_available': book.comp_copy_available, |
2986 |
| - 'salesforce_abbreviation': book.salesforce_abbreviation, |
2987 |
| - 'salesforce_name': book.salesforce_name, |
2988 |
| - 'urls': book.book_urls(), |
2989 |
| - 'last_updated_pdf': book.last_updated_pdf, |
2990 |
| - }) |
2991 |
| - books[book.title] = book_data |
| 2963 | + data = get_book_data(book) |
| 2964 | + if data: |
| 2965 | + book_data.append(data) |
2992 | 2966 | book_list['category_description'] = category.description
|
2993 |
| - book_list['books'] = books |
| 2967 | + book_list['books'] = book_data |
2994 | 2968 | categories[category.subject_category] = book_list
|
2995 | 2969 | subject_categories['categories'] = categories
|
2996 | 2970 | subject_list[subject.name] = subject_categories
|
|
0 commit comments