Example #1
0
def settings_privacy(request):
    from booki.utils import config

    if request.method == "POST":
        frm = PrivacyForm(request.POST, request.FILES)

        if request.POST["submit"] == _("Cancel"):
            return HttpResponseRedirect(reverse("control_settings"))

        if frm.is_valid():

            config.setConfiguration("FREE_REGISTRATION", frm.cleaned_data["user_register"])
            config.setConfiguration("ADMIN_CREATE_BOOKS", frm.cleaned_data["create_books"])
            config.setConfiguration("ADMIN_IMPORT_BOOKS", frm.cleaned_data["import_books"])

            try:
                config.saveConfiguration()
                messages.success(request, _("Successfuly saved changes."))
            except config.ConfigurationError:
                messages.warning(request, _("Unknown error while saving changes."))

            return HttpResponseRedirect(reverse("control_settings"))
    else:
        frm = PrivacyForm(
            initial={
                "user_register": config.getConfiguration("FREE_REGISTRATION"),
                "create_books": config.getConfiguration("ADMIN_CREATE_BOOKS"),
                "import_books": config.getConfiguration("ADMIN_IMPORT_BOOKS"),
            }
        )

    return render_to_response(
        "booktypecontrol/settings_privacy.html", {"request": request, "admin_options": ADMIN_OPTIONS, "form": frm}
    )
Example #2
0
    def handle(self, *args, **options):
        if not hasattr(settings, 'BOOKTYPE_CONFIG'):
            raise CommandError('Does not have BOOKTYPE_CONFIG in settings.py file.')

        if len(args) != 2:
            raise CommandError("You must specify variable name and value.")

        key = args[0]
        value = args[1]

        if options['integer']:
            try:
                value = int(value)
            except ValueError:
                raise CommandError("I don't think this %s is a number!" % value)

        if options['float']:
            try:
                value = float(value)
            except ValueError:
                raise CommandError("I don't think this %s is a number!" % value)
                

        if options['as_json']:
            try:
                value = json.loads(value)
            except ValueError:
                raise CommandError("Not a valid JSON string.")

        if options['append']:
            # ovo neshto ne radi sa as_jsonom
            lst = config.getConfiguration(key, [])

            if type(lst) == type([]):
                lst.append(value)
                config.setConfiguration(key, lst)
            else:
                raise CommandError("Can not append to something that is not a list")
        elif options['remove']:
            lst = config.getConfiguration(key, [])

            if type(lst) == type([]):
                try:
                    lst.remove(value)
                except ValueError:
                    raise CommandError("I can't see it!")

                config.setConfiguration(key, lst)
            else:
                raise CommandError("Can not append to something that is not a list")
        else:
            config.setConfiguration(key, value)
            
        try:
            config.saveConfiguration()
        except config.ConfigurationError:
            raise CommandError("Could not save the file.")
Example #3
0
def settings_frontpage(request):
    from booki.utils import config

    staticRoot = settings.BOOKI_ROOT

    if request.method == "POST":
        frm = FrontpageForm(request.POST, request.FILES)

        if request.POST["submit"] == _("Cancel"):
            return HttpResponseRedirect(reverse("control_settings"))

        if frm.is_valid():
            config.setConfiguration("BOOKTYPE_FRONTPAGE_HISTORY", frm.cleaned_data["show_changes"])

            import os.path, os

            if not os.path.exists("%s/templates/portal/" % staticRoot):
                os.makedirs("%s/templates/portal/" % staticRoot)

            try:
                f = open("%s/templates/portal/welcome_message.html" % staticRoot, "w")

                textData = frm.cleaned_data["description"]
                textData = textData.replace("{%", "").replace("%}", "").replace("{{", "").replace("}}", "")

                f.write(textData.encode("utf8"))
                f.close()

                messages.success(request, _("Successfuly saved changes."))

                config.saveConfiguration()
            except IOError:
                messages.warning(request, _("Error while saving changes"))
            except config.ConfigurationError:
                messages.warning(request, _("Unknown error while saving changes."))

            return HttpResponseRedirect(reverse("control_settings"))
    else:
        try:
            f = open("%s/templates/portal/welcome_message.html" % staticRoot, "r")
            textContent = unicode(f.read(), "utf8")
            f.close()
        except IOError:
            textContent = ""

        frm = FrontpageForm(
            initial={
                "show_changes": config.getConfiguration("BOOKTYPE_FRONTPAGE_HISTORY", True),
                "description": textContent,
            }
        )

    return render_to_response(
        "booktypecontrol/settings_frontpage.html", {"request": request, "admin_options": ADMIN_OPTIONS, "form": frm}
    )
