def blog(request):
    prismic = PrismicHelper(request)
    context = prismic.get_context()

    category = request.GET.get('category')
    if category is not None:
        q = prismic.form("blog").query("""[[:d = at(my.blog-post.category, "%s")]]""" % category)
    else:
        q = prismic.form("blog")
    posts = list(sorted(q.ref(context["ref"]).submit().documents,
                        key=lambda post: post.get_date("blog-post.date")))[:10]
    return render(request, 'prismic_app/posts.html', {
        'context': context,
        'categories': BLOG_CATEGORIES,
        'posts': posts
    })
def products(request):
    prismic = PrismicHelper(request)
    context = prismic.get_context()

    all_products = sorted(prismic.form("products").ref(context["ref"]).submit().documents,
                          key=lambda p: p.get_text("product.name"))
    return render(request, 'prismic_app/products.html', {'context': context, 'products': all_products})
def index(request):
    prismic = PrismicHelper()

    form = prismic.form("everything")
    documents = form.submit()

    parameters = {'documents': documents, 'context': prismic.get_context()}
    return render(request, 'prismic_app/index.html', parameters)
def search(request):
    prismic = PrismicHelper(request)
    context = prismic.get_context()

    query = request.GET.get('query')
    if query is not None:
        products = prismic.form("everything")\
            .query("""[[:d = any(document.type, ["product", "selection"])][:d = fulltext(document, "{0}")]]""".format(query))\
            .ref(context["ref"]).submit()
        others = prismic.form("everything")\
            .query("""[[:d = any(document.type, ["article", "blog-post", "job-offer", "store"])][:d = fulltext(document, "{0}")]]""".format(query))\
            .ref(context["ref"]).submit()
    else:
        products = None
        others = None
        query = ""

    return render(request, 'prismic_app/search.html', {'context': context, 'products': products, 'others': others, 'query': query})
def stores(request):
    prismic = PrismicHelper(request)
    context = prismic.get_context()

    all_stores = sorted(prismic.form("stores").ref(context["ref"]).submit().documents,
                          key=lambda p: p.get_text("store.name"))
    return render(request, 'prismic_app/stores.html', {
        'context': context,
        'main': prismic.get_bookmark("stores"),
        'stores': all_stores})
def index(request):
    prismic = PrismicHelper()
    context = prismic.get_context()

    products = prismic.form("products").ref(context["ref"]).submit()
    featured = prismic.form("featured").ref(context["ref"]).submit()

    parameters = {
        'context': context, 'products': products, 'featured': featured, 'product_categories': product_categories
    }
    return render(request, 'prismic_app/index.html', parameters)
def index(request):
    prismic = PrismicHelper(request)
    context = prismic.get_context()

    products = prismic.form("products").ref(context["ref"]).submit().documents
    featured = prismic.form("featured").ref(context["ref"]).submit().documents

    parameters = {
        'context': context,
        'products': products,
        'featured': featured,
        'product_categories': product_categories
    }
    return render(request, 'prismic_app/index.html', parameters)
def jobs(request):
    prismic = PrismicHelper(request)
    context = prismic.get_context()

    jobs_doc = prismic.get_bookmark("jobs")
    services = collections.OrderedDict()
    services["Store"] = []
    services["Office"] = []
    services["Workshop"] = []
    services["Other"] = []
    for j in prismic.form("jobs").ref(context["ref"]).submit().documents:
        service = j.get_text("job-offer.service")
        if service in services:
            services[service].append(j)
        else:
            services["Other"].append(j)
    return render(request, 'prismic_app/jobs.html', {'context': context, 'jobs': jobs_doc, 'services': services})