コード例 #1
0
    def guardar_contenido(self, id=None):
        """Guarda en la base de datos el post recibido por la forma"""

        if id is not None:
            contenido = Session.query(Contenido).get(id)
            titulo_original = contenido.titulo
            schema = FormaNuevoContenido()  #contra que voy a validar
            ControllerState = FormencodeState(
            )  #el estado que le voy a pasar al validador
            if request.params['titulo'] != titulo_original:
                ControllerState.cambio = True  #en este caso el validador debe checar que el nuevo nombre sea unico
            else:
                ControllerState.cambio = False

            try:
                form_result = schema.to_python(request.params, ControllerState)
            except formencode.validators.Invalid, error:
                c.contenido = {
                    'titulo': request.params['titulo'],
                    'texto': request.params['texto']
                }
                return htmlfill.render(
                    render("/derived/contenidos/nuevo.mako"), c.contenido,
                    error)

            contenido.titulo = form_result['titulo']
            contenido.texto = form_result['texto']
            contenido.editado = datetime.datetime.now()
            Session.add(contenido)
            Session.commit()
            return redirect(
                url(controller="contenido", action="view", id=contenido.id))
コード例 #2
0
ファイル: contenido.py プロジェクト: CentroGeo/QuickCMS
    def guardar_contenido(self,id=None):
        """Guarda en la base de datos el post recibido por la forma"""

        if id is not None:
            contenido = Session.query(Contenido).get(id)
            titulo_original = contenido.titulo
            schema = FormaNuevoContenido() #contra que voy a validar
            ControllerState = FormencodeState() #el estado que le voy a pasar al validador
            if request.params['titulo']!=titulo_original:
                ControllerState.cambio = True #en este caso el validador debe checar que el nuevo nombre sea unico
            else:
                ControllerState.cambio = False

            try:
                form_result = schema.to_python(request.params,ControllerState)
            except formencode.validators.Invalid, error:
                c.contenido = {'titulo':request.params['titulo'],
                              'texto':request.params['texto']}
                return htmlfill.render(render("/derived/contenidos/nuevo.mako"),c.contenido,error)

            contenido.titulo = form_result['titulo']
            contenido.texto = form_result['texto']
            contenido.editado = datetime.datetime.now()
            Session.add(contenido)
            Session.commit()
            return redirect(url(controller="contenido", action="view", id=contenido.id))
コード例 #3
0
 def _to_python(self,value,state):
     nombre_valido = Session.query(AuthUser).filter_by(username=value).first()
     if nombre_valido is not None:
         raise formencode.Invalid(
             "El nombre de usuario ya existe!!!",
             value,
             state
             )
     else:
         return value
コード例 #4
0
ファイル: contenido.py プロジェクト: CentroGeo/QuickCMS
    def crear_post(self,id=None):
        """Regresa la forma para crear una nueva entrada en el blog"""
        if id is not None:
            #estamos editando
            contenido = Session.query(Contenido).get(id)
            c.contenido = {'titulo':contenido.titulo,
                          'texto':contenido.texto,'id':contenido.id}
            return htmlfill.render(render("/derived/contenidos/nuevo.mako"),c.contenido)


        return render("/derived/contenidos/nuevo.mako")
コード例 #5
0
 def _to_python(self, value, state):
     if state is not None:
         if state.cambio:
             nombre_valido = Session.query(Contenido).filter_by(
                 titulo=value).first()
             if nombre_valido is not None:
                 raise formencode.Invalid("El título ya existe!!!", value,
                                          state)
             else:
                 return value
         else:
             return value
     else:
         nombre_valido = Session.query(Contenido).filter_by(
             titulo=value).first()
         if nombre_valido is not None:
             raise formencode.Invalid("El título ya existe!!!", value,
                                      state)
         else:
             return value
コード例 #6
0
    def crear_post(self, id=None):
        """Regresa la forma para crear una nueva entrada en el blog"""
        if id is not None:
            #estamos editando
            contenido = Session.query(Contenido).get(id)
            c.contenido = {
                'titulo': contenido.titulo,
                'texto': contenido.texto,
                'id': contenido.id
            }
            return htmlfill.render(render("/derived/contenidos/nuevo.mako"),
                                   c.contenido)

        return render("/derived/contenidos/nuevo.mako")
