コード例 #1
0
ファイル: admin.py プロジェクト: s-tar/kate
def seo_save():
    if not request.user.role('admin'): return False
    data = request.forms
    v = Validator(data)
    v.field("seou_url").required()
    v.field("seou_id").integer(nullable=True)
    v.fields("seot_id").integer(nullable=True)
    seo = request.db(SEOUrl).get_by_url(v.valid_data.get("seou_url").strip())
    if seo is not None and seo.seou_id != v.valid_data.seou_id:
        v.add_error("seou_url", "Такая ссылка уже существует")

    if v.is_valid():
        seo = request.db(SEOUrl).get_by_id(data.seou_id)
        if seo is None:
            seo = SEOUrl()
        seo.seou_url = data.get('seou_url').strip()
        tag_ids = data.getall('seot_id')
        tag_text = data.getall('seot_text')
        request.db.add(seo)
        request.db.commit()
        for i, text in enumerate(tag_text):
            text = text.strip()
            id = tag_ids[i]
            tag = request.db(SEOUrl).get_by_id(id)
            if tag is None:
                tag = SEOTag()
                tag.seou_id = seo.seou_id
            if text == '':
                if id is not None:
                    request.db.delete(tag)
            else:
                tag.seot_text = text
                request.db.add(tag)
        request.db.commit()
        return {"status": "ok"}
    else:
        return {"status": "fail",
                "errors": v.errors}
コード例 #2
0
ファイル: admin.py プロジェクト: s-tar/kate
def save_object():
    if not request.user.role('admin'): return False
    data = request.forms
    photos = request.files.getall('file')

    v = Validator(data)

    v.fields("file.id").integer(nullable=True)
    v.fields("file.visible").boolean()
    v.fields("file.order").integer()

    if v.is_valid():
        data = v.valid_data
        about = request.db(Content).get_by_alias('about')
        if not about:
            about = Content()
            about.con_alias = 'about'
            about.con_name = 'about'

        about.con_text = data.get("text")

        request.db.add(about)
        request.db.commit()

        action = data.getall('file.action')
        visible = data.getall('file.visible')
        order = data.getall('file.order')

        for i, id in enumerate(data.getall('file.id')):
            if action[i]:
                if action[i] == 'new':
                    file = request.db(File).create('photo.jpg', module=module.name, entity=about)
                    file.create_dir()
                    file.update_uniq_id()
                    photo = photos.pop(0)
                    image_resize(photo).convert('RGB').save(file.get_fullpath())
                else:
                    file = request.db(File).get_by_id(id)
                file.visible = visible[i]
                file.order = order[i]
                if action[i] == 'delete':
                    file.remove_files()
                    request.db.delete(file)
                else:
                    request.db.add(file)

        request.db.commit()
        return {"status": "ok",
                "reload": 'true'}
    else:
        return {"status": "fail",
                "errors": v.errors}