示例#1
0
 def call_books_over_limit(self):
     _is, msg = self.books.books_should_be_returned()
     if not _is:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
     elif msg:
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.call_show_books_over_limit})
         page = stpy.Template(tpl).render({'res': msg})
     else:
         page = self.basic_template.render(
             {'TEXTFIELD': template.call_show_books_over_limit_none})
     return page
示例#2
0
 def call_show_lent_books(self):
     _is, msg = self.books.lent_books()
     if not _is:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
     elif not msg:
         page = self.basic_template.render(
             {'TEXTFIELD': template.call_lent_books_none})
     else:
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.call_show_lent_books})
         page = stpy.Template(tpl).render({'res': msg})
     return page
示例#3
0
 def do_search_book(self, book_id, author, title, tags):
     _is, msg = self.books.search_book(book_id, author, title, tags)
     res = msg
     if not _is:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
     elif not res:
         page = self.basic_template.render(
             {'TEXTFIELD': template.do_search_book_none})
     else:
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.do_search_book})
         page = stpy.Template(tpl).render({'res': res})
     return page
示例#4
0
 def do_search_person(self, person_id, firstname, surname, _class, semester,
                      cellphone):
     _is, res = self.persons.search_person(person_id, firstname, surname,
                                           _class, semester, cellphone)
     if not _is:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': res})
     elif not res:
         page = self.basic_template.render(
             {'TEXTFIELD': template.do_search_person_none})
     else:
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.do_search_person})
         page = stpy.Template(tpl).render({'res': res})
     return page
示例#5
0
 def do_lent_books_to(self, person_id):
     _is, msg = self.books.lent_books_to(person_id)
     if not _is:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
     elif msg:
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.call_show_lent_books_to})
         page = stpy.Template(tpl).render({
             'res': msg,
             'person_id': person_id
         })
     else:
         page = self.basic_template.render(
             {'TEXTFIELD': template.call_show_lent_books_to_none})
     return page
示例#6
0
 def __init__(self, conf):
     self.basic_template = stpy.Template(template.basic_template)
     dbcon = wrapper_set.SQLiteConnectMultithreadWrapper(conf['dbpath'])
     dbcur = dbcon.cursor()
     self.persons = lib_librarydb.Persons(dbcon, dbcur)
     self.books = lib_librarydb.Books(dbcon, dbcur)
     self.libsys = lib_librarydb.LibrarySystem(dbcon, dbcur)
示例#7
0
 def do_delete_person(self, person_id):
     _is, msg, books = self.persons.delete_person(person_id)
     if _is:
         page = self.basic_template.render(
             {'TEXTFIELD': template.successful})
     elif books and not _is:
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.call_show_lent_books_to_when_deleting})
         page = stpy.Template(tpl).render({
             'res': books,
             'person_id': person_id
         })
     else:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
     return page
示例#8
0
def main():
    # Load our appid sigs.
    apps = []
    sigs = []
    for filename in glob.glob('apps/*'):
        if filename in ['apps/COPYING', 'apps/LICENSE']:
            continue
        sig = parse_sig(
            os.path.basename(filename).lower(),
            open(filename).read())
        sigs.append(sig)
        if 'appid' in sig:
            apps.append(sig)
    apps.sort(key=lambda a: a['appid'])
    app_by_name = dict([(a['name'], a) for a in sigs])

    # Organize sigs by machine, with required sigs first.
    machine_list = ['dns', 'default', 'any8', 'any4', 'any16', 'any']
    apps_by_machine = {}
    for m in machine_list:
        apps_by_machine[m] = []
    for app in sigs:
        m = app.get('machine', 'default')
        if 'requires' in app:
            r = app_by_name[app['requires'].lower()]
            try:
                apps_by_machine[m].remove(r)
            except ValueError:
                pass
            apps_by_machine[m].insert(0, r)
        if not app in apps_by_machine[m]:
            apps_by_machine[m].append(app)

    # Organize ports by app name.
    app_ports = {}
    for app in apps:
        d = {'tcp': [], 'udp': []}
        for svc in app['ports']:
            proto, port = svc.split('/')
            if port != '*':
                d[proto].append(port)
        if d['tcp'] or d['udp']:
            app_ports[app['name']] = d

    # Write output files from templates using our sigs.
    for infile in glob.glob('*.tmpl'):
        outfile = os.path.splitext(infile)[0]
        print >> sys.stderr, '==> %s' % outfile
        f = open(outfile, 'w')
        t = stpy.Template(open(infile).read())
        f.write(
            t.render(machine_list=machine_list,
                     apps=apps,
                     apps_by_machine=apps_by_machine,
                     app_ports=app_ports,
                     get_app_ragel=get_app_ragel))
        f.close()
示例#9
0
 def do_return_book(self, person_id, book_id, amount):
     _is, msg = self.libsys.return_book(person_id, book_id, amount)
     if _is:
         page = self.basic_template.render(
             {'TEXTFIELD': template.successful})
     else:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
     return page
示例#10
0
 def do_delete_book(self, book_id):
     _is, msg = self.books.delete_book(book_id)
     if _is:
         page = self.basic_template.render(
             {'TEXTFIELD': template.successful})
     else:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
     return page
示例#11
0
 def do_edit_book_2(self, book_id, author, title, amount, tags):
     _is, msg = self.books.edit_book(book_id, author, title, amount, tags)
     if _is:
         page = self.basic_template.render(
             {'TEXTFIELD': template.successful})
     else:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
     return page
示例#12
0
 def call_show_books(self):
     res = self.books.show()
     if not res:
         page = self.basic_template.render(
             {'TEXTFIELD': template.call_show_books_none})
     else:
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.call_show_books})
         page = stpy.Template(tpl).render({'res': res})
     return page
示例#13
0
 def do_edit_book(self, book_id):
     _is, res = self.books.search_book(book_id, '', '', '')
     if not _is:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': res})
     elif not res:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': 'No such book'})
     else:
         book_id, author, title, amount, tags = res[0]
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.do_edit_book})
         page = stpy.Template(tpl).render({
             'book_id': book_id,
             'author': author,
             'title': title,
             'amount': amount,
             'tags': tags
         })
     return page
示例#14
0
 def do_edit_person_2(self, person_id, firstname, surname, _class, semester,
                      cellphone):
     _is, msg = self.persons.edit_person(person_id, firstname, surname,
                                         _class, semester, cellphone)
     if _is:
         page = self.basic_template.render(
             {'TEXTFIELD': template.successful})
         return page
     else:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': msg})
         return page
示例#15
0
 def do_edit_person(self, person_id):
     _is, res = self.persons.search_person(person_id, '', '', '', '', '')
     if not _is:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': res})
     elif not res:
         tpl = self.basic_template.render({'TEXTFIELD': template.error})
         page = stpy.Template(tpl).render({'msg': 'No such student'})
     else:
         person_id, firstname, surname, _class, semester, cellphone = res[0]
         tpl = self.basic_template.render(
             {'TEXTFIELD': template.do_edit_person})
         page = stpy.Template(tpl).render({
             'person_id': person_id,
             'firstname': firstname,
             'surname': surname,
             'cellphone': cellphone,
             '_class': _class,
             'semester': semester
         })
     return page
示例#16
0
 def index(self):
     tpl = self.basic_template.render({'TEXTFIELD': template.index})
     page = stpy.Template(tpl).render({'date': time.strftime("%d-%m-%Y")})
     return page