예제 #1
0
def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
    """Create a Pylons WSGI application and return it

    ``global_conf``
        The inherited configuration for this application. Normally from
        the [DEFAULT] section of the Paste ini file.

    ``full_stack``
        Whether this application provides a full WSGI stack (by default,
        meaning it handles its own exceptions and errors). Disable
        full_stack when this application is "managed" by another WSGI
        middleware.

    ``static_files``
        Whether this application serves its own static files; disable
        when another web server is responsible for serving them.

    ``app_conf``
        The application's local configuration. Normally specified in
        the [app:<name>] section of the Paste ini file (where <name>
        defaults to main).

    """
    # Configure the Pylons environment
    config = load_environment(global_conf, app_conf)

    # The Pylons WSGI app
    app = PylonsApp(config=config)

    # Routing/Session Middleware
    app = RoutesMiddleware(app, config["routes.map"], singleton=False)
    app = SessionMiddleware(app, config)

    # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)

    if asbool(full_stack):
        # Handle Python exceptions
        app = ErrorHandler(app, global_conf, **config["pylons.errorware"])

        # Authentication with AuthKit
        app = authkit.authenticate.middleware(app, app_conf)

        # Display error documents for 401, 403, 404 status codes (and
        # 500 when debug is disabled)
        if asbool(config["debug"]):
            app = StatusCodeRedirect(app)
        else:
            app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])

    # Establish the Registry for this application
    app = RegistryManager(app)

    if asbool(static_files):
        # Serve static files
        static_app = StaticURLParser(config["pylons.paths"]["static_files"])
        app = Cascade([static_app, app])
    app.config = config
    return app
예제 #2
0
def setup_app(command, conf, vars):
    """Place any commands to setup purchase here"""
    # Don't reload the app if it was loaded under the testing environment
    if not pylons.test.pylonsapp:
        load_environment(conf.global_conf, conf.local_conf)
    
    # Auth tables
    log.info("Adding the AuthKit model...")
    users = UsersFromDatabase(model)

    # Create the tables if they don't already exist
    Base.metadata.bind = Base.engine
    Base.metadata.create_all(bind=Session.bind)

    # Adding users, groups, roles
    users.role_create("admin")
    users.role_create("boss")
    users.role_create("director")
    users.role_create("user")
    
    users.group_create(u"admin")
    users.group_set_view(u"admin", u"Администрация")
    users.group_create(u"SOTO-50")
    users.group_set_view(u"SOTO-50", u"СОТО-50")
    users.group_create(u"OLM-15")
    users.group_set_view(u"OLM-15", u"ОЛМ-15")
    
    users.user_create("admin", password="******")
    users.user_set_view("admin", u'Администратор')
    users.user_add_role("admin", role="admin")
    users.user_set_group("admin", group="admin")
    
    users.user_create("boss1", password="******")
    users.user_set_view("boss1", u'Ответственный по подразделению')
    users.user_add_role("boss1", role="boss")
    users.user_set_group("boss1", group="SOTO-50")
    
    users.user_create("boss2", password="******")
    users.user_set_view("boss2", u'Ответственный по подразделению')
    users.user_add_role("boss2", role="boss")
    users.user_set_group("boss2", group="OLM-15")
    
    users.user_create("director", password="******")
    users.user_set_view("director", u'Ответственный по предприятию')
    users.user_add_role("director", role="director")
    users.user_set_group("director", group="admin")
    
    users.user_create("user1", password="******")
    users.user_set_view("user1", u'Иванов Иван Иванович')
    users.user_add_role("user1", role="user")
    users.user_set_group("user1", group="SOTO-50")
    
    users.user_create("user2", password="******")
    users.user_set_view("user2", u'Петров Пётр Петрович')
    users.user_add_role("user2", role="user")
    users.user_set_group("user2", group="SOTO-50")
    
    users.user_create("user3", password="******")
    users.user_set_view("user3", u'Семёнов Семён Семёнович')
    users.user_add_role("user3", role="user")
    users.user_set_group("user3", group="OLM-15")
    
    users.user_create("user4", password="******")
    users.user_set_view("user4", u'Сергеев Сергей Сергеевич')
    users.user_add_role("user4", role="user")
    users.user_set_group("user4", group="OLM-15")
    
