Pinax

De Pontão Nós Digitais

Pinax nada mais é do que um script que instala uma coleção de apps (http://dist.pinaxproject.com/dev/) já testadas e estáveis.

Porém, a maioria (senão todas) as apps são de terceiros. Apps Django podem ser adquiridas em http://djangopackages.com/categories/apps/ (atenção ao status de commits como indicador de uma app ser interessante para nós ou não).

Instalação

Instale a versão unstable. Se quiser pode usar o virtualenv:

   sudo pip install virtualenv
   virtualenv mysite-env
   source mysite-env/bin/activate

Os comandos abaixo funcionam com ou sem virtualenv (duh):

   pip install Pinax
   pinax-admin setup_project -l

Escolha um projeto (no caso, escolhi social) e:

   pinax-admin setup_project -b social mysite

Agora entre no seu projeto:

   cd mysite/
   python manage.py syncdb
   python manage.py runserver

Pinax usa SQLite por padrão. Altere o seu settings.py, DATABASES para seu bd específico.

Lembrando que qualquer app pode ser instalada independente do Pinax. Pinax só facilita a vida. Para como instalar apps independentes, veja Django.

Mais em http://pinaxproject.com/docs/dev/gettingstarted/

Apps e deps instaladas por estilo

social

  • django-mailer
  • django-email-confirmation
  • django-timezones
  • django-ajax-validation
  • pytz
  • django-openid
  • python-openid
  • django-uni-form
  • django-announcements
  • django-pagination
  • django-notification
  • docutils
  • gdata
  • Pygments
  • python-twitter
  • simplejson
  • textile
  • vobject
  • ybrowserauth
  • Markdown
  • diff-matc
  • h-patch
  • geopy
  • creole
  • django-atomformat
  • django-avatar
  • django-bookmarks
  • django-flag
  • django-friends
  • django-locations
  • django-messages
  • django-microblogging
  • django-oembed
  • django-swaps
  • django-sorting
  • django-tagging
  • django-threadedcomments
  • django-voting
  • django-wakawaka
  • django-photologue
  • django-attachments
  • django-markup
  • django-groups
  • django-tagging-ext


Colocando o Site no Ar

Edite:

/etc/apache2/httpd.conf

E adicione no fim do arquivo:

WSGIDaemonProcess mysite python-path=/path/to/virtualenvs/pinax-env/lib/python2.5/site-packages
WSGIProcessGroup mysite
WSGIScriptAlias / /path/to/project/deploy/wsgi.py
<Directory /path/to/project/deploy>
    Order deny,allow
    Allow from all
</Directory>

No caso, "WSGIScriptAlias /" fará com que o site fique na raiz da URL.

Rode:

apache2ctl restart

Se ainda não estiver carregando os arquivos direito, tente adicionar essas linhas no mesmo arquivo:

Alias /site_media/ /path/to/project/site_media/
Alias /admin_media/ /path/to/project/admin_media/

Vá até a pasta do seu projeto e rode:

python manage.py build_static

E depois novamente:

apache2ctl restart

Caso ainda não funcione, adicione as seguintes linhas em <projeto>/deploy/pinax.wsgi

import site
site.addsitedir('<caminho para o ambiente virtual pinax>/lib/python2.5/site-packages')


Mais informações:

http://pinaxproject.com/docs/dev/deployment/

http://pinaxproject.com/docs/dev/media/

Exemplo

Exemplo do projeto "social"

Bugs Conhecidos

A versão do Pinax que estava no Hera tinha um bug que deu um trabalho para descobrir o que era.

Ele reclamava que "bool" não tinha o método "has_header".

A solução está aqui:

https://github.com/pinax/pinax/commit/7e045b134630f3b4546082a9ddde4e6fce4483e4