def populate_root_document(): if DBSession.query(Node).count() == 0: root = Document(name=u'', title=u'Front Page') root.__acl__ = SITE_ACL root.default_view = 'front-page' DBSession.add(root) url = JOB_CONTAINERS['url'] root[url] = Document(title=u'Job Containers', owner=u'admin') set_groups(u'admin', root[url], set([u'role:owner'])) wf = get_workflow(root) if wf is not None: DBSession.flush() # Initializes workflow wf.transition_to_state(root, None, u'public')
def populate(): session = DBSession() if session.query(Node).count() == 0: root = Document(**_ROOT_ATTRS) root.__acl__ = SITE_ACL DBSession.add(root) root.default_view = u'app' wf = get_workflow(root) if wf is not None: DBSession.flush() # Initializes workflow wf.transition_to_state(root, None, u'public') populate_users() root_document = \ session.query(Content).filter(Content.parent_id==None).first() fruit_categories_folder = \ FruitCategoriesFolder(name=u"fruit_categories_folder", title=u"Fruit Categories Folder", in_navigation=True, parent=root_document) fruit_categories_folder.__acl__ = SITE_ACL session.add(fruit_categories_folder) workflow = get_workflow(fruit_categories_folder) if workflow: DBSession.flush() workflow.transition_to_state(fruit_categories_folder, None, u'public') else: print '################ NO WORKFLOW for ', fruit_categories_folder.title folder = \ session.query(Content).filter_by( name=u"fruit_categories_folder").first() fruit_category_instances = {} for fruit_category in fruit_categories: fruit_category_instances[fruit_category] = \ FruitCategory(name=fruit_categories[fruit_category]['name'], title=fruit_categories[fruit_category]['name'], parent=folder) for key in fruit_category_instances: fruit_category_instances[key].__acl__ = SITE_ACL session.add(fruit_category_instances[key]) workflow = get_workflow(fruit_category_instances[key]) if workflow: DBSession.flush() workflow.transition_to_state(fruit_category_instances[key], None, u'public') else: print '################ NO WORKFLOW for ', fruit_category_instances[key].title fruit_instances = {} for fruit_category in fruit_categories: fruit_category_obj = \ DBSession.query(FruitCategory).filter_by( title=fruit_category).first() for fruit_name in fruit_categories[fruit_category]['fruits']: fruit_instances[fruit_name] = \ Fruit(**fruit_data_args_dict(fruit_name, fruit_category_obj)) for key in fruit_instances: fruit_instances[key].__acl__ = SITE_ACL session.add(fruit_instances[key]) workflow = get_workflow(fruit_instances[key]) if workflow: DBSession.flush() workflow.transition_to_state(fruit_instances[key], None, u'public') else: print '################ NO WORKFLOW for ', fruit_instances[key].title # Images have filenames with format: apple.256.jpg. We will use # the largest, at 512 pixels, from choices of 32, 64, 128, 256, # and 512, and let Kotti handle sizing for thumbnails. size = 512 image_filename = "{0}.{1}.jpg".format(key, size) image_path = os.path.join(os.path.dirname(images.__file__), image_filename) image = open(image_path, 'rb').read() fruit_instances[key][image_filename] = \ Image(image, image_filename, u"image/jpeg", title=image_filename) fruit_instances[key][image_filename].__acl__ = SITE_ACL session.add(fruit_instances[key][image_filename]) session.flush() transaction.commit()