#    # Adding campaign
#    campaign = model.Campaign()
#    campaign.start_date = '2011.05.20'
#    campaign.end_date = '2011.05.30'
#    campaign.status = '1'
#    campaign.description = u'Тестовая кампания'
#    meta.Session.add(campaign)
#    meta.Session.flush()
    
    # Adding units
    log.info("Adding units...")
    unit_1 = model.Unit()
    unit_1.name = u'шт.'
    meta.Session.add(unit_1)
    meta.Session.flush()
    
    # Adding needs
    log.info("Adding needs...")
    needs_1 = model.Needs()
    needs_1.name = u'Закупка нового'
    meta.Session.add(needs_1)
    meta.Session.flush()    

    needs_2 = model.Needs()
    needs_2.name = u'Обновление старого'
    meta.Session.add(needs_2)
    meta.Session.flush()  
    
    # Adding finsources
    log.info("Adding finsources...")
    finsource_1 = model.FinSource()
    finsource_1.name = u'Накладные расходы'
    meta.Session.add(finsource_1)
    meta.Session.flush()    
    
    finsource_2 = model.FinSource()
    finsource_2.name = u'Тема №1'
    meta.Session.add(finsource_2)
    meta.Session.flush()        
    
    finsource_3 = model.FinSource()
    finsource_3.name = u'Тема №2'
    meta.Session.add(finsource_3)
    meta.Session.flush()  
    
    # Adding sections
    log.info("Adding main sections...")
    section_home = model.Section()
    section_home.name = u'Главная'
    section_home.parent_section_id = None
    meta.Session.add(section_home)
    meta.Session.flush()
    
    section_components= model.Section()
    section_components.name = u'Компоненты'
    section_components.parent_section_id = '1'
    meta.Session.add(section_components)
    meta.Session.flush()
    
    section_hard_drives= model.Section()
    section_hard_drives.name = u'Жёсткие диски'
    section_hard_drives.parent_section_id = '1'
    meta.Session.add(section_hard_drives)
    meta.Session.flush()
    
    section_printers_scanners= model.Section()
    section_printers_scanners.name = u'Принтеры и сканеры'
    section_printers_scanners.parent_section_id = '1'
    meta.Session.add(section_printers_scanners)
    meta.Session.flush()
   
    section_memory = model.Section()
    section_memory.name = u'Память'
    section_memory.parent_section_id = '2'
    meta.Session.add(section_memory)
    meta.Session.flush()
    
    section_video_cards = model.Section()
    section_video_cards.name = u'Видеокарты'
    section_video_cards.parent_section_id = '2'
    meta.Session.add(section_video_cards)
    meta.Session.flush()
    
    section_processors = model.Section()
    section_processors.name = u'Процессоры'
    section_processors.parent_section_id = '2'
    meta.Session.add(section_processors)
    meta.Session.flush()
    
    section_printers = model.Section()
    section_printers.name = u'Принтеры'
    section_printers.parent_section_id = '4'
    meta.Session.add(section_printers)
    meta.Session.flush()
    
    section_scanners = model.Section()
    section_scanners.name = u'Сканеры'
    section_scanners.parent_section_id = '4'
    meta.Session.add(section_scanners)
    meta.Session.flush()
    
    section_ink_toner = model.Section()
    section_ink_toner.name = u'Чернила и тонеры'
    section_ink_toner.parent_section_id = '4'
    meta.Session.add(section_ink_toner)
    meta.Session.flush()
    
    section_intel = model.Section()
    section_intel.name = u'Intel'
    section_intel.parent_section_id = '7'
    meta.Session.add(section_intel)
    meta.Session.flush()
    
    section_amd = model.Section()
    section_amd.name = u'AMD'
    section_amd.parent_section_id = '7'
    meta.Session.add(section_amd)
    meta.Session.flush()
    
    # Adding items
    log.info("Adding items...")
    item_1 = model.Item()
    item_1.brand = u'Palit'
    item_1.model = u'Radeon 9600'
    item_1.description = u'DVI TV In/Out 128Mb'
    item_1.section_id = '6'
    item_1.unit_id = '1'
    item_1.price = '3500'
    meta.Session.add(item_1)
    meta.Session.flush()
    
    item_2 = model.Item()
    item_2.brand = u'Sapphire'
    item_2.model = u'Geforce 8800GT'
    item_2.description = u'512Mb <PCI-E> DDR-3 ZOTAC'
    item_2.section_id = '6'
    item_2.unit_id = '1'
    item_2.price = '4500'
    meta.Session.add(item_2)
    meta.Session.flush()

    item_3 = model.Item()
    item_3.brand = u'Intel'
    item_3.model = u'Core 2 Duo E7500'
    item_3.description = u'2.93ГГц, 3МБ, FSB 1066МГц, LGA775, OEM'
    item_3.section_id = '11'
    item_3.unit_id = '1'
    item_3.price = '3280'
    meta.Session.add(item_3)
    meta.Session.flush()
    
    item_4 = model.Item()
    item_4.brand = u'Intel'
    item_4.model = u'Core i3-2100'
    item_4.description = u'3.10ГГц, 3МБ, LGA1155, OEM'
    item_4.section_id = '11'
    item_4.unit_id = '1'
    item_4.price = '5500'
    meta.Session.add(item_4)
    meta.Session.flush()
    
    item_5 = model.Item()
    item_5.brand = u'Intel'
    item_5.model = u'Core 2 Quad Q9300'
    item_5.description = u'2.50ГГц, 6МБ, FSB 1333МГц, LGA775, ОЕМ'
    item_5.section_id = '11'
    item_5.unit_id = '1'
    item_5.price = '3500'
    meta.Session.add(item_5)
    meta.Session.flush()
    
    log.info("Everything OK...")