Exemplo n.º 1
0
def tao_tin_tim_mua():
	from plugin_ckeditor import CKEditor
	table = cms.define_table('tintuc')
	for field in table.fields:
		if field == 'htmlcontent':
			table[field].label = 'Nội dung tìm mua'
		if field == 'folder':
			table[field].default = 248
			table[field].readable=False
			table[field].writable=False
		row = db(db.dfield.name==field).select().first()
		if row:
			if row.ckeditor: table[field].widget=CKEditor(db).widget		
	form=SQLFORM(table)
	if form.process().accepted:
		from plugin_process import ProcessModel
		objects = ProcessModel().define_objects()
		objects_id = objects.insert(folder=248,foldername='san-pham-tim-mua',tablename='tintuc',table_id=form.vars.id,auth_group=7,process=1)

		# link = form.vars.name.replace('đ','d')
		# link = '%s.html'%IS_SLUG.urlify(link)
		# dcontent = cms.define_dcontent()
		# dcontent.insert(folder=248,dtable='tintuc',table_id=form.vars.id,link=link,name=form.vars.name,avatar=form.vars.avatar,description=form.vars.description,publish_on=request.now,expired_on=None)	
		# cms.db(tin_tuc_edit.id==form.vars.id).update(link=link)
		session.flash = T('Gửi thông tin tìm mua thành công')
		redirect(URL(c='portal',f='folder',args=['san-pham-tim-mua']))
	response.view = 'layout/home_dang_tin-tim-mua.html'	
	return dict(content=form)		
Exemplo n.º 2
0
    def set_properties(self):
        ckeditor = CKEditor()
        T = current.T
        self.fields = [
            Field("price", "double", notnull=True, default=0),
            Field("manufacturer", "string", notnull=True),
            Field("in_stock", "boolean", notnull=True, default=True),
            Field("quantity", "integer", default=1),
            Field("info", "text", notnull=True),
            Field("option_fields", "list:string"),
            Field("extra_fields", "list:string"),
        ]

        self.validators = {
            "info": IS_NOT_EMPTY(),
            "manufacturer": IS_NOT_EMPTY(),
        }

        self.widgets = {"info": ckeditor.widget}

        self.labels = {
            "price": T("Product Price"),
            "manufacturer": T("Manufacturer name or brand"),
            "in_stock": T("Available?"),
            "info": T("Product specs"),
            "quantity": T("Quantity in stock"),
        }
Exemplo n.º 3
0
    def set_properties(self):
        ckeditor = CKEditor()
        T = current.T
        self.fields = [
            Field("price", "double", notnull=True, default=0),
            Field("manufacturer", "string", notnull=True),
            Field("in_stock", "boolean", notnull=True, default=True),
            Field("info", "text", notnull=True),
            Field("product_size", "string"),
        ]

        self.validators = {
            "info":
            IS_NOT_EMPTY(),
            "manufacturer":
            IS_NOT_EMPTY(),
            "product_size":
            IS_EMPTY_OR(
                IS_IN_SET([("L", T("Large")), ("M", T("Medium")),
                           ("S", T("Small"))],
                          zero=None)),
        }

        self.widgets = {"info": ckeditor.widget}

        self.labels = {
            "price": T("Product Price"),
            "manufacturer": T("Manufacturer name or brand"),
            "in_stock": T("Available?"),
            "info": T("Product specs"),
            "product_size": T("Product size"),
        }
Exemplo n.º 4
0
def contact():
    id = 90
    from plugin_ckeditor import CKEditor
    box = cms.define_box()
    box.htmlcontent.widget = CKEditor(cms.db).widget

    box.name.writable = False

    box.id.writable = False
    box.id.readable = False

    box.boxtype.writable = False
    box.boxtype.readable = False

    box.avatar.writable = False
    box.avatar.readable = False

    box.link.writable = False
    box.link.readable = False

    box.setting.writable = False
    box.setting.readable = False

    box.textcontent.writable = False
    box.textcontent.readable = False

    form = SQLFORM(box, id)
    div = DIV(_class="panel panel-default")
    div.append(DIV(T('Thông tin hỗ trợ trực tuyến'), _class="panel-heading"))
    div.append(DIV(form, _class='panel-body'))
    if form.process().accepted:
        response.flash = T('Cập nhật thành công.')
    response.view = 'plugin_manager/index.html'
    return dict(content=div)
Exemplo n.º 5
0
def edit_tin_tuc(id, cms, folder_id_ivinh):
    request = current.request
    T = current.T
    from plugin_ckeditor import CKEditor
    tin_tuc = cms.define_table('tintuc')
    tin_tuc.folder.default = folder_id_ivinh
    tin_tuc.folder.writable = False
    tin_tuc.folder.readable = False
    tin_tuc.htmlcontent.widget = CKEditor(cms.db).widget
    form = SQLFORM(tin_tuc, id)
    ajax = "ajax('%s', [''], 'news_detail')" % (URL(
        r=current.request,
        c='plugin_app',
        f='act_delete',
        args=[request.args(0)],
        vars=dict(table_name='tintuc', table_id=id)))
    form[0][-1] = TR(TD(INPUT(_type='submit', _value=T('Submit')),
                        INPUT(_type='button',
                              _value=T('Xóa bài viết'),
                              _onclick=ajax,
                              _class='btn btn-danger'),
                        _colspan="3"),
                     _class='act_ivinh')
    if form.process().accepted:
        current.response.flash = T('Cập nhật thành công.')
    return form