コード例 #7
0
ファイル: contenidos.py プロジェクト: CentroGeo/QuickCMS
 def _to_python(self,value,state):
     if state is not None:
         if state.cambio:
             nombre_valido = Session.query(Contenido).filter_by(titulo=value).first()
             if nombre_valido is not None:
                 raise formencode.Invalid(
                     "El título ya existe!!!",
                     value,
                     state
                     )
             else:
                 return value
         else:
             return value
     else:
         nombre_valido = Session.query(Contenido).filter_by(titulo=value).first()
         if nombre_valido is not None:
             raise formencode.Invalid(
                 "El título ya existe!!!",
                 value,
                 state
                 )
         else:
             return value
コード例 #8
0
ファイル: usuarios.py プロジェクト: thluna/QuickCMS
 def guardar_usuario(self):
     """Guarda el nuevo usuario en la base de datos"""
     usuario = AuthUser()
     usuario.username = self.form_result["username"]
     usuario.email = self.form_result["email"]
     usuario.password = self.form_result["password"]
     group = Session.query(AuthGroup).filter_by(name=u'usuarios').first()
     group.users.append(usuario)
     Session.add(usuario)
     Session.add(group)
     Session.commit()
     c.usuario = usuario
     session['flash'] = u"Se agregó el usuario."
     session.save()
     return render("/index.mako")
コード例 #9
0
ファイル: usuarios.py プロジェクト: CentroGeo/QuickCMS
 def guardar_usuario(self):
     """Guarda el nuevo usuario en la base de datos"""
     usuario = AuthUser()
     usuario.username = self.form_result["username"]
     usuario.email = self.form_result["email"]
     usuario.password = self.form_result["password"]
     group = Session.query(AuthGroup).filter_by(name=u'usuarios').first()
     group.users.append(usuario)
     Session.add(usuario)
     Session.add(group)
     Session.commit()
     c.usuario = usuario
     session['flash'] = u"Se agregó el usuario."
     session.save()
     return render("/index.mako")
コード例 #10
0
ファイル: usuarios.py プロジェクト: thluna/QuickCMS
 def index(self, id):
     # Return a rendered template
     #return render('/usuarios.mako')
     # or, return a string
     c.usuario = Session.query(Usuario).get(id)
     return render("/derived/usuario/index.mako")
コード例 #11
0
ファイル: websetup.py プロジェクト: lisvivar/QuickCMS
def setup_app(command, conf, vars):
    """Place any commands to setup quickcms here"""
    # Don't reload the app if it was loaded under the testing environment
    load_environment(conf.global_conf, conf.local_conf)

    # Drop and Create the tables if they don't already exist
    Base.metadata.drop_all(checkfirst=True, bind=Session.bind)
    Base.metadata.create_all(bind=Session.bind)

    #usuarios, etc por defecto
    u = AuthUser()
    u.username = u'test'
    u.password = u'test'
    u.email = u'*****@*****.**'
    Session.add(u)

    u2 = AuthUser()
    u2.username = u'chafita'
    u2.password = u'chafita'
    u2.email = u'*****@*****.**'
    Session.add(u2)

    g = AuthGroup()
    g.name = u'admin'
    g.users.append(u)
    Session.add(g)

    g_usuario = AuthGroup()
    g_usuario.name = u'usuarios'
    g_usuario.users.extend([u, u2])
    Session.add(g_usuario)

    p_ver = AuthPermission()
    p_ver.name = u'ver'
    p_ver.groups.append(g_usuario)
    Session.add(p_ver)

    p = AuthPermission()
    p.name = u'edit'
    p.groups.append(g)
    Session.add(p)
    Session.commit()

    post = Contenido()
    post.titulo = u"Post de inicio"
    post.texto = u"Lorem ipsum dolor sit amet, consectetur adipiscing elit"
    post.usuario_id = u.id

    Session.add(post)
    Session.commit()
コード例 #12
0
class ContenidoController(BaseController):
    @ActionProtector(has_permission('ver'))
    def index(self):
        """Regresa todos los contenidos"""

        c.contenidos = Session.query(Contenido).all()
        return render("/derived/contenidos/index.mako")

    def view(self, id):
        """Regresa la vista de un contenido"""

        c.contenido = Session.query(Contenido).get(id)
        return render("/derived/contenidos/view.mako")

    @ActionProtector(has_permission('edit'))
    def crear_post(self, id=None):
        """Regresa la forma para crear una nueva entrada en el blog"""
        if id is not None:
            #estamos editando
            contenido = Session.query(Contenido).get(id)
            c.contenido = {
                'titulo': contenido.titulo,
                'texto': contenido.texto,
                'id': contenido.id
            }
            return htmlfill.render(render("/derived/contenidos/nuevo.mako"),
                                   c.contenido)

        return render("/derived/contenidos/nuevo.mako")

