Ayuda diseño/desarrollo de RedPanal en <grafiks.info:8080>

pads:

Varios

old -> clonar de bitbucket -> https://bitbucket.org/san/redpanal/ en /opt/redpanal

hg clone https://bitbucket.org/san/redpanal

@@clonar RedPanal de Github@@

git clone git@github.com:RedPanal/redpanal.git

crear env desde /opt/django_workenv_ssp

source /opt/django_workenv_wsp/bin/activate

ruta del repositorio redpanal (para correr git)

cd /opt/redpanal

ruta para correr la instancia django de redpanal (para correr ./manage.py)

cd /opt/redpanal/redpanal

ruta para acceder a la db y directorios del proyecto

cd /opt/redpanal/redpanal/redpanal

crear db

./manage.py syncdb

actualizar db (despues de un pull que crea nuevosfields en los modelos)

./manage.py migrate

si no funciona, metodo manual ej para redpanal.audio:

./manage.py schemamigration redpanal.audio --auto
./manage.py migrate

correr el servidor http en el puerto 8080 (con virtualenv corriendo):

cd /opt/redpanal/redpanal
./manage.py runserver 0.0.0.0:8080

Recursos

Iconos de Font Awesome http://fontawesome.io/icons/

Git

Guías

Virtual Environments http://docs.python-guide.org/en/latest/dev/virtualenvs/

Django Endless Pagination http://django-endless-pagination.readthedocs.org/en/latest/templatetags_reference.html

South/migrate

si hubo cambios en la estructura de la base de datos, se deben correr todos los script de migración de las aplicaciones (que usen South) con:

./manage.py migrate

también, para migrar todas las aplicaciones y ademas sincronizar la base de datos

./manage.py syncdb --migrate

para migrar solo una aplicacion en particular:

./manage.py migrate <aplicacion>

# ej:
./manage.py migrate audio

Crear los script de migración

Cuando uno efectua cambios en los modelos de datos, debe crear su script de migracion, y ejecutarlo.

Crear un nuevo script de migración:

./manage.py schemamigration <aplicacion> --auto

Aplicar la migración a la base de datos:

./manage.py migrate <aplicacion>

más info:

gettext

(traducciones)

info

para que los textos sean "traducibles" en el código

  • en archivos python (.py): _("english text")
  • en templates django (.html): {% trans "english text" %}

Uso de gettext

Tener instalado gettext en el sistema:

apt-get install gettext

1) Regenerar django.po (actuaizar de las cadenas traducibles de todo el código)

  • Activar el virtualenv
  • ir un direcorio por encima locale/ (/opt/redpanal/redpanal/redpanal)
  • ejecutar django-admin.py makemessages -a

Entonces se regenera ../locale/es/LC_MESSAGES/django.po y se puede editar django.po con un editor de texto cualquiera (nota: eliminar el comment #fuzzy de la traduccion "adivinada").

2) Compilar django.mo:

  • django-admin.py compilemessages

Screen

"Screen" es un programa que sirve para mantener sesiones de terminal "en segundo plano", de las que se puede salir con una combinación de teclas, y volver a entrar con el comando screen. Útil para cerrar una sesion ssh y poder dejar el servidor http de pruebas de django funcionando.

Listar las instancias de screen abiertas

screen -list

Abrir instancia (cuando existe sólo una?)

screen -r

Crear una nueva instancia screen

screen
# luego enter o spacebar

Salir de una instancia: "Ctrl + a", y luego "d" (detach)

Fabric

Instalar fabric en pc local dentro de un virtualenv:

requerimientos: tener instalado virtuaenv

 apt-get install python-virtualenv python-dev

elegir una carpeta para crear virtualenvs

 cd <virtualenvs folder>

crear el virtualenv con algun nombre:

 virtualenv redpanal-fabric

si todo sale bien, activar el virtualenv creado con:

 source redpanal-fabric/bin/activate

instalar fabric v 1.6

 pip install pycrypto
 pip install fabric==1.6

Usar fabric:

ir a la carpeta del repo local de RedPanal, si no lo tenemos clonarlo

cd <carpeta de repos>
git clone https://github.com/RedPanal/redpanal.git
cd redpanal

para reiniciar el servidor si se cayó:

fab webserver_restart

para hacer deploy:

fab deploy

listar los comandos de fab

fab -l

Reiniciar el servidor en el servidor (como root)

 sudo /etc/init.d/uwsgi2 restart