Ejemplo n.º 1
0
def get_qr_code():
    form = PassportForm()
    person = db.session.query(Person).get(current_user.id)
    data_complete = False
    if not person:
        flask.abort(404)

    if flask.request.method == 'POST':
        if form.validate_on_submit():
            person.passport_number = form.passport_number.data
            _id = hashids.encode(current_user.id)
            data_string = f'{_id}:{form.name.data}:{form.f_name.data}:{form.second_name.data}'
            sign = signer.sign(data_string)
            person.signature = sign_data(sign)
            db.session.add(person)
            db.session.commit()
            person = db.session.query(Person).get(current_user.id)

    if form.validate():
        data_complete = True

    return flask.render_template('person.html',
                                 person=person,
                                 form=form,
                                 data_complete=data_complete)
Ejemplo n.º 2
0
def send_email():
    @threaded
    def send_async_email(msg):
        with app.app_context():
            mail.send(msg)

    email_form = EmailForm()
    if email_form.validate_on_submit():
        _id = hashids.encode(current_user.id)
        data = f"{_id}:{request.args.get('data')}"
        qr_file = get_qr_file(encode_data(data), 'JPEG')
        target_email = email_form.email.data
        message = Message('Электронный пропуск',
                          sender=Config.MAIL_ADMIN,
                          recipients=[target_email])
        message.body = 'Ваш электронный пропуск во вложении'
        with app.open_resource(qr_file.name) as fp:
            message.attach(qr_file.name, "image/jpeg", fp.read())
            with app.app_context():
                send_async_email(message)

        return flask.redirect(url_for('get_qr_code'))

    return flask.render_template('email_send.html',
                                 email_form=email_form,
                                 id=id)
Ejemplo n.º 3
0
def qr_code_pdf():
    _id = hashids.encode(current_user.id)
    data = f"{_id}:{request.args.get('data')}"
    qr_file = get_qr_file(encode_data(data), 'PDF')

    return send_file(qr_file.name,
                     mimetype='application/pdf',
                     attachment_filename=qr_file.name,
                     as_attachment=False)
Ejemplo n.º 4
0
def qr_code_download(barcode_type, img_format):
    _id = hashids.encode(current_user.id)
    data = f"{_id}:{request.args.get('data')}"
    qr_file = get_qr_file(encode_data(data), img_format, barcode_type)

    return send_file(qr_file.name,
                     mimetype='image/jpeg',
                     attachment_filename=qr_file.name,
                     as_attachment=True)
Ejemplo n.º 5
0
    def to_dict(self):
        ret = {}
        for attr in self.auto_load_attrs:
            ret[attr] = getattr(self, attr)

        # 对id做混淆
        if 'id' in ret and isinstance(ret['id'], int):
            ret['id'] = hashids.encode(ret['id'])

        return ret
Ejemplo n.º 6
0
def add_entry():
	title = request.form["title"] if "title" in request.form else None
	text = request.form["text"]
	linenumbers = "true" if "linenumbers" in request.form else "false"
	language = request.form["language"]
	author = request.form["author"] if "author" in request.form else None
	options = json.dumps({"linenumbers": linenumbers, "language": language})
	print(title)
	g.db.execute("insert into entries(title, text, options, created_at, author) values (?, ?, ?, ?, ?)",
					title, text, options, datetime.now(), author)
	lastid = g.db.execute("select @@IDENTITY").fetchone()[0]
	hashUrl = hashids.encode(lastid)
	g.db.execute("update entries set urlHash=? where id=?", hashUrl, lastid)
	g.db.commit()

	return redirect(url_for("show_entry", pasteid=hashUrl))
Ejemplo n.º 7
0
 def xid(self):
     return hashids.encode(self.id)
Ejemplo n.º 8
0
 def xid(self):
     return hashids.encode(self.id)