def import_book(request, username): """ Django View. Book Import dialog. @type request: C{django.http.HttpRequest} @param request: Django Request @type username: C{string} @param username: Username. """ from django.contrib.auth.models import User from booki.utils.misc import isBookLimitReached try: user = User.objects.get(username=username) except User.DoesNotExist: try: resp = pages.ErrorPage(request, "errors/user_does_not_exist.html", {"username": username}) except: transaction.rollback() raise else: transaction.commit() return resp if isBookLimitReached() or not request.user.is_authenticated(): try: resp = pages.ErrorPage(request, "errors/no_permissions.html") except: transaction.rollback() raise else: transaction.commit() return resp from booki.utils.book import checkGroupAvailability, createBookiGroup from booki.editor import models if request.GET.get("q", "") == "check": from booki.utils.json_wrapper import json data = { "available": checkGroupAvailability(request.GET.get('groupname', '').strip()) } try: resp = HttpResponse(json.dumps(data), "text/plain") except: transaction.rollback() raise else: transaction.commit() return resp book_visible = config.getConfiguration('CREATE_BOOK_VISIBLE') admin_import = config.getConfiguration('ADMIN_IMPORT_BOOKS') if request.user.is_superuser: admin_import = False if request.GET.get("q", "") == "import" and admin_import == False: from booki.utils.json_wrapper import json data = {} try: bookid = request.GET.get('source', '') importType = request.GET.get('importtype', '') renameTitle = request.GET.get('title', '') extraOptions = {} if renameTitle: extraOptions['book_title'] = renameTitle if request.GET.get('hidden', '') != '': extraOptions['hidden'] = True ESPRI_URL = config.getConfiguration('ESPRI_URL') importSources = { "archive": (ESPRI_URL, "archive.org"), "wikibooks": (ESPRI_URL, "wikibooks"), "epub": (ESPRI_URL, "url"), } if importType == "booki": bookid = bookid.rstrip('/') booki_url, book_url_title = bookid.rsplit("/", 1) base_url = "%s/export/%s/export" % (booki_url, book_url_title) source = "booki" else: base_url, source = importSources[importType] book = common.importBookFromUrl2(user, base_url, args=dict(source=source, book=bookid), **extraOptions) except Exception: data['imported'] = False transaction.rollback() else: transaction.commit() data['imported'] = True from django.core.urlresolvers import reverse data['info_url'] = reverse('book_info', args=[book.url_title]) try: resp = HttpResponse(json.dumps(data), "text/plain") except: transaction.rollback() raise else: transaction.commit() return resp try: resp = render_to_response( 'account/import_book.html', { "request": request, "book_visible": book_visible, "admin_import": admin_import, "user": user }) except: transaction.rollback() raise else: transaction.commit() return resp
def import_book(request, username): """ Django View. Book Import dialog. @type request: C{django.http.HttpRequest} @param request: Django Request @type username: C{string} @param username: Username. """ from django.contrib.auth.models import User try: user = User.objects.get(username=username) except User.DoesNotExist: try: return pages.ErrorPage(request, "errors/user_does_not_exist.html", {"username": username}) except: transaction.rollback() finally: transaction.commit() if not request.user.is_authenticated(): try: return pages.ErrorPage(request, "errors/no_permissions.html") except: transaction.rollback() finally: transaction.commit() from booki.utils.book import checkGroupAvailability, createBookiGroup from booki.editor import models if request.GET.get("q", "") == "check": from booki.utils.json_wrapper import json data = {"available": checkGroupAvailability(request.GET.get('groupname', '').strip())} try: return HttpResponse(json.dumps(data), "text/plain") except: transaction.rollback() finally: transaction.commit() if request.GET.get("q", "") == "import": from booki.utils.json_wrapper import json data = {} try: bookid = request.GET.get('source', '') importType = request.GET.get('importtype', '') renameTitle = request.GET.get('title', '') extraOptions = {} if renameTitle: extraOptions['book_title'] = renameTitle if request.GET.get('hidden', '') != '': extraOptions['hidden'] = True importSources = { 'flossmanuals': (TWIKI_GATEWAY_URL, "en.flossmanuals.net"), "archive": (ESPRI_URL, "archive.org"), "wikibooks": (ESPRI_URL, "wikibooks"), "epub": (ESPRI_URL, "url"), } if importType == "booki": bookid = bookid.rstrip('/') booki_url, book_url_title = bookid.rsplit("/", 1) base_url = "%s/export/%s/export" % (booki_url, book_url_title) source = "booki" else: base_url, source = importSources[importType] book = common.importBookFromUrl2(user, base_url, args=dict(source=source, book=bookid), **extraOptions ) except Exception: data['imported'] = False transaction.rollback() else: transaction.commit() data['imported'] = True from django.core.urlresolvers import reverse data['info_url'] = reverse('book_info', args=[book.url_title]) try: return HttpResponse(json.dumps(data), "text/plain") except: transaction.rollback() finally: transaction.commit() try: return render_to_response('account/import_book.html', {"request": request, "user": user}) except: transaction.rollback() finally: transaction.commit()
def create_group(request, username): """ Django View. Show content for Create Group dialog and creates group. @type request: C{django.http.HttpRequest} @param request: Django Request @type username: C{string} @param username: Username. """ from django.contrib.auth.models import User try: user = User.objects.get(username=username) except User.DoesNotExist: try: resp = pages.ErrorPage(request, "errors/user_does_not_exist.html", {"username": username}) except: transaction.rollback() raise else: transaction.commit() return resp if not request.user.is_authenticated(): try: resp = pages.ErrorPage(request, "errors/no_permissions.html") except: transaction.rollback() raise else: transaction.commit() return resp from booki.utils.book import checkGroupAvailability, createBookiGroup from booki.editor import models if request.GET.get("q", "") == "check": from booki.utils.json_wrapper import json data = { "available": checkGroupAvailability(request.GET.get('groupname', '').strip()) } try: resp = HttpResponse(json.dumps(data), "text/plain") except: transaction.rollback() raise else: transaction.commit() return resp if request.GET.get("q", "") == "create": from booki.utils.json_wrapper import json groupName = request.GET.get('name', '').strip() groupDescription = request.GET.get('description', '').strip() groupCreated = False if checkGroupAvailability(groupName): try: group = createBookiGroup(groupName, groupDescription, request.user) group.members.add(request.user) groupCreated = True except BookiGroupExist: groupCreated = False transaction.rollback() else: transaction.commit() data = {'created': groupCreated} try: resp = HttpResponse(json.dumps(data), "text/plain") except: transaction.rollback() raise else: transaction.commit() return resp try: resp = render_to_response('account/create_group.html', { "request": request, "user": user }) except: transaction.rollback() raise else: transaction.commit() return resp
def create_group(request, username): """ Django View. Show content for Create Group dialog and creates group. @type request: C{django.http.HttpRequest} @param request: Django Request @type username: C{string} @param username: Username. """ from django.contrib.auth.models import User try: user = User.objects.get(username=username) except User.DoesNotExist: try: return pages.ErrorPage(request, "errors/user_does_not_exist.html", {"username": username}) except: transaction.rollback() finally: transaction.commit() if not request.user.is_authenticated(): try: return pages.ErrorPage(request, "errors/no_permissions.html") except: transaction.rollback() finally: transaction.commit() from booki.utils.book import checkGroupAvailability, createBookiGroup from booki.editor import models if request.GET.get("q", "") == "check": from booki.utils.json_wrapper import json data = {"available": checkGroupAvailability(request.GET.get('groupname', '').strip())} try: return HttpResponse(json.dumps(data), "text/plain") except: transaction.rollback() finally: transaction.commit() if request.GET.get("q", "") == "create": from booki.utils.json_wrapper import json groupName = request.GET.get('name', '').strip() groupDescription = request.GET.get('description', '').strip() groupCreated = False if checkGroupAvailability(groupName): try: group = createBookiGroup(groupName, groupDescription, request.user) group.members.add(request.user) groupCreated = True except BookiGroupExist: groupCreated = False transaction.rollback() else: transaction.commit() data = {'created': groupCreated} try: return HttpResponse(json.dumps(data), "text/plain") except: transaction.rollback() finally: transaction.commit() try: return render_to_response('account/create_group.html', {"request": request, "user": user}) except: transaction.rollback() finally: transaction.commit()