Commits

Francisco Souza committed 9234625

Adição dos arquivos do projeto.

Comments (0)

Files changed (15)

+syntax:glob
+
+*.pyc
+*.py~
+*.db
+.project
+.pydev*
+.settin*
+*.html~
+*.css~

__init__.py

Empty file added.
+#!/usr/bin/env python
+from django.core.management import execute_manager
+try:
+    import settings # Assumed to be in the same directory.
+except ImportError:
+    import sys
+    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
+    sys.exit(1)
+
+if __name__ == "__main__":
+    execute_manager(settings)
+# Django settings for dj_portal_abc project.
+
+import os
+RAIZ_DO_PROJETO = os.path.dirname(os.path.abspath(__file__))
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+    # ('Your Name', 'your_email@domain.com'),
+)
+
+MANAGERS = ADMINS
+
+DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = 'portal_abc.db'             # Or path to database file if using sqlite3.
+DATABASE_USER = ''             # Not used with sqlite3.
+DATABASE_PASSWORD = ''         # Not used with sqlite3.
+DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
+DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'America/Sao_Paulo'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'pt-br'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash if there is a path component (optional in other cases).
+# Examples: "http://media.lawrence.com", "http://example.com/media/"
+MEDIA_URL = ''
+
+# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
+# trailing slash.
+# Examples: "http://foo.com/media/", "/media/".
+ADMIN_MEDIA_PREFIX = '/media/'
+
+# Make this unique, and don't share it with anybody.
+SECRET_KEY = 'fs(jbi1%mq*$r+!o7=skza!qlvuvw!y&j69zn6i*(6@yii5npx'
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.load_template_source',
+    'django.template.loaders.app_directories.load_template_source',
+#     'django.template.loaders.eggs.load_template_source',
+)
+
+MIDDLEWARE_CLASSES = (
+    'django.middleware.common.CommonMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+)
+
+ROOT_URLCONF = 'dj_portal_abc.urls'
+
+TEMPLATE_DIRS = (
+    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+    os.path.join(RAIZ_DO_PROJETO, 'templates')
+)
+
+INSTALLED_APPS = (
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.sites',
+    'usuarios',
+)

templates/base.html

+<html>
+    <head>
+        <title>{% block "titulo" %}ABC Informática{% endblock "titulo" %}</title>
+    </head>
+    <body>
+        {% block "conteudo" %}
+        {% endblock "conteudo" %}
+    </body>
+</html>

templates/usuarios/editar.html

+{% extends "base.html" %}
+
+{% block "titulo" %}Cadastro de novo usuário - {{ block.super }}{% endblock "titulo" %}
+
+{% block "conteudo" %}
+    <form action="" method="post">
+        <table border="0" width="60%">
+            {{ form.as_table }}
+            <tr>
+                <th>&nbsp;</th>
+                <td><input type="submit" value="Alterar" /></td>
+            </tr>
+        </table>
+    </form>
+{% endblock "conteudo" %}

templates/usuarios/listar.html

+{% extends "base.html" %}
+
+{% block "titulo" %}Listagem de usuários - {{ block.super }}{% endblock "titulo" %}
+
+{% block "conteudo" %}
+    
+    <ul>
+    {% for usuario in usuarios %}
+        <li><a href="{% url usuarios.views.ver_usuario usuario.id %}">{{ usuario.nome }}</a></li>
+    {% endfor %}
+    </ul>
+    
+    <a href="{% url usuarios.views.novo %}">Cadastrar novo usuário</a>
+
+{% endblock "conteudo" %}

templates/usuarios/novo.html

+{% extends "base.html" %}
+
+{% block "titulo" %}Cadastro de novo usuário - {{ block.super }}{% endblock "titulo" %}
+
+{% block "conteudo" %}
+    <form action="" method="post">
+        <table border="0" width="60%">
+            {{ form.as_table }}
+            <tr>
+                <th>&nbsp;</th>
+                <td><input type="submit" value="Cadastrar!" /></td>
+            </tr>
+        </table>
+    </form>
+{% endblock "conteudo" %}

templates/usuarios/ver.html

+{% extends "base.html" %}
+
+{% block "titulo" %}Detalhes do usuário {{ usuario.nome }} - {{ block.super }}{% endblock "titulo" %}
+
+{% block "conteudo" %}
+    
+    <table border="0" width="60%">
+        <tr>
+            <th>Nome:</th>
+            <td>{{ usuario.nome }}</td>
+        </tr>
+        <tr>
+            <th>Idade:</th>
+            <td>{{ usuario.idade }}</td>
+        </tr>
+        <tr>
+            <th>Opções:</th>
+            <td><a href="{% url usuarios.views.editar usuario.id %}">Editar</a> | <a href="{% url usuarios.views.apagar usuario.id %}">Apagar</a></td>
+        </tr>
+    </table>
+
+{% endblock "conteudo" %}
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('',
+    # Example:
+    # (r'^dj_portal_abc/', include('dj_portal_abc.foo.urls')),
+
+    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
+    # to INSTALLED_APPS to enable admin documentation:
+    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
+
+    # Uncomment the next line to enable the admin:
+    # (r'^admin/', include(admin.site.urls)),
+    (r'^usuarios/$', 'usuarios.views.listar_usuarios'),
+    (r'^usuarios/novo/$', 'usuarios.views.novo'),
+    (r'^usuarios/(?P<id>\d+)/$', 'usuarios.views.ver_usuario'),
+    (r'^usuarios/(?P<id>\d+)/apagar/$', 'usuarios.views.apagar'),
+    (r'^usuarios/(?P<id>\d+)/editar/$', 'usuarios.views.editar'),    
+)

usuarios/__init__.py

Empty file added.

usuarios/forms.py

+from django.forms import ModelForm
+from models import Usuario
+
+class UsuarioForm(ModelForm):
+    class Meta:
+        model = Usuario

usuarios/models.py

+from django.db import models
+
+# Create your models here.
+class Usuario(models.Model):
+    nome = models.CharField(max_length=100)
+    idade = models.IntegerField()

usuarios/tests.py

+"""
+This file demonstrates two different styles of tests (one doctest and one
+unittest). These will both pass when you run "manage.py test".
+
+Replace these with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+class SimpleTest(TestCase):
+    def test_basic_addition(self):
+        """
+        Tests that 1 + 1 always equals 2.
+        """
+        self.failUnlessEqual(1 + 1, 2)
+
+__test__ = {"doctest": """
+Another way to test that 1 + 1 is equal to 2.
+
+>>> 1 + 1 == 2
+True
+"""}
+

usuarios/views.py

+from django.shortcuts import render_to_response
+from django.template import RequestContext
+from django.core.urlresolvers import reverse
+from django.http import HttpResponseRedirect
+
+from models import Usuario
+from forms import UsuarioForm
+# Create your views here.
+
+def listar_usuarios(request):
+    usuarios = Usuario.objects.all()
+    return render_to_response('usuarios/listar.html', locals(), context_instance=RequestContext(request))
+    
+def novo(request):
+    if request.method == 'POST':
+        form = UsuarioForm(request.POST)
+        if form.is_valid():
+            form.save()
+            return HttpResponseRedirect(reverse('usuarios.views.listar_usuarios'))
+    else:
+        form = UsuarioForm()
+    return render_to_response('usuarios/novo.html', locals(), context_instance=RequestContext(request))
+    
+def ver_usuario(request, id):
+    usuario = Usuario.objects.get(pk=id)
+    return render_to_response('usuarios/ver.html', locals(), context_instance=RequestContext(request))
+    
+def apagar(request, id):
+    usuario = Usuario.objects.get(pk=id)
+    usuario.delete()
+    return HttpResponseRedirect(reverse('usuarios.views.listar_usuarios'))
+
+def editar(request, id):
+    usuario = Usuario.objects.get(pk=id)
+    if request.method == 'POST':
+        form = UsuarioForm(request.POST, instance = usuario)
+        if form.is_valid():
+            form.save()
+            return HttpResponseRedirect(reverse('usuarios.views.listar_usuarios'))
+    else:
+        form = UsuarioForm(instance = usuario)
+    return render_to_response('usuarios/editar.html', locals(), context_instance=RequestContext(request))
+