Exemplo n.º 6
0
    def start(self):
        from movuca import DataBase, User, UserTimeLine, UserContact, UserBoard
        from datamodel.article import Article, ContentType, Category, Favoriters, Subscribers, Likers, Dislikers, Comments
        from datamodel.ads import Ads
        from datamodel.contenttypes import Article as ArticleData
        from datamodel.contenttypes import CookRecipe, CookRecipeBook, CodeRecipe, Product
        from datamodel.notification import NotificationPermission, Notification, EmailTemplate
        from datamodel.menu import Menu
        self.db = DataBase([
            User, UserTimeLine, ContentType, Category, Article, Favoriters,
            Subscribers, Likers, Dislikers, Comments, UserBoard, UserContact,
            CookRecipe, CookRecipeBook, CodeRecipe, Product, Ads,
            NotificationPermission, Notification, EmailTemplate, Menu
        ])
        self.db.ArticleData = ArticleData(self.db).entity

        # visibility

        comments_fields = [
            'article_id', "user_id", "nickname", "parent_id", "replies",
            "commenttime", "answer"
        ]
        for f in comments_fields:
            self.db.article_comments[f].readable = self.db.article_comments[
                f].writable = True
        ckeditor = CKEditor()
        self.db.article_comments.comment_text.widget = ckeditor.widget
        # visibility

        if not self.db.auth.has_membership("admin"):
            redirect(self.db.CURL("home", "index"))
Exemplo n.º 7
0
def view_san_pham():
    san_pham_id = request.vars.san_pham_id
    div = DIV(_class='col-md-12')
    folder_id_ivinh = folder_id_gian_hang.id
    if auth.has_permission('quan_tri_gian_hang', 'folder', folder_id_ivinh):
        name = request.args(0)
        from plugin_ckeditor import CKEditor

        san_pham = cms.define_table('san_pham')
        san_pham.folder.default = folder_id_ivinh
        san_pham.folder.writable = False
        san_pham.folder.readable = False
        san_pham.r_folder.writable = False
        san_pham.r_folder.readable = False
        san_pham.htmlcontent.widget = CKEditor(cms.db).widget

        form = SQLFORM(san_pham, san_pham_id)
        if san_pham_id:
            ajax = "ajax('%s', [''], 'news_detail')" % (URL(
                c='plugin_app',
                f='act_delete',
                args=[request.args(0)],
                vars=dict(table_name='san_pham', table_id=san_pham_id)))
            form[0][-1] = TR(TD(INPUT(_type='submit', _value=T('Submit')),
                                INPUT(_type='button',
                                      _value=T('Xóa sản phẩm'),
                                      _onclick=ajax,
                                      _class='btn btn-danger'),
                                _colspan="3"),
                             _class='act_ivinh')
        if form.process().accepted:
            print 123
        div.append(form)
    response.view = 'plugin_app/view_new.%s' % request.extension
    return dict(content=div)
Exemplo n.º 8
0
    def set_properties(self):
        ckeditor = CKEditor(self.db)
        T = current.T
        self.fields = [
            Field("author", "reference auth_user"),
            Field("title", "string", notnull=True),
            Field("description", "text"),
            Field("body_text", "text", notnull=True),
            Field("slug", "text", notnull=True),
        ]

        self.widgets = {"body_text": ckeditor.widget}

        self.visibility = {"author": (False, False)}

        self.representation = {"body_text": lambda row, value: XML(value)}

        self.validators = {
            "title": IS_NOT_EMPTY(),
            "body_text": IS_NOT_EMPTY()
        }

        self.computations = {
            "slug": lambda r: IS_SLUG()(r.title)[0],
        }

        self.labels = {
            "title": T("Your post title"),
            "description": T("Describe your post (markmin allowed)"),
            "body_text": T("The content")
        }
Exemplo n.º 9
0
def _():
    plugins = PluginManager('text', app=None)
    if plugins.text.app is not None:
        # this will register the content/type on the application
        plugins.text.app.registerContentType('text', ContentText())
        if not hasattr(db, 'plugin_text_text'):
            # configure ckeditor
            editor = CKEditor(db=db)
            # definimos la BD
            tbl = db.define_table(
                'plugin_text_text',
                Field('byline', 'string', length=250, default=''),
                Field('body', 'text', label=T('Content')),
                Field('item_id', 'string', length=64),
                auth.signature,
            )
            tbl.byline.label = T('By line')
            tbl.item_id.readable = False
            tbl.item_id.writable = False
            tbl.body.requires = IS_NOT_EMPTY()
            tbl.body.widget = editor.widget

            # enable record  versioning
            tbl._enable_record_versioning()

    return
