validator=validators.Bool(if_empty=1)),
])
-def minimize(text, size=15):
- if text is not None and len(text) > size:
- text = text[:size] + '...'
- return text
-
class DocenteController(controllers.Controller, identity.SecureResource):
"""Basic model admin interface"""
require = identity.has_permission('admin')
return dict(records=r, name=name, namepl=namepl, tg_flash=f)
+ @expose()
+ def activate(self, id, activo):
+ """Save or create record to model"""
+ try:
+ id = int(id)
+ except ValueError:
+ raise redirect('../list',
+ tg_flash=_(u'Identificador inválido: %s.') % id)
+
+ try:
+ r = cls.get(id)
+ except LookupError:
+ f = _(u'No existe el %s con identificador %d.') % (name, id)
+ raise redirect('../list', tg_flash=f)
+
+ r.activo = bool(int(activo))
+
+ raise redirect('../list')
+
@expose(template='kid:sercom.subcontrollers.%s.templates.new' % name)
def new(self, **kw):
"""Create new records in model"""
- return dict(name=name, namepl=namepl, form=form)
+ f = kw.get('tg_flash', None)
+ return dict(name=name, namepl=namepl, form=form, tg_flash=f, values=kw)
@validate(form=form)
@error_handler(new)
@expose()
def create(self, **kw):
"""Save or create record to model"""
- Docente(**kw)
+ try:
+ Docente(**kw)
+ except Exception, e:
+ raise redirect('new', tg_flash=_(u'No se pudo crear el nuevo %s, ' \
+ 'probablemente ya existe uno con el mismo usuario (error: %s).'
+ % (name, e)), **kw)
raise redirect('list', tg_flash=_(u'Se creó un nuevo %s.') % name)
def edit(self, id, **kw):
"""Edit record in model"""
try:
- r = cls.get(int(id))
+ id = int(id)
+ except ValueError:
+ raise redirect('../list',
+ tg_flash=_(u'Identificador inválido: %s.') % id)
+
+ f = kw.get('tg_flash', None)
+ try:
+ r = cls.get(id)
except LookupError:
- flash = _('No existe el docente con identificador %d.') % id
+ f = _(u'No existe el %s con identificador %d.') % (name, id)
+ raise redirect('../list', tg_flash=f)
- return dict(name=name, namepl=namepl, record=r, form=form)
+ return dict(name=name, namepl=namepl, record=r, form=form, tg_flash=f)
@validate(form=form)
@error_handler(edit)
@expose()
def update(self, id, **kw):
"""Save or create record to model"""
- record = cls.get(int(id))
- record.set(**kw)
+ try:
+ id = int(id)
+ except ValueError:
+ raise redirect('../list',
+ tg_flash=_(u'Identificador inválido: %s.') % id)
+
+ try:
+ record = cls.get(id)
+ except LookupError:
+ raise redirect('../list',
+ tg_flash=_(u'No existe el %s con identificador %d.')
+ % (name, id))
+
+ try:
+ record.set(**kw)
+ except Exception, e:
+ raise redirect('../edit/%d' % id, tg_flash=_(u'No se pudo ' \
+ 'modificar el %s, probablemente ya existe uno con el mismo ' \
+ 'usuario (error: %s).' % (name, e)), **kw)
raise redirect('../list',
tg_flash=_(u'El %s fue actualizado.') % name)
@expose(template='kid:sercom.subcontrollers.%s.templates.show' % name)
def show(self,id, **kw):
"""Show record in model"""
- r = cls.get(int(id))
+ try:
+ id = int(id)
+ except ValueError:
+ raise redirect('../list',
+ tg_flash=_(u'Identificador inválido: %s.') % id)
+
+ try:
+ r = cls.get(id)
+ except LookupError:
+ raise redirect('../list',
+ tg_flash=_(u'No existe el %s con identificador %d.')
+ % (name, id))
+
r.obs = publish_parts(r.observaciones, writer_name='html')['html_body']
return dict(name=name, namepl=namepl, record=r)
@expose()
def delete(self, id):
"""Destroy record in model"""
- cls.delete(int(id))
+ try:
+ id = int(id)
+ except ValueError:
+ raise redirect('../list',
+ tg_flash=_(u'Identificador inválido: %s.') % id)
+
+ try:
+ cls.delete(id)
+ except LookupError:
+ raise redirect('../list',
+ tg_flash=_(u'No existe el %s con identificador %d.')
+ % (name, id))
raise redirect('../list',
tg_flash=_(u'El %s fue eliminado permanentemente.') % name)