Added files
This commit is contained in:
commit
2be4a86553
14 changed files with 533 additions and 0 deletions
118
admin/pages.py
Normal file
118
admin/pages.py
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
import os
|
||||
from cuchulu.libraries.generate_admin_class import GenerateAdminClass
|
||||
#from cuchulu.libraries.db.adminutils import make_admin_url
|
||||
#from paramecio.citoplasma.urls import make_url
|
||||
from cuchulu.libraries.i18n import I18n
|
||||
from settings import config
|
||||
from modules.pages2.models import pages
|
||||
|
||||
from cuchulu.libraries.db.coreforms import BaseForm
|
||||
from cuchulu.modules.admin import admin_app, t as admin_t
|
||||
#from flask import url_for, g
|
||||
from cuchulu.libraries.urls import url_for
|
||||
from cuchulu.libraries.mtemplates import env_theme, PTemplate
|
||||
from bottle import request
|
||||
from cuchulu.libraries.urls import make_media_url
|
||||
try:
|
||||
import ujson as json
|
||||
except:
|
||||
import json
|
||||
|
||||
env=env_theme(__file__)
|
||||
|
||||
t=PTemplate(env)
|
||||
|
||||
t.env.directories=admin_t.env.directories
|
||||
|
||||
t.env.directories.insert(1, os.path.dirname(__file__).replace('/admin', '')+'/templates/admin')
|
||||
|
||||
class TextEditorJsForm(BaseForm):
|
||||
"""Form for html texts, based in tinycme javascript library"""
|
||||
|
||||
def __init__(self, name, value, t_add=None):
|
||||
"""
|
||||
Args:
|
||||
name (str): The html name for this form
|
||||
value (str): The default value of this html form.
|
||||
t_add (PTemplate): If you want change the standard html form, use other template loader
|
||||
"""
|
||||
|
||||
super().__init__(name, value)
|
||||
|
||||
self.t=t_add
|
||||
|
||||
if t_add==None:
|
||||
self.t=t
|
||||
|
||||
#if type(self.default_value)==dict:
|
||||
|
||||
# self.default_value=json.dumps(value)
|
||||
|
||||
def form(self):
|
||||
|
||||
return self.t.load_template('editorjsform.phtml', form=self)
|
||||
|
||||
@admin_app.get('/admin/pages2', name='admin_app.admin_pages2')
|
||||
@admin_app.post('/admin/pages2', name='admin_app.admin_pages2')
|
||||
def admin_pages2(db=True):
|
||||
|
||||
#t=admin_t
|
||||
|
||||
conn=db
|
||||
|
||||
page=pages.Page2(conn)
|
||||
|
||||
page.enctype=True
|
||||
|
||||
page.fields['slugify'].name_form=BaseForm
|
||||
|
||||
page.fields['text'].name_form=TextEditorJsForm
|
||||
|
||||
#page.fields['text'].extra_parameters[0].t=t
|
||||
|
||||
#url=make_admin_url('pages')
|
||||
url=url_for('admin_app.admin_pages2')
|
||||
|
||||
admin=GenerateAdminClass(page, url, t)
|
||||
|
||||
admin.list.fields_showed=['id', 'title', 'slugify']
|
||||
|
||||
form_admin=admin.show()
|
||||
|
||||
#return admin.show()
|
||||
if type(form_admin).__name__=='str':
|
||||
|
||||
return t.load_template('content.phtml', title=I18n.lang('pages', 'pages', 'Pages'), contents=form_admin, path_module='admin_app.admin_pages2')
|
||||
else:
|
||||
|
||||
return form_admin
|
||||
|
||||
|
||||
@admin_app.post('/pages/upload_image', name="admin_app.pages2_upload_image")
|
||||
def pages2_upload_image():
|
||||
|
||||
success=0
|
||||
|
||||
new_url=''
|
||||
|
||||
if 'image' in request.files:
|
||||
|
||||
file=request.files['image']
|
||||
|
||||
images_dir='./modules/pages2/media/images/editor'
|
||||
|
||||
if not os.path.isdir(images_dir):
|
||||
#os.mkdir(images_dir)
|
||||
pathlib.Path(images_dir).mkdir(0o755, True)
|
||||
|
||||
filename=file.filename
|
||||
|
||||
if not os.path.isfile(images_dir+'/'+filename):
|
||||
file.save(os.path.join(images_dir, filename))
|
||||
|
||||
success=1
|
||||
|
||||
new_url=make_media_url('images/editor/'+filename, 'pages2')
|
||||
|
||||
return {'success': success, 'file': {'url': new_url}}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue