Traducción realizada por Alejandro Sánchez Marín (asmarin@us.es)
SchoolBell
==========
SchoolBell es una aplicación de fuente abierta y libre para permitir a
organizaciones y grupos coordinar la administración de horarios y agendas.
Los usuarios puede gestionar sus calendarios personales, de grupo y de
recursos, por ejemplo, clases, proyectores, etc, via interface web, o usando
el cliente de iCalendar para Mozilla o iCal.
SchoolBell está escrito en Python, y es un componente Zope 3 que funciona
también como servidor de calendarios. Es una parte del proyecto SchoolTool,
creado por la Fundación Shuttleworth.
Sitio Web: http://www.schooltool.org/schoolbell
Lista de correo: http://lists.schooltool.org/mailman/listinfo/schooltool
Reporte de errores: http://issues.schooltool.org/
Requerimientos de sistema
-------------------------
- Python 2.3 (http://www.python.org/)
(Usuarios Debian puede necesitar ambos paquetes python2.3 y python2.3-xml)
- Zope X3 (http://www.zope.org/)
(Los usuarios necesitan la version ZopeX3 revisión subversion 29357, las
librerias de zope están incluidas en esta versión)
- Python Imaging library (http://www.pythonware.com/products/pil/index.htm)
- Entorno de desarrollo y compilador de C (para desarrolladores)
(Existen paquetes binarios precompilados para usuarios Windows)
Construyendo SchoolBell
-----------------------
Ejecutar 'make' para construir todos los módulos de extensión necesarios.
Es una buena idea ejecutar 'make test' y 'make ftest' para chequear que todas
las unidades esenciales son funcionales.
Instalando y Configurando con Distutils
---------------------------------------
Es posible instalar SchoolBell usando distutils de python. Para hacer esto,
necesita usar uno de los archivos comprimidos tar/zip, los cuales debe
descomprimir usando las herramientas apropiadas a su SO.
Para instalar el software hay dos maneras:
Primera, desde el directorio raiz de la distribución SchoolBell descomprimida puede usarse
lo siguiente:
python setup.py install
Segunda, desde el directory Zope3/ incluido con la distribución SchoolBell.
python setup.py schoolbell install
Finalmente, para configurar una instancia de SchoolBell, copia el script de instancia
en un directorio separado y crea un archivo de configuración con el nombre del script
y la extensión .conf. Una buena plantilla puede encontrarse en el directorio raíz
de la distribución SchoolBell (.conf.in). Ejecutando este script lanzaremos la instancia
en ese directorio.
Todos los interesados en instalar en una localización no estándar deberán investigar
las opciones --paths y --default-config para los comandos de instalación de distutils.
Nota: Si esta usando una distribución linux estos paquetes existen, debera considera
usar esos paquetes via apt-get en vez de este procedimiento.
Ejecuntando SchoolBell
----------------------
El directorio raíz contiene el siguiente script ejecutable en Python:
schoolbell-server.py ejecuta el server SchoolBell
El server SchoolBell automaticamente crea una base de datos vacía en caso de no
encontrar ninguna previamente. Puede personalizar la localización de la base de datos
y otros pocos parametros en el fichero de configuración schoolbell.conf. Hay un ejemplo
en el archivo schoolbell.conf.in, que puede renombrando y modificarlo a sus necesidades.
Por defecto el usuario con privilegios de administrador es creado con la nueva base de
datos. El nombre de usuario es 'manager' y la contraseña es 'schoolbell'.
El puerto por defecto de la aplicación web es 7080. Una vez que el servidor está
ejecutandose, puede conectarse a él con un navegador web.
EL Makefile contiene diversos atajos, que son mantenidos para compatibilidad hacia atrás.
make run ejecuta el servidor SchoolBell
make build construye SchoolBell y las librerias incluidas en Zope 3
make test ejecuta el test de integridad de postinstalación en SchoolBell
make ftest ejecuta el test de funcionalidad de postinstalación en Schoolbell
Estos comandos deben ejecutarse en el directorio raíz.
Estructura del proyecto
-----------------------
GPL GNU General Public License, version 2
README este archivo
RELEASE notas de novedades de la última versión
Makefile makefile para construir los módulos de extensión
setup.py distutils script de configuración para construir modulos de extensión
test.py test script
remove-stale-bytecode.py
script que borra ficheros stale *.pyc
schoolbell-server.py script para ejecutar el servidor SchoolBell
schoolbell.conf.in ejemplo de archivo de configuración de SchoolBell
build/ archivos temporales durante el proceso de instalación
debian/ Soporte de paquetes Debian
doc/ documentación
src/ código fuente
schoolbell/ Paquete Python 'schoolbell'
app/ La aplicación SchoolBell
calendar/ Librería de calendario SchoolBell para Zope 3
relationship/ La libreria interelacional de SchoolBell
Testing
-------
There are two sets of automated tests: unit tests and functional tests.
Unit tests (sometimes also called programmer tests) test individual components
of the system. Functional tests (also called customer or acceptance tests)
test only externally visible behaviour of the whole system.
Tests themselves are scattered through the whole source tree. Subdirectories
named 'tests' contain unit tests, while subdirectories named 'ftests' contain
functional tests.
To run all unit tests, do
python2.3 test.py -pv
To run all functional tests, do
python2.3 test.py -fpv
The test runner has more options and features. To find out about them, do
python2.3 test.py -h
Functional tests are are not completely isolated. Some functional tests
create named database state snapshots, while other tests reuse those snapshots
of known database state. The test runner does not know which tests create
which snapshots, so if you want to run just one (or a couple) of functional
tests in isolation, it is likely that you will have first run the full suite
to create the necessary snapshots. Do not restart the test server, or all
saved snapshots will be gone.
Hosting Virtual
---------------
SchoolBell proporciona soporte para hosting virtual con la librería mod_rewrite de
Apache y libproxy. Por ejemplo, vamos a definir dos instancias de SchoolBell
corriendo en los puertos 7001 y 7002, y los vamos ha hacer disponibles como
school1.example.org y school2.example.org, ambos en el puerto 80. Para hacerlo,
añadiremos las siguiente líneas a los archivos de configuración de Apache:
NameVirtualHost *:80
ServerName school1.example.org
RewriteEngine On
RewriteRule ^/(.*) http://localhost:7001/++vh++http:school1.example.org:80/++/$1 [P]
ServerName school2.example.org
RewriteEngine On
RewriteRule ^/(.*) http://localhost:7002/++vh++http:school2.example.org:80/++/$1 [P]
Falta decir que mod_proxy y mod_rewrite deben de estar activados en Apache también.
Puede tener soporte para SSL en el mismo sentido, es una alternativa al construido con
soporte SSL:
NameVirtualHost *:443
ServerName school1.example.org
SSLEnable # Apache 1.3
# SSLEngine On # Apache 2.0
RewriteEngine On
RewriteRule ^/(.*) http://localhost:7001/++vh++https:school1.example.org:443/++/$1 [P]
El interface de la aplicación web también soporta hosting virtual de este modo, solo cambia
el número de puerto local.