Exemplo n.º 10
0
 def define_comment(self, migrate=False):
     if 'tcomment' in self.db.tables: return self.db.tcomment
     from gluon.dal import Field
     from plugin_ckeditor import CKEditor
     ckeditor = CKEditor(self.db)
     return self.db.define_table('tcomment',
                                 Field('tablename'),
                                 Field('table_id', 'integer'),
                                 Field('objects_id', 'integer'),
                                 Field('procedures', 'integer'),
                                 Field('process', 'integer'),
                                 Field('auth_group', 'list:integer'),
                                 Field('txtcontent',
                                       'text',
                                       length=16777215,
                                       widget=ckeditor.widget),
                                 Field('created_by',
                                       'integer',
                                       default=self.auth.user_id or 1,
                                       writable=False,
                                       readable=False),
                                 Field('created_on',
                                       'datetime',
                                       default=current.request.now,
                                       writable=False,
                                       readable=False),
                                 migrate=migrate)
Exemplo n.º 11
0
 def set_fixtures(self):
     ckeditor = CKEditor()
     self.db.article.description.widget = ckeditor.widget
     # virtual field <3
     self.entity.embed_code = Field.Virtual(lambda row: self.get_embed_code(
         row.video_data.video_source, row.video_data.video_height, row.
         video_data.video_width, row.video_data.video_embed))
Exemplo n.º 12
0
def edit_box():
    div = DIV(_id='ads_product', _class='panel panel-default')
    div.append(DIV(T('Quảng cáo'), _class='panel-heading'))
    box = cms.define_box()
    from plugin_ckeditor import CKEditor
    box.htmlcontent.widget = CKEditor(cms.db).widget
    box.boxtype.writable = False
    box.boxtype.readable = False

    box.name.writable = False

    box.avatar.writable = False
    box.avatar.readable = False

    box.link.writable = False
    box.link.readable = False

    box.setting.writable = False
    box.setting.readable = False

    box.textcontent.writable = False
    box.textcontent.readable = False

    form = SQLFORM(box, request.args(0))
    if form.process().accepted:
        response.flash = T('Cập nhật thành công')
    div.append(DIV(form, _class='panel-body'))
    response.view = 'plugin_sgd/ads.%s' % request.extension
    return dict(content=div)
Exemplo n.º 13
0
    def set_properties(self):
        ckeditor = CKEditor()
        T = current.T
        self.fields = [
            Field("prep_time", "string", notnull=True),
            Field("cook_time", "string", notnull=True),
            Field("difficulty", "string", notnull=True),
            Field("servings", "double", notnull=True),
            Field("ingredients", "list:string", notnull=True),
            Field("instructions", "text", notnull=True),
            Field("credits", "text"),
        ]

        self.validators = {
            "ingredients":
            IS_NOT_EMPTY(),
            "instructions":
            IS_NOT_EMPTY(),
            "difficulty":
            IS_IN_SET([("1", T("Easy")), ("2", T("Medium")), ("3", T("Hard"))],
                      zero=None),
            "prep_time":
            IS_NOT_EMPTY(),
            "cook_time":
            IS_NOT_EMPTY(),
            "servings":
            IS_NOT_EMPTY(),
        }

        self.widgets = {"instructions": ckeditor.widget}

        self.labels = {
            "instructions": T("Preparation instructions"),
            "ingredients": T("Ingredients"),
            "prep_time": T("Preparation time"),
            "cook_time": T("Cooking time"),
            "difficulty": T("Difficulty"),
            "servings": T("Servings"),
            "credits": T("credits"),
        }

        self.comments = {
            "ingredients":
            T("One item per line. Press enter to wrap. e.g: 3 cups of water<enter>"
              ),
            "instructions":
            T("You can include pictures."),
            "prep_time":
            T("The whole time considering ingredients preparation."),
            "cook_time":
            T("The time needed after all ingredients are ready."),
            "servings":
            T("How many portions, plates, cups etc?"),
            "credits":
            T("Include links, names, books etc."),
            "difficulty":
            T("Easy, Medium or hard to cook?"),
        }
