Exemple #1
0
def get_or_create_collection(title, page_id, parent_page_id):
    if page_id:
        page = Page.objects.get(id=page_id)
        parent_page = page.get_parent()
    else:
        parent_page = Page.objects.get(id=parent_page_id)

    ancestors = parent_page.get_ancestors(inclusive=True)
    ancestor_titles = []
    count = 0
    for ancestor in ancestors:
        # Do nothing for count == 0, it's the root node, we don't need that
        if count == 1:
            ancestor_titles.append(ancestor.get_site().site_name)
        if count > 1:
            ancestor_titles.append(ancestor.title)
        count += 1
    ancestor_titles.append(title)
    collection_name = ":".join(ancestor_titles)
    try:
        collection = Collection.objects.filter(
            name__exact=collection_name).get()
    except Collection.DoesNotExist:
        collection = Collection()
        collection.name = collection_name
        root = Collection.get_first_root_node()
        root.add_child(instance=collection)

    return collection
Exemple #2
0
    def get_collection_for_site(self, site):
        """
        Args:
            site: site object

        Returns: Collection associated with given site
        """
        site_collection_name = site.site_name
        collection = Collection.objects.filter(
            name=site_collection_name).first()
        if not collection:
            collection = Collection(name=site_collection_name)
            root_collection = Collection.get_first_root_node()
            root_collection.add_child(instance=collection)

        return collection
 def create_collection(self, name):
     '''create_collection'''
     root_collection = Collection.get_first_root_node()
     collection = Collection(name=name)
     root_collection.add_child(instance=collection)
     return collection