I'm doing a program for teachers fill out a form with their CV.
After filling out the form it should be possible to print to PDF.
Obviously the form has to be on the same page.
I have a model with  relationship one2many, with teachers, experience,
distribution service, etc..

I haven´t seen so far a snippet using different classes. I don´t know
how to make this work.
what i want is 15 forms from different classes on the same page.
I wonder if is possible to make
docente.carga_horaria=self.request.get('carga_horaria')
where docente is from class Docente and carga_horaria is from class
Distribuicao.

** My Model**
# -*- coding:utf-8 -*-
from google.appengine.ext import db
from google.appengine.ext.db import djangoforms
from google.appengine.api import users

ESCOLHA_SEXO = ('masculino', 'feminino')
CHOICES_UNIDADE = ('Escola Superior de Tecnologia', 'Escola Superior
de Gestao')
CHOICES_CATEGORIA = ('assistente', 'coordenador', 'adjunto')
CHOICES_REGIME = ('trinta', 'cinquenta', 'sessenta', 'cem')

CHOICES_GENDER = (u'masculino', u'feminino')
CHOICES_PROFESSION = (u'trolha', u'carpinteiro', u'docente')
CHOICES_CATEGORY = (u'docente', u'trolha', u'assistente')

class Utilizador(db.Model):
    user=db.UserProperty('user', required=False)
    foto = db.BlobProperty('foto')

class Docente(db.Model):
    photo=db.BlobProperty('photo')
    nome = db.StringProperty(required=False)
    unidade = db.StringProperty(required=False, default='Escola
Superior de Tecnologia', choices = CHOICES_UNIDADE )
    categoria = db.StringProperty( default='assistente', choices =
CHOICES_CATEGORIA)
    regime = db.StringProperty(default = 'cinquenta', required=False,
choices = CHOICES_REGIME)
    utilizador=db.ReferenceProperty(Utilizador,
verbose_name=u'utilizador', required=False,
collection_name='utilizadores')

class Formacao(db.Model):
    formacao_ano = db.IntegerProperty(u'formacao_ano', required=True)
    formacao_grau = db.StringProperty(u'formacao_grau', required=True)
    formacao_area = db.StringProperty(u'formacao_area', required=True)
    formacao_instituicao = db.StringProperty(u'formacao_instituicao',
required=True)
    formacao_classificacao =
db.IntegerProperty(u'formacao_classificacao', required=True)
    docente=db.ReferenceProperty(Docente, verbose_name=u'profs',
required=True, collection_name='docentesF')

class Experiencia(db.Model):
    experienciaRelevante = db.StringProperty(required=False)
    docente=db.ReferenceProperty(Docente)

class Investigacao(db.Model):
    investigacao = db.StringProperty(u'investigacao', required=True)
    docente=db.ReferenceProperty(Docente, verbose_name=u'profs',
required=True, collection_name='docentesI')

class Distribuicao(db.Model):
    distribuicao = db.StringProperty(u'distribuicao', required=True)
    unidade_curricular = db.IntegerProperty(u'unidade_curricular',
required=True)
    tipo = db.StringProperty(u'tipo', required=True)
    carga_horaria=db.StringProperty(u'carga_horaria', required=True)
    docente=db.ReferenceProperty(Docente, verbose_name=u'profs',
required=True, collection_name='docentesD')

class Registo(db.Model):
    user = db.UserProperty(u'utilizador', required = False)
    nome = db.StringProperty(u'nome', required = False)
    apelido = db.StringProperty(u'apelido', required = False)
    sexo = db.StringProperty(u'sexo', required = False, choices =
CHOICES_GENDER)
    nascimento = db.DateProperty(u'dataN', required = False)
    telefone = db.PhoneNumberProperty(u'telf')
    email = db.EmailProperty(u'email')
    pais = db.StringProperty(u'pais', required = False)
    cidade = db.StringProperty(u'cidade', required = False)
    morada = db.PostalAddressProperty(u'endereco')
    cPostal = db.PostalAddressProperty(u'cPostal')
    profissao = db.StringProperty(u'profissao', choices =
CHOICES_PROFESSION)

class Category(db.Model):
    maincategory = db.StringProperty(u'main', required = False,
choices = CHOICES_CATEGORY)
    name = db.StringProperty(u'name', required = False)

** My Main **

class AcademiaHandler(webapp.RequestHandler):
    def get(self):
        user = users.get_current_user()
        if user:
            greeting=("<ul><li><strong><b>%s </b></strong>|</li><li><a
href=\"/perfil\"> Minha Conta </a>|</li><li><a href=\"%s\">Logout</a></
li></ul>" %(user.nickname(), users.create_logout_url("/")))
        else:
            greeting = ("<ul><li><a href=\"%s\">Login</a></li></ul>" %
(users.create_login_url("/")))

        utilizador = db.Query(models.Utilizador)
        utilizador = utilizador.filter('user =', user)
        listaUtlz = utilizador.fetch(limit = 1)

        docente = db.Query(models.Docente)
        for utilizador in listaUtlz:
            docente = docente.filter('utilizador =', utilizador)
        EscDocente = docente.fetch(limit = 100)
        EscDocente.reverse()

        experiencia = db.Query(models.Experiencia)
        docExp = experiencia.fetch(limit=1)

        path = os.path.join(os.path.dirname(__file__), 'templates/
livraria.html')
        self.response.out.write(template.render(path, locals(), debug
= True))

class CriarCvHandler(webapp.RequestHandler):
    def post(self):
        if self.request.get('EscDocente'):
            id = int(self.request.get('EscDocente'))
            docente=models.Docente.get(db.Key.from_path('Docente',
id))
        else:
            docente = models.Docente()
        data = forms.DocenteForm(data = self.request.POST)
        if data.is_valid():
            if self.request.get('photo'):
                docente.photo=db.Blob(self.request.get('photo'))
            docente.nome=self.request.get('nome')
            listaExp=models.Experiencia.all()
            listaUtlz = models.Utilizador.all()
            listaUtlz.filter('user =', users.get_current_user())

            for experiencia in listaExp:
                docente.experiencia = experiencia.key()

            for utilizador in listaUtlz:
                docente.utilizador=utilizador.key()

            docente.unidade=self.request.get('unidade')
            docente.categoria=self.request.get('categoria')
            docente.regime=self.request.get('regime')
            docente.experienciaRelevante =
self.request.get('experienciaRelevante')
            docente.put()
            self.redirect('/academia')
        else:
            self.redirect('/criarCv')

    def get(self):
        user=users.get_current_user()
        if user:
            greeting= ("<ul><li><strong><b>Benvindo %s </b></strong>|</
li><li><a href=\"/perfil\"> Minha Conta </a>|</li><li><a href=\"%s\">
Logout</a></li></ul>" %(user.nickname(),
users.create_logout_url("/")))
        else:
            greeting = ("<ul><li><a href=\"%s\">Login</a></li></ul>" %
(users.create_login_url("/")))

        conjUnidade=models.Docente.unidade.choices
        conjCategoria=models.Docente.categoria.choices
        conjRegime=models.Docente.regime.choices

        docExp = models.Experiencia.all()

        utilizador=db.Query(models.Utilizador)
        utilizador=utilizador.filter('user =', user)
        listaUtlz=utilizador.fetch(limit=1)

        if self.request.GET.has_key('id'):
            id=int(self.request.GET['id'])
            EscDocente=models.Docente.get(db.Key.from_path('Docente',
id))

        path = os.path.join(os.path.dirname(__file__), 'templates/
criarCv.html')
        self.response.out.write(template.render(path, locals(), debug
= True))

** My criarCv.html  to save and edit **

{% extends "masterPage.html" %}

{% block title %} Criar | Editar Cv {% endblock %}

{% block script %}
<script type="text/javascript">
function guardaCv()
{
    document.forms['criarCv'].submit();
}
</script>
{% endblock %}

{% block content %}
    {% if user %}
        {% if listaUtlz %}
            <form name="criarCv" method="POST" enctype="multipart/form-
data">
                <table align ="center">
                    <tbody>
                        <tr>
                            <td
colspan="2"><center><strong><p>Martinho Arantes</p></strong></center></
td>
                        </tr>

                        <tr>
                            <td>Nome Docente: </td>
                            <td><input type="text" name="nome"
value="{{ EscDocente.nome }}" </td>
                        </tr>

                         <tr>
                            <td>Unidade: </td>
                            <td>
                                <select name="unidade">
                                    {% for unidade in conjUnidade  %}
                                        <option selected>
{{ unidade }} </option>
                                    {% endfor %}
                                </select>
                            </td>
                        </tr>

                         <tr>
                            <td>Categoria: </td>
                            <td>
                                <select name="categoria">
                                    {% for categoria in conjCategoria
%}
                                        <option selected>
{{ categoria }} </option>
                                    {% endfor %}
                                </select>
                            </td>
                        </tr>

                        <td>Regime: </td>
                            <td>
                                <select name="regime">
                                    <option></option>
                                    {% for regime in conjRegime  %}
                                        <option selected> {{ regime }}
</option>
                                    {% endfor %}
                                </select>
                            </td>

                            <tr>
                            <td>Experiencia Relevante: </td>
                            <td><input type="text"
name="experienciaRelevante"
value="{{ EscDocente.experienciaRelevante }}" </td>
                            </tr>

                        <tr>
                                                        <td></td>
                                                        <td>
                                                                <input 
type="button" value="Guardar" onclick="guardaCv()" />
                                                                <input 
type="button" value="Voltar" onclick="history.go(-1)" /
>
                                                                <input 
type="hidden" name="EscDocente"
value="{{ EscDocente.key.id }}" />
                                                        </td>
                                                </tr>
                    </tbody>
                </table>
            </form>
        {% endif %}
    {% endif %}
{% endblock %}


** My livraria.html to display the information **
{% extends "masterPage.html" %}

{% block title %}O meu curriculum{% endblock %}

{% block script %}
<script type="text/javascript">
function editarCv(id)
{
        window.location.href = '/criarCv?id=' + id;
}
</script>
{% endblock %}

{% block content %}
        {% if user %}
                <table align="center">
                        <tbody>
                                <tr>
                                        <td><center><strong><p>O Meu Curriculum 
Vitae</p></strong></
center></td>
                                </tr>
                        </tbody>
                </table>
                {% if listaUtlz %}
                        <table align="center">
                                <tbody>
                                        <tr>
                                                <td></td>
                                                <td><input type="button" 
value="Criar CV" onclick="redirect(3)" /
></td>
                                        </tr>
                                </tbody>
                        </table>
                        {% if EscDocente %}
                                <table align="center">
                                        <tbody>
                                                <tr>
                                                        <td 
colspan="2"><center><strong><p>Hakuna Matata</p></strong></
center></td>
                                                </tr>
                                                {% for docente in EscDocente %}
                                                        <tr bgcolor="#eee">
                                <td>Nome:</td>
                                <td>{{ docente.nome }}</td>
                            </tr>
                            <tr>
                                <td>Unidade:</td>
                                <td>{{ docente.unidade}}</td>
                            </tr>
                            <tr>
                                <td>Categoria:</td>
                                <td>{{ docente.categoria }}</td>
                            </tr>
                            <tr>
                                <td>Regime:</td>
                                <td>{{ docente.regime }}</td>
                            </tr>
                            <tr>
                                <td>Experiencia:</td>
                                <td>{{ docente.experienciaRelevante }}
</td>
                            </tr>

                                                        <tr>
                                                                <td></td>
                                                                <td>
                                                                        <input 
type="button" value="Editar"
onclick="editarCv({{ docente.key.id }})" />
                                                                </td>
                                                        </tr>
                                                {% endfor %}
                                        </tbody>
                                </table>
                        {% endif %}
                {% endif %}
        {% endif %}
{% endblock %}

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to