Exemplo n.º 14
0
def _():
    plugins = PluginManager('audio', app=None)
    if plugins.audio.app is not None:
        plugins.audio.app.registerContentType('audio', ContentAudio())
        # the audio rendentions
        tbl = db.define_table(
            # register my content type plugin
            'plugin_audio_rendition',
            Field('purpose', 'string', length=50, default='web'),
            Field('audio', 'upload', uploadseparate=True, autodelete=True),
        )
        tbl.purpose.comment = T('''
        Descrive the purpose of this rendition of the video, e.g.:
        web, social networks, etc.
        ''')
        tbl.purpose.label = T('Purpose')
        tbl.audio.label = T('Audio File')
        tbl.audio.requires = IS_NOT_EMPTY()
        # configure ckeditor
        editor = CKEditor(db=db)
        # content table
        tbl = db.define_table(
            'plugin_audio_content',
            Field('credit_line', 'string', length=150, default=''),
            Field('description', 'text', label=T('Description'), default=''),
            Field('renditions', 'list:reference plugin_audio_rendition'),
            Field('item_id', 'string', length=64),
            auth.signature,
        )
        tbl.item_id.readable = False
        tbl.item_id.writable = False
        tbl.credit_line.label = T("Credit line")
        tbl.description.label = T('Description')
        tbl.description.widget = editor.widget
        tbl.renditions.label = T("Renditions")
        tbl.renditions.default = []
        tbl.renditions.writable = False
        tbl.renditions.readable = False
        tbl._enable_record_versioning()

        # add callback for item cleanup on delete.
        def __plugin_audio_item_on_delete(s):
            item = s.select().first()
            if item.item_type == 'audio':
                # cleanup here
                cnt = db.plugin_audio_content(item_id=item.unique_id)
                db(db.plugin_audio_rendition.id.belongs(
                    cnt.renditions)).delete()
                db(db.plugin_audio_content.item_id == item.unique_id).delete()

            return False  # remember to procced

        db.item._before_delete.insert(0, __plugin_audio_item_on_delete)
Exemplo n.º 15
0
def _():
    plugins = PluginManager('photoset', app=None)
    if plugins.photoset.app is not None:
        plugins.photoset.app.registerContentType('photoset', ContentPhotoset())
        editor = CKEditor(db=db)
        if not hasattr(db, 'plugin_photoset_photo'):
            db.define_table(
                'plugin_photoset_photo',
                Field('thumbnail',
                      'upload',
                      uploadseparate=True,
                      autodelete=True,
                      default=None),
                Field('picture',
                      'upload',
                      uploadseparate=True,
                      autodelete=True),
            )

        if not hasattr(db, 'plugin_photoset_content'):
            tbl = db.define_table(
                'plugin_photoset_content',
                Field('credit_line', 'string', length=250, default=''),
                Field('description',
                      'text',
                      label=T('Description'),
                      default=''),
                Field('photoset', 'list:reference plugin_photoset_photo'),
                Field('item_id', 'string', length=64),
                auth.signature,
            )
            tbl.credit_line.label = T("Credit line")
            tbl.description.label = T('Description')
            tbl.description.widget = editor.widget
            tbl._enable_record_versioning()

            # add callback for item cleanup on delete.
            def __plugin_photoset_item_on_delete(s):
                item = s.select().first()
                if item.item_type == 'photoset':
                    # cleanup here
                    cnt = db.plugin_photoset_content(item_id=item.unique_id)
                    db(db.plugin_photoset_photo.id.belongs(
                        cnt.photoset)).delete()
                    db(db.plugin_photoset_content.item_id ==
                       item.unique_id).delete()

                return False  # remember to procced

            db.item._before_delete.insert(0, __plugin_photoset_item_on_delete)
Exemplo n.º 16
0
    def set_properties(self):
        self.fields = [
            Field("template_key", "string", notnull=True, unique=True),
            Field("plain_text", "text", notnull=True, default=""),
            Field("html_text", "text", notnull=True, default=""),
            Field("subject_text", "string"),
            Field("copy_to", "string"),
            Field("reply_to", "string"),
            Field("detect_links", "boolean", default=True),
            Field("attachment_file", "upload"),
        ]

        from plugin_ckeditor import CKEditor
        ckeditor = CKEditor(self.db, self.db.config.theme.name)
        self.widgets = {"html_text": ckeditor.widget}
Exemplo n.º 17
0
    def set_properties(self):
        ckeditor = CKEditor()
        T = self.db.T
        self.fields = [
            Field("markup", default="html"),
            Field("body", "text", notnull=True),
        ]

        self.validators = {
            "body": IS_NOT_EMPTY(),
            #"markup": IS_IN_SET(["html", "markmin"], zero=None),
        }

        self.labels = {"body": T("Article Text")}

        self.visibility = {"markup": (False, False)}

        self.widgets = {"body": ckeditor.widget}
