- def _get_codigo(self):
- if not hasattr(self, '_codigo'): # cache
- n = long(self.fecha.strftime(Entrega.codigo_format))
- d = Entrega.codigo_dict
- l = len(d)
- res = ''
- while n:
- res += d[n % l]
- n /= l
- self._codigo = res
- return self._codigo
-
- def _set_fecha(self, fecha):
- self._SO_set_fecha(fecha)
- if hasattr(self, '_codigo'): del self._codigo # bye, bye cache!
-
- def _get_path(self):
- import os.path
- def path_join(*args):
- return os.path.join(*[unicode(p) for p in args])
- curso = self.entregador.curso
- instancia = self.instancia
- ejercicio = instancia.ejercicio
- fecha = self.fecha.strftime(r'%Y-%m-%d_%H.%M.%S')
- print ejercicio
- return path_join(curso.anio, curso.cuatrimestre, curso.numero,
- ejercicio.numero, instancia.numero, self.entregador.nombre, fecha)
- # FIXME un grupo con nombre tipo "../../lala" puede romper todo.
- # Hacer que el nombre del grupo sea numérico (o validar que
- # sean solo caracteres inofensivos: letras ASCII, espacio
- # -traducirlos a underscores- y números). Creo que un numero
- # que se autoasigne es lo más cómodo.
-