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} )
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} )
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}, )
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} )
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.")
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), )
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), )
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.")