Exemplo n.º 18
0
def view_san_pham(id, cms, folder_id_ivinh):
    request = current.request
    T = current.T
    div = DIV(_class='col-md-12', _id='news_detail')
    name = request.args(0)
    from plugin_ckeditor import CKEditor
    san_pham = cms.define_table('san_pham')
    # san_pham.folder.default=folder_id_ivinh
    # san_pham.folder.writable=False
    # san_pham.folder.readable=False
    from plugin_app import widget_danh_muc_san_pham
    san_pham.folder.widget = widget_danh_muc_san_pham
    san_pham.r_folder.writable = False
    san_pham.r_folder.readable = False
    san_pham.htmlcontent.widget = CKEditor(cms.db).widget

    form = SQLFORM(san_pham, id)
    ajax = "ajax('%s', [''], 'news_detail')" % (URL(
        r=current.request,
        c='plugin_app',
        f='act_delete',
        args=[request.args(0)],
        vars=dict(table_name='san_pham', table_id=id)))
    form[0][-1] = TR(TD(INPUT(_type='submit', _value=T('Submit')),
                        INPUT(_type='button',
                              _value=T('Xóa sản phẩm'),
                              _onclick=ajax,
                              _class='btn btn-danger'),
                        _colspan="3"),
                     _class='act_ivinh')
    if form.process().accepted:
        dcontent = cms.define_dcontent()
        link = cms.db.san_pham[request.vars.id].link
        id_d = cms.db((dcontent.dtable == 'san_pham')
                      & (dcontent.link == link)).update(
                          name=request.vars.name,
                          folder=request.vars.folder,
                          avatar=request.vars.avatar,
                          description=request.vars.description)
        current.response.flash = T('Cập nhật thành công.')
    div.append(form)
    return div
Exemplo n.º 19
0
def _():
    plugins = PluginManager('package', app=None)
    if plugins.package.app is not None:
        # this will register the the application on content/type
        plugins.package.app.registerContentType('package', ContentPackage())

        if not hasattr(db, 'plugin_package_content'):
            editor = CKEditor(db=db)
            tbl = db.define_table(
                'plugin_package_content',
                Field('item_list', 'list:string'),
                Field('description', 'text'),
                Field('item_id', 'string', length=64),
                auth.signature,
            )
            tbl.item_id.writable = False
            tbl.item_id.readable = False
            tbl.item_list.writable = False
            tbl.item_list.readable = False
            tbl.description.label = T('Description')
            tbl.description.widget = editor.widget
            tbl._enable_record_versioning()

            # add a callback to the item table for updating the item list of
            # the package on item deletion.
            def plugin_package_callback(s):
                item = s.select().first()
                # this are the packages with contains the item to delete
                pkgs = db(
                    db.plugin_package_content.item_list.contains(
                        item.unique_id)).select()
                for pkg in pkgs:
                    # remove the item from the package
                    pkg.item_list.remove(item.unique_id)
                    pkg.update_record()

                return False

            db.item._before_delete.insert(0, plugin_package_callback)
Exemplo n.º 20
0
def _():
    plugins = PluginManager('package', app=None)
    if plugins.package.app is not None:
        # this will register the the application on content/type
        plugins.package.app.registerContentType('package', ContentPackage())

        if not hasattr(db, 'plugin_package_content'):
            editor = CKEditor(db=db)
            tbl = db.define_table(
                'plugin_package_content',
                Field('item_list', 'list:string'),
                Field('description', 'text'),
                Field('item_id', 'string', length=64),
                auth.signature,
            )
            tbl.item_id.writable = False
            tbl.item_id.readable = False
            tbl.item_list.writable = False
            tbl.item_list.readable = False
            tbl.description.label = T('Description')
            tbl.description.widget = editor.widget
            tbl._enable_record_versioning()
Exemplo n.º 21
0
    def set_properties(self):
        ckeditor = CKEditor()
        self.fields = [
            Field("title", unique=True),
            Field("description", "text"),
            Field("page_content", "text"),
            Field("picture", "upload"),
            Field("thumbnail", "upload"),
            Field("tags", "list:string"),
            Field("slug"),
            Field("page_scope", "list:string", default=["public", "sitemap"]),
            Field("visibility"),
            Field("text_language", default="pt-br"),
            Field("redirect_url"),
        ]

        self.widgets = {
            "tags": StringListWidget.widget,
            "page_content": ckeditor.widget
        }

        self.comments = {
          "page_scope": "public, sitemap, members"
        }

        self.computations = {
            "slug": lambda r: IS_SLUG()(r.title)[0],
            "thumbnail": lambda r: THUMB2(r.picture, 200, 200)
        }

        self.validators = {
            "title": [IS_NOT_EMPTY(), IS_NOT_IN_DB(self.db, "internal_page.title")],
            "description": IS_NOT_EMPTY(),
            "picture": IS_EMPTY_OR(IS_IMAGE()),
            "tags": COMMA_SEPARATED_LIST(),
            "text_language": IS_IN_SET(["en", "pt-br", "es"])
        }
