tdc: adicionando código finalizado na palestra

O código apresentado durante a palestra ficou nesse estado. Os próximos
commits apresentarão o passo a passo para implementação das features
pendentes.

Próximos passos:

	- edição inline de opções no admin
	- construção do template de exibição da enquete
	- view para gravar votos nas opções
	- [PLUS] visualiação de resultados parciais

Além disso, também serão inseridos arquivos e passos necessários para
deploy no Tsuru (http://tsuru.io).
slides/5: adicionando slide da Globo.com
slides/4: corrigindo PaaS
tests/test_admin: criando teste para garantir que model Enquete está
registrado

Para checar se o model está registrado, precisamos pegar o registro de
modelos (admin.site._registry) e fazer uma asserção, garantindo que o
nosso modelo está presente no registro.
enquetes/admin: criando OpcaoInline

No Django admin, inlines são utilizados para editar em um só formulário
diversos itens que dependem do item pai. Neste caso, o OpcaoInline será
utilizado para editar, pelo admin, as opções de uma enquete na página de
edição da enquete, sendo possível cadastrar a enquete e todas as opções
em apenas uma página.

Screenshot: http://fsouza.net/screenshot-enquete.
enquete/admin: usando OpcaoInline na enquete

Desta forma, é possível editar a enquete e suas opções utilizando em
apenas uma tela :)

Screenshot: http://fsouza.net/screenshot-enquete.
enquetes/templates: adicionando template de votação

Este template exibe a enquete e as possíveis opções. O usuário de
internet pode marcar uma das opções, mas ao clicar em votar, o usuário
recebe um erro de "Method not allowed", pois a view de enquetes não tem
suporte ao método post. Vamos implementar :)

Screenshot: http://fsouza.net/18fefV3.
enquetes/tests/views: inserindo opções no banco no setUp

Essas opções serão importante para testar a ação de salvar um voto,
implementado no POST da view EnqueteView. Para ser capaz de votar numa
enquete pelos testes, é necessário que existam opções nessa enquete.
tdc/enquetes: implementando o registro de votos na view de enquete

Para registrar o voto, basta selecionar a opção de acordo com o ID
informado, e usar o models.Voto.objects.create para gravar o voto no
banco de dados. O teste não faz um assert pois, ao falhar, o
models.Voto.objects.get lança uma exceção. Logo, caso o voto não seja
criado, o teste falha.

Essa implementação já funciona para o caminho ótimo, mas pode falhar em
alguns casos:

	- quando a opção escolhida não existe
	- quando a opção escolhida não pertence à enquete equivalente ao
	  ID presente na URL
	- quando o usuário clica em votar em marcar nenhuma opção

Vamos corrigir esses problemas :)
tdc/enquetes: retornando 404 ao tentar votar em opção inexistente

Esse código é bastante semelhante ao código do método get. É checado se
a opção informada realmente exista, e caso não exista, a view retorna
404.
tdc/enquetes: retornando 404 quando opção não é da enquete informada

Quando a opção informada não bate com o ID da enquete que está na URL, a
view retorna 404.

Dos problemas apresentados no commit
9f81bd300a48adb8549c6d790dba87f787e955b1, resta apenas:

- quando o usuário clica em votar em marcar nenhuma opção