def POST(self): f = self.get_form() if f.validates(): s = Sala(nome=f["nome"].value, largura=int(f["largura"].value), altura=int(f["altura"].value)) c = Connection() c.acquire() salas = Sala.load_salas(c) if salas: next_id = max(x.id for x in salas) + 1 else: next_id = 1 s.id = next_id salas.append(s) c.save("salas", salas) c.release() c.close() raise web.seeother('/listar_salas') else: return render.cadastrar(u'Cadastrar Sala', f)
def testCriarSala(): s1 = Sala(nome_sala="Sala 01", lotacao=10) s2 = Sala(nome_sala="Sala 02", lotacao=5) try: db.session.add(s1) db.session.add(s2) except: return "Erro" return s1.nome_sala, s1.lotacao, s2.nome_sala, s2.lotacao
def POST(self): c = Connection() c.acquire() salas = Sala.load_salas(c) f = self.get_form(salas) if f.validates(): s = Sessao(hora=f['hora'].value, filme=f['filme'].value, sinopse=f['sinopse'].value) sala_id = int(f['sala'].value) s.sala = filter(lambda x: x.id == sala_id, salas)[0] s.generate_assentos() sessoes = Sessao.load_sessoes(c) if sessoes: next_id = max(x.id for x in sessoes) + 1 else: next_id = 1 s.id = next_id sessoes.append(s) c.save("sessoes", sessoes) c.release() raise web.seeother('/sessoes') else: c.release() return render.cadastrar(u'Cadastrar Sessão', f)
def users(id=None): if request.method == 'GET': if id is not None: sala = Sala.query.get(id) return jsonify(sala.serialize()), 200 else: salas = Sala.query.all() json_list = [sala.serialize() for sala in salas] return jsonify(json_list), 200 if request.method == 'POST': sala = Sala() sala.nombreDeSala = request.json.get('nombreDeSala') sala.edadInicial = request.json.get('edadInicial') sala.edadFinal = request.json.get('edadFinal') db.session.add(sala) db.session.commit() return jsonify(sala.serialize()), 201 if request.method == 'PUT': if id is not None: user = User.query.get(id) user.name = request.json.get('name') db.session.commit() return jsonify(user.serialize()), 201 if request.method == 'DELETE': if id is not None: user = User.query.get(id) db.session.delete(user) db.session.commit()
def criar(classe): resposta = jsonify({ "status": "201", "result": "ok", "details": "Objeto criado!" }) dados = request.get_json() try: if classe == "sala": novo = Sala(**dados) elif classe == "pessoa": numero_salas = Sala.query.count() numero_cafes = Cafe.query.count() indice = random.randrange(0, numero_salas) indice_cafe = random.randrange(0, numero_cafes) db_salas = db.session.query(Sala).all() db_cafes = db.session.query(Cafe).all() if numero_salas != 0 or numero_cafes != 0: novo = Pessoa(**dados, sala=db_salas[indice], cafe=db_cafes[indice_cafe]) else: resposta = jsonify({ "status": "400", "result": "error", "details ": str(e) }) elif classe == "cafe": numero_cafes = Cafe.query.count() if numero_cafes <= 1: novo = Cafe(**dados) else: resposta = jsonify({ "status": "400", "result": "error", "details ": str(e) }) db.session.add(novo) db.session.commit() except Exception as e: resposta = jsonify({ "status": "400", "result": "error", "details ": str(e) }) resposta.headers.add("Access-Control-Allow-Origin", "*") return resposta
def testCriarPessoa(): s2 = Sala(nome_sala="Sala 02", lotacao=11) c2 = Cafe(nome_cafe="CoffePlus") p1 = Pessoa(nome="Cristina", sobrenome="de Souza", sala=s2, cafe =c2) p2 = Pessoa(nome="Berta", sobrenome="Maria", sala=s2, cafe =c2) try: db.session.add(p1) db.session.add(p2) except: return "Erro" return p1.nome, p1.sobrenome, p2.nome, p2.sobrenome
def get_form(self, salas=None): if salas is None: salas = Sala.load_salas() form = web.form.Form( # {{{ web.form.Textbox('filme', web.form.notnull, description="Filme:"), web.form.Dropdown( 'sala', [(s.id, '{0} ({1}x{2})'.format(s.nome, s.largura, s.altura)) for s in salas], web.form.notnull, description="Sala:"), web.form.Textbox('hora', web.form.notnull, web.form.regexp('^\d+:\d+$', 'Hora inválida'), description="Hora:"), web.form.Textarea('sinopse', description="Sinopse:", rows='3'), web.form.Button('Cadastrar', type='submit')) # }}} return form()
def GET(self): salas = Sala.load_salas() salas.sort() return render.listar_salas(salas)
def post(self, request, *args, **kwargs): ctx = self.get_context_data() if self.request.POST.get('dono'): sala = Sala(dono=self.request.POST['dono']) sala.nome = self.request.POST['nome'] if not Usuario.objects.all().filter( nome=self.request.POST["dono"]): dono_usr = Usuario(nome=self.request.POST["dono"]) dono_salas = [] dono_salas.append(sala.id) dono_usr.salas = json.dumps(dono_salas) dono_usr.save() else: dono_usr = Usuario.objects.get(nome=self.request.POST["dono"]) dono_salas = json.loads(dono_usr.salas) dono_salas.append(sala.id) dono_usr.salas = json.dumps(dono_salas) dono_usr.save() videos = self.request.POST['video'].split(",") embeds = [] for v in videos: url_data = urlparse.urlparse(v) query = urlparse.parse_qs(url_data.query) video_id = query["v"][0] embeds.append("https://www.youtube.com/embed/" + video_id) sala.video = json.dumps(embeds) temas = self.request.POST['temas'].split(",") sala.temas = json.dumps(temas) membros = self.request.POST['membros'].split(",") for membro in membros: if not Usuario.objects.all().filter(nome=membro): membro_usr = Usuario(nome=membro) membro_usr.save() sala.membros = json.dumps(membros) sala.save() return redirect("/" + str(sala.id)) if self.request.POST.get('membro'): membro = self.request.POST['membro'] sala = self.request.POST['sala'] f = Sala.objects.all().filter(id=sala) if f: sala = f[0] membros = json.loads(sala.membros) for m in membros: if m == membro or membro == sala.dono: self.request.session["SALA"] = sala.id self.request.session["USR"] = membro return redirect("/" + str(sala.id)) else: ctx['error_a'] = "Você não foi convidado para esta sala" else: ctx['error_a'] = "Sala não encontrada" return super(TemplateView, self).render_to_response(ctx)
import os from models import Pessoa, Sala, Cafe from config import db, arquivobd # Teste das classes criadas if __name__ == "__main__": if os.path.exists(arquivobd): os.remove(arquivobd) db.create_all() s1 = Sala(nome_sala="Sala 01", lotacao=10) s2 = Sala(nome_sala="Sala 02", lotacao=11) s3 = Sala(nome_sala="Sala 03", lotacao=10) s4 = Sala(nome_sala="Sala 04", lotacao=11) c1 = Cafe(nome_cafe="House") db.session.add(s1) db.session.add(s2) db.session.add(s3) db.session.add(s4) db.session.add(c1) db.session.commit() p1 = Pessoa(nome="Cristina", sobrenome="de Souza", sala=s1, cafe=c1) p2 = Pessoa(nome="Paulo", sobrenome="Silva", sala=s1, cafe=c1) p3 = Pessoa(nome="Tomas", sobrenome="Alberto", sala=s2, cafe=c1) p4 = Pessoa(nome="Ana", sobrenome="Clara", sala=s1, cafe=c1) db.session.add(p1) db.session.add(p2)