Exemplo n.º 22
0
    def comment_internal(self):
        is_author = False
        if self.session.auth and self.session.auth.user:
            is_author = True if self.session.auth.user.id == self.context.article.author else False
            self.db.Comments.article_id.default = self.context.article.id
            self.db.Comments.user_id.default = self.session.auth.user.id
            self.db.Comments.commenttime.default = self.request.now
            self.db.Comments.comment_text.label = self.T("Post your comment")
            from plugin_ckeditor import CKEditor
            ckeditor = CKEditor()
            self.db.Comments.comment_text.widget = ckeditor.basicwidget
            form = SQLFORM(self.db.Comments, formstyle='divs')
            if form.process(
                    message_onsuccess=self.T('Comment included')).accepted:
                self.new_article_event(
                    'new_article_comment',
                    self.session.auth.user,
                    data={
                        'event_text':
                        form.vars.comment_text,
                        'event_link':
                        "%s/%s#comment_%s" %
                        (self.context.article.id, self.context.article.slug,
                         form.vars.id)
                    })
        else:
            form = A(
                self.T("Login to post comments"),
                _class="button",
                _href=self.CURL(
                    'default',
                    'user',
                    args='login',
                    vars=dict(_next=self.CURL('article',
                                              'show',
                                              args=[
                                                  self.context.article.id,
                                                  self.context.article.slug
                                              ]))))

        comments = self.db(
            self.db.Comments.article_id == self.context.article.id).select(
                orderby=self.db.Comments.created_on)

        if comments and is_author:
            edit_in_place = ckeditor.bulk_edit_in_place(
                ["comment_%(id)s" % comment for comment in comments],
                URL('editcomment'))
        elif comments and self.session.auth and self.session.auth.user:
            usercomments = comments.find(
                lambda row: row.user_id == self.session.auth.user.id)
            if usercomments:
                edit_in_place = ckeditor.bulk_edit_in_place(
                    ["comment_%(id)s" % comment for comment in usercomments],
                    URL('editcomment'))
            else:
                edit_in_place = ('', '')
        else:
            edit_in_place = ('', '')

        return DIV(H4(
            IMG(_src=URL('static',
                         '%s/images/icons' % self.context.theme_name,
                         args='board.24.png')), self.T("Comments")),
                   UL(
                       *[
                           LI(H5(
                               A(self.T("%s %s" %
                                        (comment.nickname or comment.user_id,
                                         self.db.pdate(comment.commenttime))),
                                 _href=self.CURL('person',
                                                 'show',
                                                 args=comment.nickname
                                                 or comment.user_id))),
                              DIV(
                                  XML(comment.comment_text), **{
                                      '_class': 'editable commentitem',
                                      '_data-object': 'comment',
                                      '_data-id': comment.id,
                                      '_id': "comment_%s" % comment.id
                                  }),
                              _class="comment_li") for comment in comments
                       ], **dict(_class="comment_ul")),
                   edit_in_place[1],
                   form,
                   _class="internal-comments article-box")
Exemplo n.º 23
0
# -*- coding: utf-8 -*-

import os
from gluon import *
from plugin_ckeditor import CKEditor
current.plugin_ckeditor = CKEditor()
current.plugin_ckeditor.define_tables()
db = current.plugin_ckeditor.db


def upload():
    (new_filename, old_filename, length, mime_type) = current.plugin_ckeditor.handle_upload()
    title = os.path.splitext(old_filename)[0]
    result = current.plugin_ckeditor.settings.table_upload.validate_and_insert(
        title=title,
        filename=old_filename,
        upload=new_filename,
        flength=length,
        mime_type=mime_type,
        user_id=session.auth.user.id,
        created_on=request.now
    )

    text = ''
    url = URL('default', 'download', args=[new_filename])

    if not result.id:
        text = result.errors

    return dict(text=text, cknum=request.vars.CKEditorFuncNum, url=url)
Exemplo n.º 24
0
__author__ = 'Evolutiva'
from plugin_ckeditor import CKEditor
ckeditor = CKEditor(db)
ckeditor.define_tables()

