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.