#    @validate(schema=FormaNuevoContenido(), form='crear_post')

    @ActionProtector(has_permission('edit'))
    def guardar_contenido(self, id=None):
        """Guarda en la base de datos el post recibido por la forma"""

        if id is not None:
            contenido = Session.query(Contenido).get(id)
            titulo_original = contenido.titulo
            schema = FormaNuevoContenido()  #contra que voy a validar
            ControllerState = FormencodeState(
            )  #el estado que le voy a pasar al validador
            if request.params['titulo'] != titulo_original:
                ControllerState.cambio = True  #en este caso el validador debe checar que el nuevo nombre sea unico
            else:
                ControllerState.cambio = False

            try:
                form_result = schema.to_python(request.params, ControllerState)
            except formencode.validators.Invalid, error:
                c.contenido = {
                    'titulo': request.params['titulo'],
                    'texto': request.params['texto']
                }
                return htmlfill.render(
                    render("/derived/contenidos/nuevo.mako"), c.contenido,
                    error)

            contenido.titulo = form_result['titulo']
            contenido.texto = form_result['texto']
            contenido.editado = datetime.datetime.now()
            Session.add(contenido)
            Session.commit()
            return redirect(
                url(controller="contenido", action="view", id=contenido.id))

        contenido = Contenido()
        contenido.titulo = self.form_result["titulo"]
        contenido.texto = self.form_result["texto"]
        usuario = request.environ.get('repoze.who.identity')['user']
        contenido.usuario_id = usuario.id
        Session.add(contenido)
        Session.commit()
        return redirect(
            url(controller="contenido", action="view", id=contenido.id))
コード例 #13
0
ファイル: contenido.py プロジェクト: CentroGeo/QuickCMS
    def view(self,id):
        """Regresa la vista de un contenido"""

        c.contenido = Session.query(Contenido).get(id)
        return render("/derived/contenidos/view.mako")
コード例 #14
0
ファイル: contenido.py プロジェクト: CentroGeo/QuickCMS
    def index(self):
        """Regresa todos los contenidos"""

        c.contenidos = Session.query(Contenido).all()
        return render("/derived/contenidos/index.mako")
コード例 #15
0
ファイル: __init__.py プロジェクト: CentroGeo/QuickCMS
def init_model(engine):
    """Call me before using any of the tables or classes in the model"""
    Session.configure(bind=engine)
コード例 #16
0
ファイル: usuarios.py プロジェクト: CentroGeo/QuickCMS
 def index(self,id):
     # Return a rendered template
     #return render('/usuarios.mako')
     # or, return a string
     c.usuario = Session.query(Usuario).get(id)
     return render("/derived/usuario/index.mako")
コード例 #17
0
    def index(self):
        """Regresa todos los contenidos"""

        c.contenidos = Session.query(Contenido).all()
        return render("/derived/contenidos/index.mako")
コード例 #18
0
ファイル: websetup.py プロジェクト: CentroGeo/QuickCMS
def setup_app(command, conf, vars):
    """Place any commands to setup quickcms here"""
    # Don't reload the app if it was loaded under the testing environment
    load_environment(conf.global_conf, conf.local_conf)

    # Drop and Create the tables if they don't already exist
    Base.metadata.drop_all(checkfirst=True, bind=Session.bind)
    Base.metadata.create_all(bind=Session.bind)

    #usuarios, etc por defecto
    u = AuthUser()
    u.username = u'test'
    u.password = u'test'
    u.email = u'*****@*****.**'
    Session.add(u)

    u2 = AuthUser()
    u2.username = u'chafita'
    u2.password = u'chafita'
    u2.email = u'*****@*****.**'
    Session.add(u2)

    g = AuthGroup()
    g.name = u'admin'
    g.users.append(u)
    Session.add(g)

    g_usuario=AuthGroup()
    g_usuario.name = u'usuarios'
    g_usuario.users.extend([u,u2])
    Session.add(g_usuario)

    p_ver = AuthPermission()
    p_ver.name = u'ver'
    p_ver.groups.append(g_usuario)
    Session.add(p_ver)

    p = AuthPermission()
    p.name = u'edit'
    p.groups.append(g)
    Session.add(p)
    Session.commit()

    post = Contenido()
    post.titulo = u"Post de inicio"
    post.texto = u"Lorem ipsum dolor sit amet, consectetur adipiscing elit"
    post.usuario_id = u.id

    Session.add(post)
    Session.commit()
コード例 #19
0
    def view(self, id):
        """Regresa la vista de un contenido"""

        c.contenido = Session.query(Contenido).get(id)
        return render("/derived/contenidos/view.mako")