##tabla caso
db.define_table('caso',
                Field('depiction', 'upload', label=T('Logotipo')),
                Field('name', 'string', label=T('Nombre')),
                Field('description',
                      'text',
                      label=T('Reseña'),
                      widget=ckeditor.widget),
                Field('country',
                      db.country,
                      label=T('País'),
                      requires=IS_IN_DB(db, 'country.id', 'country.name'),
                      default=44),
                Field('city', 'string', label=T('Ciudad')),
                Field('documentSource',
                      'list:reference document',
                      required=False,
                      requires=IS_IN_DB(requiere,
                                        'document.id',
                                        '%(name)s / (documentURL)s',
                                        multiple=True),
                      label=T('Fuentes')),
                Field('documentCloud',
                      'list:reference documentCloud',
                      required=False,
                      requires=IS_IN_DB(db,
Exemplo n.º 25
0
def _():
    plugins = PluginManager('picture', app=None)
    # this will register the content/type on the application
    if plugins.picture.app is not None:
        editor = CKEditor(db=db)
        plugins.picture.app.registerContentType('picture', ContentPicture())
        if not hasattr(db, 'plugin_picture_rendition'):
            tbl = db.define_table(
                'plugin_picture_rendition',
                Field('picture',
                      'upload',
                      uploadseparate=True,
                      autodelete=True),
                Field('purpose', 'string', length=50, default='raw'),
                Field('height',
                      'integer',
                      default=0,
                      readable=False,
                      writable=False),
                Field('width',
                      'integer',
                      default=0,
                      readable=False,
                      writable=False),
                Field('color',
                      'string',
                      length=20,
                      readable=False,
                      writable=False),
                Field('format',
                      'string',
                      length=10,
                      readable=False,
                      writable=False))
            tbl.purpose.comment = T('''
            It may contain any value but it is recommended to use one of the
            values: raw, web, thumbnail, print
            ''')
            tbl.purpose.label = T('Purpose')
            tbl.height.label = T('Height')
            tbl.width.label = T('Width')
            tbl.color.label = T('Color space')
            tbl.format.label = T('Format')
            tbl.format.comment = T('Automatic form PIL')
            tbl.picture.label = T('Picture')
            tbl.picture.requires = [IS_IMAGE(), IS_NOT_EMPTY()]

        if not hasattr(db, 'plugin_picture_info'):
            # definimos la BD
            tbl = db.define_table(
                'plugin_picture_info',
                Field('credit_line', 'string', length=250, default=''),
                Field('description',
                      'text',
                      label=T('Description'),
                      default=''),
                Field('caption', 'string', length=250, default=''),
                Field('thumbnail',
                      'upload',
                      uploadseparate=True,
                      autodelete=True,
                      default=None),
                Field('renditions', 'list:reference plugin_picture_rendition'),
                Field('item_id', 'string', length=64),
                auth.signature,
            )
            tbl.credit_line.label = T("Credit line")
            tbl.description.label = T('Description')
            tbl.description.widget = editor.widget
            tbl.caption.label = T("Caption")
            tbl.renditions.label = T("Renditions")
            tbl.item_id.readable = False
            tbl.item_id.writable = False

            # enable record  versioning
            tbl._enable_record_versioning()

    return
Exemplo n.º 26
0
from plugin_ckeditor import CKEditor
ckeditor = CKEditor(db, download_url=('initial','download'))
ckeditor.define_tables()
Exemplo n.º 27
0
# -*- coding: utf-8 -*-
###################################################
# This file was developed by ToanLK
# It is released under BSD, MIT and GPL2 licenses
# Version 0.1 Date: 27/02/2014
###################################################

from plugin_cms import Cms
cms = Cms()

from plugin_ckeditor import CKEditor
CKEditor(cms.db).define_tables()

if request.controller in [
        'plugin_cms', 'portal', 'plugin_app', 'plugin_box', 'plugin_sgd',
        'plugin_folder', 'plugin_manager', 'plugin_report'
]:
    from plugin_process import ProcessModel
    db = cms.db
    cms.define_dcontent(False)
    cms.define_box(False)
    cms.define_folder(False)
    cms.define_rtable(False)
    auth = ProcessModel().auth
    folder_id_gian_hang = ''
    if auth.user_id:
        folder = cms.define_folder()
        db_auth = ProcessModel().db
        rows = db_auth(
            db_auth.auth_membership.user_id == auth.user_id).select()
        list_group = []
Exemplo n.º 28
0
    def printMetaProperties(self):
        import string

        from gluon import META
        config = Settings()
        request = current.request
        metas = []
        db = self.db
        #si es un post de blog, extraer metadatos de la entrada
        if (request.controller == 'blog') and (request.function == 'show'):
            from blog import Blog, Images
            from plugin_ckeditor import CKEditor
            ckeditor = CKEditor(db)
            Blog(db, ckeditor), Images(db)

            if request.args(0).isdigit():
                post = db(db.blog.id == request.args(0)).select(
                    db.blog.ALL,
                    db.images.image,
                    join=[db.images.on(db.images.id == db.blog.image)
                          ]).first()
            else:
                post = db(db.blog.urlfriendly == request.args(0)).select(
                    db.blog.ALL,
                    db.images.image,
                    join=[db.images.on(db.images.id == db.blog.image)
                          ]).first()

            if post != None:
                self.logger.debug(post.blog.title)
                metas.append(
                    META(_property="og:title", _content=post.blog.title))
                #metas.append(META(_property="og:description", _content=post.description)) #hace falta un field description

                metas.append(
                    META(_property="og:image",
                         _content=URL('blog',
                                      'download',
                                      args=post.images.image,
                                      host=True)))
                metas.append(META(_property="og:type", _content="article"))

                if post.blog.tags != None:
                    for tag in post.blog.tags.split(','):
                        if tag != "":
                            metas.append(
                                META(_property="article:tag",
                                     _content=tag.strip()))

                metas.append(
                    META(_property="url",
                         _content=URL('blog',
                                      'show',
                                      request.args(0),
                                      host=True)))
                metas.append(
                    META(_property="article:published_time",
                         _content=post.blog.created_on))

                metas.append(
                    META(_name="twitter:image:src",
                         _content=URL('blog',
                                      'download',
                                      args=post.images.image,
                                      host=True)))
                metas.append(
                    META(_name="twitter:card", _content="summary_large_image"))
                metas.append(META(_name="twitter:site",
                                  _content="@gextiendas"))
                metas.append(
                    META(
                        _name="twitter:domain",
                        _content=
                        "Tu plataforma experta para la gestión de tiendas online"
                    ))
                metas.append(
                    META(_name="twitter:creator", _content="@gestionexperta"))
                metas.append(
                    META(_property="article:publisher",
                         _content="http://www.facebook.com/gextiendas"))

        #puede ocurrir que un controller/function tengan meta_keys y meta_values definidos en seo table
        elif request.controller != 'blog' and request.controller != 'administrator' and request.controller != 'account':
            metas.append(
                META(_property="og:title", _content=config.settings['title']))
            metas.append(
                META(_property="og:description",
                     _content=config.settings['description']))
            metas.append(META(_property="og:type", _content='website'))
            metas.append(
                META(_property="og:site_name",
                     _content=config.settings['title']))
            metas.append(
                META(
                    _property="og:image",
                    _content=
                    "http://www.gextiendas.es/gextiendas/static/img/slides/up-sales.png"
                ))
            metas.append(
                META(
                    _name="twitter:image:src",
                    _content=
                    "http://www.gextiendas.es/gextiendas/static/img/slides/up-sales.png"
                ))
            metas.append(
                META(_name="twitter:card", _content="summary_large_image"))
            metas.append(META(_name="twitter:site", _content="@gextiendas"))
            metas.append(
                META(
                    _name="twitter:domain",
                    _content=
                    "Tu plataforma experta para la gestión de tiendas online"))
            metas.append(
                META(_name="twitter:creator", _content="@gestionexperta"))
            metas.append(
                META(_property="article:publisher",
                     _content="http://www.facebook.com/gextiendas"))
            for seovalues in db((db.seo.controller == request.controller) &
                                (db.seo.function == request.function)).select(
                                    db.seo.meta_key, db.seo.meta_key):
                metas.append(
                    META(_property=seovalues.meta_key,
                         _content=seovalues.meta_value))

        #y si ninguna de las anteriores, entonces metas por defecto
        else:
            metas.append(
                META(_property="og:title", _content=config.settings['title']))
            metas.append(
                META(_property="og:description",
                     _content=config.settings['description']))
            metas.append(META(_property="og:type", _content='website'))
            metas.append(
                META(_property="og:site_name",
                     _content=config.settings['title']))
            metas.append(
                META(
                    _property="og:image",
                    _content=
                    "http://www.gextiendas.es/gextiendas/static/img/slides/up-sales.png"
                ))
            metas.append(
                META(
                    _name="twitter:image:src",
                    _content=
                    "http://www.gextiendas.es/gextiendas/static/img/slides/up-sales.png"
                ))

        return metas
Exemplo n.º 29
0
    def set_properties(self):
        ckeditor = CKEditor()
        T = current.T
        self.fields = [
            Field("prep_time", "string", notnull=True),
            Field("cook_time", "string", notnull=True),
            Field("difficulty", "string", notnull=True),
            Field("servings", "double", notnull=True),
            Field("ingredients", "list:string", notnull=True),
            Field("instructions", "text", notnull=True),
            Field("credits", "text"),
            Field("video_source", "string"),
            Field("video_embed", "string"),
            Field("active_tab", "string", default="photo"),
        ]

        self.validators = {
            "ingredients":
            IS_NOT_EMPTY(),
            "instructions":
            IS_NOT_EMPTY(),
            "difficulty":
            IS_IN_SET([("1", T("Easy")), ("2", T("Medium")), ("3", T("Hard"))],
                      zero=None),
            "prep_time":
            IS_NOT_EMPTY(),
            "cook_time":
            IS_NOT_EMPTY(),
            "servings":
            IS_NOT_EMPTY(),
        }

        self.widgets = {
            "instructions": ckeditor.widget,
            "ingredients": ListWidget.widget
        }

        self.labels = {
            "instructions": T("Preparation instructions"),
            "ingredients": T("Ingredients"),
            "prep_time": T("Preparation time"),
            "cook_time": T("Cooking time"),
            "difficulty": T("Difficulty"),
            "servings": T("Servings"),
            "credits": T("credits"),
            "video_source": T("Video source"),
            "video_embed": T("Video link or code"),
            "active_tab": T("By default show video or picture"),
        }

        self.comments = {
            "ingredients":
            T("Include one item then press enter or click in 'add new' to include more"
              ),
            "instructions":
            T("Describe the steps to cook the recipe, also you can include aditional photos and links."
              ),
            "prep_time":
            T("The whole time considering ingredients preparation."),
            "cook_time":
            T("The time needed after all ingredients are ready."),
            "servings":
            T("This recipe serves how many people?"),
            "credits":
            T("Include links, names, books etc."),
            "difficulty":
            T("Easy, Medium or hard to cook?"),
            "video_source":
            T("Is your video hosted at youtube or vimeo? Leave blank if you have no video."
              ),
            "video_embed":
            T("Please input only the code or link to the video i.e: http://vimeo.com/454545 or only 454545"
              ),
            "active_tab":
            T("Choose what to show or leave photo as default"),
        }
Exemplo n.º 30
0
 def set_fixtures(self):
     ckeditor = CKEditor()
     self.db.article.description.widget = ckeditor.widget