Пример #1
0
    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)
Пример #2
0
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
Пример #3
0
    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)
Пример #4
0
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()
Пример #5
0
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
Пример #6
0
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
Пример #7
0
 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()
Пример #8
0
 def GET(self):
     salas = Sala.load_salas()
     salas.sort()
     return render.listar_salas(salas)
Пример #9
0
    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)
Пример #10
0
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)