Example #4
0
    def handle(self, *args, **options):
        if not hasattr(settings, 'BOOKTYPE_CONFIG'):
            raise CommandError('Does not have BOOKTYPE_CONFIG in settings.py file.')

        if len(args) != 1:
            raise CommandError("You must specify variable name")

        if not settings.BOOKTYPE_CONFIG.has_key(args[0]):
            raise CommandError("There is no such variable.")

        del settings.BOOKTYPE_CONFIG[args[0]]

        config.saveConfiguration()
Example #5
0
    def handle(self, *args, **options):
        if not hasattr(settings, 'BOOKTYPE_CONFIG'):
            raise CommandError(
                'Does not have BOOKTYPE_CONFIG in settings.py file.')

        if len(args) != 1:
            raise CommandError("You must specify variable name")

        if not settings.BOOKTYPE_CONFIG.has_key(args[0]):
            raise CommandError("There is no such variable.")

        del settings.BOOKTYPE_CONFIG[args[0]]

        config.saveConfiguration()
Example #6
0
def settings_publishing(request):
    from booki.utils import config

    publishOptions = config.getConfiguration("PUBLISH_OPTIONS")

    if request.method == "POST":
        frm = PublishingForm(request.POST, request.FILES)

        if request.POST["submit"] == _("Cancel"):
            return HttpResponseRedirect(reverse("control_settings"))

        if frm.is_valid():
            opts = []
            # a bit silly way to create a list

            if frm.cleaned_data["publish_book"]:
                opts.append("book")
            if frm.cleaned_data["publish_ebook"]:
                opts.append("ebook")
            if frm.cleaned_data["publish_lulu"]:
                opts.append("lulu")
            if frm.cleaned_data["publish_pdf"]:
                opts.append("pdf")
            if frm.cleaned_data["publish_odt"]:
                opts.append("odt")

            config.setConfiguration("PUBLISH_OPTIONS", opts)

            try:
                config.saveConfiguration()
                messages.success(request, _("Successfuly saved changes."))
            except config.ConfigurationError:
                messages.warning(request, _("Unknown error while saving changes."))

            return HttpResponseRedirect(reverse("control_settings"))
    else:
        frm = PublishingForm(
            initial={
                "publish_book": "book" in publishOptions,
                "publish_ebook": "ebook" in publishOptions,
                "publish_lulu": "lulu" in publishOptions,
                "publish_pdf": "pdf" in publishOptions,
                "publish_odt": "odt" in publishOptions,
            }
        )

    return render_to_response(
        "booktypecontrol/settings_publishing.html", {"request": request, "admin_options": ADMIN_OPTIONS, "form": frm}
    )
Example #7
0
def settings_description(request):
    if request.method == "POST":
        frm = SiteDescriptionForm(request.POST, request.FILES)

        if request.POST["submit"] == _("Cancel"):
            return HttpResponseRedirect(reverse("control_settings"))

        if frm.is_valid():
            from booki.utils import config

            config.setConfiguration("BOOKTYPE_SITE_NAME", frm.cleaned_data["title"])
            config.setConfiguration("BOOKTYPE_SITE_TAGLINE", frm.cleaned_data["tagline"])

            if request.FILES.has_key("favicon"):
                from booki.utils import misc
                import shutil

                # just check for any kind of silly error
                try:
                    fh, fname = misc.saveUploadedAsFile(request.FILES["favicon"])
                    shutil.move(fname, "%s/favicon.ico" % settings.STATIC_ROOT)

                    config.setConfiguration("BOOKTYPE_SITE_FAVICON", "%s/static/favicon.ico" % settings.BOOKI_URL)
                except:
                    pass

            try:
                config.saveConfiguration()
                messages.success(request, _("Successfuly saved settings."))
            except config.ConfigurationError:
                messages.warning(request, _("Unknown error while saving changes."))

            return HttpResponseRedirect(reverse("control_settings"))
    else:
        from booki.utils import config

        frm = SiteDescriptionForm(
            initial={
                "title": config.getConfiguration("BOOKTYPE_SITE_NAME"),
                "tagline": config.getConfiguration("BOOKTYPE_SITE_TAGLINE"),
            }
        )

    return render_to_response(
        "booktypecontrol/settings_description.html",
        {"request": request, "admin_options": ADMIN_OPTIONS, "form": frm},
        context_instance=RequestContext(request),
    )
