예제 #1
0
def create():
    #Auth check
    auth.authenticated_or_401()

    if request.method == "POST":
        #Chequea permiso
        User.db = get_db()
        if (not User.has_permission(session['id'],'instrumento_new')):
            abort(401)
        else:
            form = forms.ValidateInstrument(request.form, skip_unknown_keys=True)
            if form.validate():
                file = request.files['image']
                if file: # and allowed_file(file.filename):
                    # filename = new_file_name(file)
                    # file.save(os.path.abspath(UPLOAD_FOLDER+filename))
                    # # file.save(os.path.abspath(UPLOAD_FOLDER2+filename))
                    # Instrument.db = get_db()
                    # Instrument.create(request.form, filename)
                    
                    newfile = file.read()
                    Instrument.db = get_db()
                    Instrument.create(request.form, newfile)

                    response_object = {'status': 'success', 'message': 'Se agregó el nuevo instrumento'}
                else:
                    response_object = {'status': 'warning', 'message': 'Debes subir una imagen para el instrumento.'}
            else:
                response_object = {'status': 'warning', 'message': 'Verifica los campos obligatorios y no ingreses nombres no permitidos.'}
            return jsonify(response_object)
예제 #2
0
def update():
#Auth check
    auth.authenticated_or_401()

    if request.method == "POST":
        #Chequea permiso
        User.db = get_db()
        if (not User.has_permission(session['id'],'instrumento_update')):
            abort(401)
        else:
            post_data = request.form
            form = forms.ValidateInstrument(post_data, skip_unknown_keys=True)
            if not form.validate():
                response_object = {'status': 'warning', 'message': 'Verifica los campos obligatorios y no ingreses nombres no permitidos.'}
            else:
                file = request.files['image']
                Instrument.db = get_db()

                if file: # and allowed_file(file.filename):    
                    newfile = file.read()
                    Instrument.update_with_image(post_data, newfile)

                else:
                    Instrument.update(post_data)
                response_object = {'status': 'success', 'message': 'Se actualizó el instrumento'}

            return jsonify(response_object)
예제 #3
0
def get_image(instrument_id):
    #Auth check
    auth.authenticated_or_401()
    #Chequea permiso
    User.db = get_db()
    if (not User.has_permission(session['id'],'instrumento_show')):
        abort(401)
    else:
        Instrument.db = get_db()
        return Instrument.get_image(instrument_id)['image']
예제 #4
0
def all():
    #Auth check
    auth.authenticated_or_401()
    #Chequea permiso
    User.db = get_db()
    if (not User.has_permission(session['id'],'instrumento_index')):
        abort(401)
    else:
        Instrument.db = get_db()
        return jsonify(Instrument.all())
예제 #5
0
def save():
    instrument_id = request.form.get("id")
    instrument = Instrument.get_by_id(instrument_id)
    nombre = request.form["nombre"]
    tipo_instrumento = request.form["tipo"]

    nombre_ruta = ""
    # Captura de la imagen
    if request.files and request.files["image"].filename != "":
        image = request.files["image"]
        nombre_ruta = image.filename
        ruta = os.path.join(upload_route, nombre_ruta)
        image.save(ruta)
    else:
        nombre_ruta = instrument.ruta_imagen

    tipo_instrumento_id = InstrumentType.get_by_name(tipo_instrumento).id
    requestEdit = (nombre, tipo_instrumento_id, nombre_ruta)
    edit_instrument = to_instrumento(requestEdit)
    Instrument.update(edit_instrument, instrument_id)
    return redirect(url_for('instrument_index'))
예제 #6
0
def create():
    if not authenticated(session):
        abort(401)
        
    nombre_ruta = ""
    # Captura de la imagen
    if request.files:
        image = request.files["image"]
        nombre_ruta = secure_filename(image.filename)
        ruta = os.path.join(upload_route, nombre_ruta)
        image.save(ruta)


    nombre = request.form["nombre"]
    tipo_instrumento = request.form["tipo_instrumento"]

    tipo_instrumento_id = InstrumentType.get_by_name(tipo_instrumento).id
    requestNew = (nombre, tipo_instrumento_id, nombre_ruta)
    new_instrument = to_instrumento(requestNew)
    Instrument.save(new_instrument)
    return redirect(url_for('instrument_index'))
예제 #7
0
    def get(self, instrument_id=None):
        schema = InstrumentSchema()

        if instrument_id is None:
            # Index
            instrument = Instrument.all_with_representative_entities()

            return schema.dump(instrument, many=True)

        else:
            # Profile
            instrument = Instrument.query.get(instrument_id)

            return schema.dump(instrument)
예제 #8
0
def delete():
    #Auth check
    auth.authenticated_or_401()

    #Chequea permiso
    User.db = get_db()
    if (not User.has_permission(session['id'],'instrumento_destroy')):
        abort(401)
    else:
        Instrument.db = get_db()
        #Obtención de información
        post_data = request.get_json()
        #Obtiene el instrumento
        instrument = Instrument.get(post_data['instrument_id'])
        #Borrado de imagen
        try:
            #Borrado de imagen e instrumento
            os.remove(os.path.abspath(UPLOAD_FOLDER+instrument['image']))
            Instrument.delete(post_data['instrument_id'])
        except:
            #Solo borrado de instrumento
            Instrument.delete(post_data['instrument_id'])

        return jsonify({'status': 'success', 'message': 'Se eliminó el instrumento correctamente'})
예제 #9
0
def delete(id):
    Instrument.delete_by_numero_inventario(id)
    return redirect(url_for('instrument_index'))
예제 #10
0
def update(id):
    instrument = Instrument.get_by_id(id)
    ruta = url_for('static', filename = 'uploads/' + instrument.ruta_imagen)
    instrument_type = InstrumentType.get_by_id(instrument.tipo_instrumento_id)
    instrument_types = InstrumentType.all()
    return render_template('instrumento/update.html', id = id, nombre = instrument.nombre, tipo = instrument_type, tipos = instrument_types, ruta = ruta)
예제 #11
0
def show(id):
    instrument = Instrument.get_by_id(id)
    ruta = url_for('static', filename = 'uploads/' + instrument.ruta_imagen)
    instrument_type = InstrumentType.get_by_id(instrument.tipo_instrumento_id)
    return render_template('instrumento/show.html', nombre = instrument.nombre, tipo = instrument_type.nombre, ruta = ruta, id = id)
예제 #12
0
def index():
    instrumentos = Instrument.all()
    return render_template('instrumento/index.html', instrumentos=instrumentos)
 def validate(self):
     return not Instrument.any_inventory_number(self.number)
 def save(self):
     return Instrument.create(self.fields)