Initial commit.

master
q3k 2013-06-13 20:45:36 +02:00
commit 2bcebf1fb7
12 changed files with 352 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
olddata
webapp/data.db

10
config.py Normal file
View File

@ -0,0 +1,10 @@
class Config(object):
DEBUG = False
TESTING = False
CREATE_DATABASE = False
SQLALCHEMY_DATABASE_URI = "sqlite:///data.db"
class DevelopmentConfig(Config):
CREATE_DATABASE = True
DEBUG = True

8
fascist.sublime-project Normal file
View File

@ -0,0 +1,8 @@
{
"folders":
[
{
"path": "/home/q3k/Hackerspace/fascist"
}
]
}

188
fascist.sublime-workspace Normal file
View File

@ -0,0 +1,188 @@
{
"auto_complete":
{
"selected_items":
[
[
"Part",
"PartitionID"
],
[
"Partition",
"PartitionbMounted"
],
[
"Block",
"BlockDeviceLabel"
],
[
"get_",
"get_arg_type"
],
[
"get",
"get_basic"
]
]
},
"buffers":
[
],
"build_system": "",
"command_palette":
{
"height": 32.0,
"selected_items":
[
[
"pac in",
"Package Control: Install Package"
],
[
"packa",
"Package Control: Install Package"
],
[
"packa ",
"Package Control: Install Package"
]
],
"width": 449.0
},
"console":
{
"height": 125.0
},
"distraction_free":
{
"menu_visible": true,
"show_minimap": false,
"show_open_files": false,
"show_tabs": false,
"side_bar_visible": false,
"status_bar_visible": false
},
"file_history":
[
"/home/q3k/Personal/ldbusw/ldbusw.lua",
"/home/q3k/Personal/ldbusw/test.lua"
],
"find":
{
"height": 34.0
},
"find_in_files":
{
"height": 0.0,
"where_history":
[
]
},
"find_state":
{
"case_sensitive": false,
"find_history":
[
"print",
"Interface",
"get_object",
"get",
"recurse",
"append_basic"
],
"highlight": true,
"in_selection": false,
"preserve_case": false,
"regex": false,
"replace_history":
[
],
"reverse": false,
"show_context": true,
"use_buffer2": true,
"whole_word": false,
"wrap": true
},
"groups":
[
{
"sheets":
[
]
}
],
"incremental_find":
{
"height": 0.0
},
"input":
{
"height": 0.0
},
"layout":
{
"cells":
[
[
0,
0,
1,
1
]
],
"cols":
[
0.0,
1.0
],
"rows":
[
0.0,
1.0
]
},
"menu_visible": true,
"output.exec":
{
"height": 94.0
},
"replace":
{
"height": 0.0
},
"save_all_on_build": true,
"select_file":
{
"height": 0.0,
"selected_items":
[
[
"test",
"ldbusw/test.lua"
],
[
"exam",
"ldbus/example.lua"
],
[
"ldbusw",
"ldbusw/ldbusw.lua"
]
],
"width": 0.0
},
"select_project":
{
"height": 500.0,
"selected_items":
[
],
"width": 380.0
},
"show_minimap": true,
"show_open_files": false,
"show_tabs": true,
"side_bar_visible": true,
"side_bar_width": 150.0,
"status_bar_visible": true
}

70
import-old-dump.py Normal file
View File

@ -0,0 +1,70 @@
import re
import datetime
import webapp
# yes, I am in fact importing an old sqlite dump with regexp
# deal with it
f = open('olddata', 'r')
d = f.read()
f.close()
def fancysplit(s):
parts = []
part = ""
pi = 0
escaped = False
for c in s:
if pi == 0 and c == "'":
escaped = True
elif pi > 0 and c == "'":
escaped = False
elif not escaped and c == ",":
parts.append(part)
part = ""
pi = -1
escaped = False
else:
part += c
pi += 1
if part != "":
parts.append(part)
return parts
records = {}
for line in d.split("\n"):
m = re.match(r'^INSERT INTO "([a-z_]+)" ', line)
if m:
table_name = m.group(1)
if table_name not in records:
records[table_name] = []
m = re.search("VALUES\((.+)\);", line)
values_s = m.group(1)
values_r = [v.strip("'").decode("utf-8") for v in fancysplit(values_s)]
values = []
for v in values_r:
try:
vales.append(int(v))
except:
values.append(v)
records[table_name].append(tuple(values))
for member_id, member_name, member_type, member_active in records["_members"]:
m = webapp.models.Member(member_id, member_name, member_type, True if member_active == 1 else False)
webapp.db.session.add(m)
for _id, uid, account_from, name_from, amount, title, date in records["_transfers"]:
date = datetime.datetime.strptime(date, "20%y-%m-%d %H:%M:%S")
t = webapp.models.Transfer(_id, uid, account_from, name_from, amount, title, date)
webapp.db.session.add(t)
webapp.db.session.commit()
for _id, transfer_id, member_id, year, month in records["_member_transfer"]:
member = webapp.models.Member.query.get(member_id)
transfer = webapp.models.Transfer.query.get(transfer_id)
mt = webapp.models.MemberTransfer(_id, year, month, transfer)
member.transfers.append(mt)
webapp.db.session.commit()

4
run-debug.py Normal file
View File

@ -0,0 +1,4 @@
import webapp
webapp.init()
webapp.app.run()

14
webapp/__init__.py Normal file
View File

@ -0,0 +1,14 @@
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object("config.DevelopmentConfig")
db = SQLAlchemy(app)
import webapp.views
import webapp.models
def init():
if app.config["CREATE_DATABASE"]:
db.create_all()

BIN
webapp/__init__.pyc Normal file

Binary file not shown.

50
webapp/models.py Normal file
View File

@ -0,0 +1,50 @@
from webapp import db
class MemberTransfer(db.Model):
__tablename__ = "member_transfer"
id = db.Column(db.Integer, primary_key=True)
member_id = db.Column(db.Integer, db.ForeignKey("member.id"))
transfer_id = db.Column(db.Integer, db.ForeignKey("transfer.id"))
year = db.Column(db.Integer)
month = db.Column(db.Integer)
transfer = db.relationship("Transfer", backref="member_transfers")
def __init__(self, _id, year, month, transfer):
self.id = _id
self.year = year
self.month = month
self.transfer = transfer
class Member(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True)
type = db.Column(db.Enum("starving", "fatty"))
transfers = db.relationship("MemberTransfer", backref="members")
active = db.Column(db.Boolean)
def __init__(self, _id, _username, _type, _active):
self.id = _id
self.username = _username
self.type = _type
self.active = _active
class Transfer(db.Model):
id = db.Column(db.Integer, primary_key=True)
uid = db.Column(db.String(16))
account_from = db.Column(db.String(32))
name_from = db.Column(db.String(64))
amount = db.Column(db.Integer)
title = db.Column(db.String(64))
date = db.Column(db.Date)
def __init__(self, _id, _uid, _account_from, _name_from, _amount, _title, _date):
self.id = _id
self.uid = _uid
self.account_from = _account_from
self.name_from = _name_from
self.amount = _amount
self.title = _title
self.date = _date

BIN
webapp/models.pyc Normal file

Binary file not shown.

6
webapp/views.py Normal file
View File

@ -0,0 +1,6 @@
from webapp import app
@app.route("/")
def root():
return 'Hello.'

BIN
webapp/views.pyc Normal file

Binary file not shown.