Example #8
0
def settings_publishing_defaults(request):
    from booki.utils import config

    data = {
        "book_css": config.getConfiguration("BOOKTYPE_CSS_BOOK", ""),
        "ebook_css": config.getConfiguration("BOOKTYPE_CSS_EBOOK", ""),
        "lulu_css": config.getConfiguration("BOOKTYPE_CSS_LULU", ""),
        "pdf_css": config.getConfiguration("BOOKTYPE_CSS_PDF", ""),
        "odt_css": config.getConfiguration("BOOKTYPE_CSS_ODT", ""),
    }

    if request.method == "POST":
        frm = PublishingDefaultsForm(request.POST, request.FILES)

        if request.POST["submit"] == _("Cancel"):
            return HttpResponseRedirect(reverse("control_settings"))

        if frm.is_valid():
            if frm.cleaned_data["book_css"] != data["book_css"]:
                config.setConfiguration("BOOKTYPE_CSS_BOOK", frm.cleaned_data["book_css"])

            if frm.cleaned_data["ebook_css"] != data["ebook_css"]:
                config.setConfiguration("BOOKTYPE_CSS_EBOOK", frm.cleaned_data["ebook_css"])

            if frm.cleaned_data["lulu_css"] != data["lulu_css"]:
                config.setConfiguration("BOOKTYPE_CSS_LULU", frm.cleaned_data["lulu_css"])

            if frm.cleaned_data["pdf_css"] != data["pdf_css"]:
                config.setConfiguration("BOOKTYPE_CSS_PDF", frm.cleaned_data["pdf_css"])

            if frm.cleaned_data["odt_css"] != data["odt_css"]:
                config.setConfiguration("BOOKTYPE_CSS_ODT", frm.cleaned_data["odt_css"])

            try:
                config.saveConfiguration()
                messages.success(request, _("Successfuly saved changes."))
            except config.ConfigurationError:
                messages.warning(request, _("Unknown error while saving changes."))

            return HttpResponseRedirect(reverse("control_settings"))
    else:
        frm = PublishingDefaultsForm(initial=data)

    return render_to_response(
        "booktypecontrol/settings_publishing_defaults.html",
        {"request": request, "admin_options": ADMIN_OPTIONS, "form": frm},
    )
Example #9
0
def settings_book_create(request):
    if request.method == "POST":
        frm = BookCreateForm(request.POST, request.FILES)

        if request.POST["submit"] == _("Cancel"):
            return HttpResponseRedirect(reverse("control_settings"))

        if frm.is_valid():
            from booki.utils import config

            config.setConfiguration("CREATE_BOOK_VISIBLE", frm.cleaned_data["visible"])

            if frm.cleaned_data["license"]:
                config.setConfiguration("CREATE_BOOK_LICENSE", frm.cleaned_data["license"].abbrevation)
            else:
                config.setConfiguration("CREATE_BOOK_LICENSE", "")

            try:
                config.saveConfiguration()
                messages.success(request, _("Successfuly saved settings."))
            except config.ConfigurationError:
                messages.warning(request, _("Unknown error while saving changes."))

            return HttpResponseRedirect(reverse("control_settings"))
    else:
        from booki.utils import config

        _l = config.getConfiguration("CREATE_BOOK_LICENSE")
        if _l and _l != "":
            try:
                license = models.License.objects.get(abbrevation=_l)
            except models.License.DoesNotExist:
                license = None
        else:
            license = None

        frm = BookCreateForm(initial={"visible": config.getConfiguration("CREATE_BOOK_VISIBLE"), "license": license})

    return render_to_response(
        "booktypecontrol/settings_book_create.html",
        {"request": request, "admin_options": ADMIN_OPTIONS, "form": frm},
        context_instance=RequestContext(request),
    )
Example #10
0
    def handle(self, *args, **options):
        if not hasattr(settings, 'BOOKTYPE_CONFIG'):
            raise CommandError(
                'Does not have BOOKTYPE_CONFIG in settings.py file.')

        if len(args) != 2:
            raise CommandError("You must specify variable name and value.")

        key = args[0]
        value = args[1]

        if options['integer']:
            try:
                value = int(value)
            except ValueError:
                raise CommandError("I don't think this %s is a number!" %
                                   value)

        if options['float']:
            try:
                value = float(value)
            except ValueError:
                raise CommandError("I don't think this %s is a number!" %
                                   value)

        if options['as_json']:
            try:
                value = json.loads(value)
            except ValueError:
                raise CommandError("Not a valid JSON string.")

        if options['append']:
            # ovo neshto ne radi sa as_jsonom
            lst = config.getConfiguration(key, [])

            if type(lst) == type([]):
                lst.append(value)
                config.setConfiguration(key, lst)
            else:
                raise CommandError(
                    "Can not append to something that is not a list")
        elif options['remove']:
            lst = config.getConfiguration(key, [])

            if type(lst) == type([]):
                try:
                    lst.remove(value)
                except ValueError:
                    raise CommandError("I can't see it!")

                config.setConfiguration(key, lst)
            else:
                raise CommandError(
                    "Can not append to something that is not a list")
        else:
            config.setConfiguration(key, value)

        try:
            config.saveConfiguration()
        except config.ConfigurationError:
            raise CommandError("Could not save the file.")