def get_book(isbn): url = ISBNDB_URL % (KEY, isbn) dom = minidom.parse(urllib.urlopen(url)) get = dom.getElementsByTagName errors = get("ErrorMessage") if errors: raise ISBNException(get_text(errors)) titles = get("Title") authors = get("AuthorsText") if not (titles and authors): raise ISBNException("Book not found") metabook = MetaBook() metabook.title = get_text(titles) metabook.author = get_text(authors) return metabook
def attach_book(request): """ Tests: - GETTest - SecurityTest - NotAllowedTest """ # User must be staff or admin to get to this page if not request.user.is_staff: t = loader.get_template('403.html') c = RC(request) return HttpResponseForbidden(t.render(c)) if not request.method == 'POST': t = loader.get_template('405.html') c = RC(request) return HttpResponseNotAllowed(t.render(c), ['POST']) form = NewBookForm(request.POST) if not form.is_valid(): # The form has bad data. send the user back var_dict = {'form' : form} template = 'books/attach_book.html' return rtr(template, var_dict, context_instance=RC(request)) # shorten our code line lengths below goc = Course.objects.get_or_create cd = form.cleaned_data # Get the course if it exists, otherwise create it. tpl = goc(department=cd['department'], number=cd['course_number']) course = tpl[0] metabook = MetaBook() metabook.title = form.cleaned_data['title'] metabook.author = form.cleaned_data['author'] metabook.barcode = form.cleaned_data['barcode'] metabook.edition = form.cleaned_data['edition'] metabook.save() metabook.courses.add(course) metabook.save() book = Book.objects.get(pk=form.cleaned_data['book_id']) book.metabook = metabook book.save() var_dict = {'book' : book} template = 'books/attached.html' return rtr(template, var_dict, context_instance=RC(request))
def attach_book(request): """ Tests: - GETTest - SecurityTest - NotAllowedTest """ # User must be staff or admin to get to this page if not request.user.is_staff: t = loader.get_template('403.html') c = RC(request) return HttpResponseForbidden(t.render(c)) if not request.method == 'POST': t = loader.get_template('405.html') c = RC(request) return HttpResponseNotAllowed(t.render(c), ['POST']) form = NewBookForm(request.POST) if not form.is_valid(): # The form has bad data. send the user back var_dict = {'form': form} template = 'books/attach_book.html' return rtr(template, var_dict, context_instance=RC(request)) # shorten our code line lengths below goc = Course.objects.get_or_create cd = form.cleaned_data # Get the course if it exists, otherwise create it. tpl = goc(department=cd['department'], number=cd['course_number']) course = tpl[0] metabook = MetaBook() metabook.title = form.cleaned_data['title'] metabook.author = form.cleaned_data['author'] metabook.barcode = form.cleaned_data['barcode'] metabook.edition = form.cleaned_data['edition'] metabook.save() metabook.courses.add(course) metabook.save() book = Book.objects.get(pk=form.cleaned_data['book_id']) book.metabook = metabook book.save() var_dict = {'book': book} template = 'books/attached.html' return rtr(template, var_dict, context_instance=RC(request))