diff --git a/addons/theme_aakriti_v2/__init__.py b/addons/theme_aakriti_v2/__init__.py index 40a96af..b0f26a9 100644 --- a/addons/theme_aakriti_v2/__init__.py +++ b/addons/theme_aakriti_v2/__init__.py @@ -1 +1,3 @@ # -*- coding: utf-8 -*- + +from . import controllers diff --git a/addons/theme_aakriti_v2/__manifest__.py b/addons/theme_aakriti_v2/__manifest__.py index 27e1ea0..b25e4c1 100644 --- a/addons/theme_aakriti_v2/__manifest__.py +++ b/addons/theme_aakriti_v2/__manifest__.py @@ -19,6 +19,7 @@ 'data': [ 'views/website_v2_templates.xml', 'views/portfolio_templates.xml', + 'views/blog_templates.xml', ], 'installable': True, 'application': False, diff --git a/addons/theme_aakriti_v2/__pycache__/__init__.cpython-310.pyc b/addons/theme_aakriti_v2/__pycache__/__init__.cpython-310.pyc index d9e00ce..a6b6de9 100644 Binary files a/addons/theme_aakriti_v2/__pycache__/__init__.cpython-310.pyc and b/addons/theme_aakriti_v2/__pycache__/__init__.cpython-310.pyc differ diff --git a/addons/theme_aakriti_v2/controllers/__init__.py b/addons/theme_aakriti_v2/controllers/__init__.py new file mode 100644 index 0000000..9e969d0 --- /dev/null +++ b/addons/theme_aakriti_v2/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import blog_controller diff --git a/addons/theme_aakriti_v2/controllers/__pycache__/__init__.cpython-310.pyc b/addons/theme_aakriti_v2/controllers/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..56a4279 Binary files /dev/null and b/addons/theme_aakriti_v2/controllers/__pycache__/__init__.cpython-310.pyc differ diff --git a/addons/theme_aakriti_v2/controllers/__pycache__/blog_controller.cpython-310.pyc b/addons/theme_aakriti_v2/controllers/__pycache__/blog_controller.cpython-310.pyc new file mode 100644 index 0000000..95ac11f Binary files /dev/null and b/addons/theme_aakriti_v2/controllers/__pycache__/blog_controller.cpython-310.pyc differ diff --git a/addons/theme_aakriti_v2/controllers/blog_controller.py b/addons/theme_aakriti_v2/controllers/blog_controller.py new file mode 100644 index 0000000..a45a48c --- /dev/null +++ b/addons/theme_aakriti_v2/controllers/blog_controller.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +from odoo import http +from odoo.http import request +from ..utils.blog_data import get_all_posts, get_post_by_slug, get_recent_posts + + +class V2BlogController(http.Controller): + + @http.route('/blog', type='http', auth='public', website=True) + def blog_list(self, **kwargs): + """Render the blog listing page with all posts.""" + posts = get_all_posts() + return request.render('theme_aakriti_v2.v2_blog_list', { + 'posts': posts, + 'page_title': 'Blog — Aakriti Events', + }) + + @http.route('/blog/', type='http', auth='public', website=True) + def blog_detail(self, slug, **kwargs): + """Render a single blog post by slug.""" + post = get_post_by_slug(slug) + if not post: + return request.not_found() + + recent = get_recent_posts(exclude_slug=slug, limit=3) + return request.render('theme_aakriti_v2.v2_blog_detail', { + 'post': post, + 'recent_posts': recent, + 'page_title': post['title'] + ' — Aakriti Events', + }) diff --git a/addons/theme_aakriti_v2/utils/__init__.py b/addons/theme_aakriti_v2/utils/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/addons/theme_aakriti_v2/utils/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/addons/theme_aakriti_v2/utils/__pycache__/__init__.cpython-310.pyc b/addons/theme_aakriti_v2/utils/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..35c678e Binary files /dev/null and b/addons/theme_aakriti_v2/utils/__pycache__/__init__.cpython-310.pyc differ diff --git a/addons/theme_aakriti_v2/utils/__pycache__/blog_data.cpython-310.pyc b/addons/theme_aakriti_v2/utils/__pycache__/blog_data.cpython-310.pyc new file mode 100644 index 0000000..64efef5 Binary files /dev/null and b/addons/theme_aakriti_v2/utils/__pycache__/blog_data.cpython-310.pyc differ diff --git a/addons/theme_aakriti_v2/utils/blog_data.py b/addons/theme_aakriti_v2/utils/blog_data.py new file mode 100644 index 0000000..7dc8840 --- /dev/null +++ b/addons/theme_aakriti_v2/utils/blog_data.py @@ -0,0 +1,330 @@ +# -*- coding: utf-8 -*- +""" +Aakriti Events V2 — Blog Data Utility +All blog post data lives here. Each post is a dict with a unique `slug` +field used for URL routing. +""" + +BLOG_POSTS = [ + { + "slug": "how-to-plan-a-luxury-wedding", + "title": "How to Plan a Luxury Wedding Without the Stress", + "category": "Wedding Tips", + "date": "June 15, 2025", + "read_time": "6 min read", + "image": "/theme_aakriti_v2/static/src/img/wedding.png", + "excerpt": ( + "Planning a luxury wedding can feel overwhelming, but with the right team " + "and timeline in place, your dream celebration becomes effortlessly achievable." + ), + "content": """ +

A luxury wedding is more than just a big budget — it's about creating an experience + that feels personal, intentional, and effortlessly beautiful for every single guest. + The secret to pulling this off without stress lies in three core principles: + early planning, the right vendor network, and clear communication.

+ +

Start at Least 12 Months Out

+

The most sought-after venues, photographers, and floral designers book up quickly. + Starting your planning journey 12–18 months before your date ensures you have access + to the very best. Begin with a clear vision board and a realistic budget conversation + before you book anything.

+ +

Build Your Dream Team First

+

Your wedding planner and creative director are your most important hires. + A great planner will have an established vendor network, negotiate on your behalf, + and manage your timeline so you never have to worry. At Aakriti Design, we handle + every detail — from mandap construction to guest flow logistics — so you can + simply be present on your day.

+ +

Design Around Your Story

+

Luxury isn't about excess — it's about meaning. Every floral arrangement, + every lighting choice, every table setting should reflect who you are as a couple. + We begin every wedding design consultation by listening. Your cultural background, + your favourite memories, the mood you want guests to feel walking in — all of this + shapes our creative direction.

+ +

Plan for the Guest Experience

+

The difference between a good wedding and an unforgettable one is how guests + feel as they move through the day. Think about arrival moments, cocktail + hour flow, the reveal of the main reception space, and the energy of the dance floor. + Every transition is an opportunity to create a memory.

+ +

Ready to start planning your dream wedding? Reach out to our + team for a complimentary consultation.

+ """, + "author": "Paarul Ladd", + "author_title": "Founder & Creative Director", + "tags": ["Wedding", "Planning", "Luxury"], + }, + { + "slug": "multicultural-wedding-design-tips", + "title": "Multicultural Wedding Design: Blending Traditions Beautifully", + "category": "Design Inspiration", + "date": "May 28, 2025", + "read_time": "5 min read", + "image": "/theme_aakriti_v2/static/src/img/cultural.png", + "excerpt": ( + "Designing a fusion wedding that honours two cultures with equal beauty and " + "respect requires deep creativity and cultural sensitivity. Here's how we do it." + ), + "content": """ +

Multicultural weddings are among the most beautiful and complex celebrations + to design. When two families bring different traditions, colour palettes, rituals, + and aesthetic expectations to the same event, the challenge is to honour them + all — without making the event feel like a compromise.

+ +

Start with a Cultural Discovery Session

+

Before we pick a single flower or choose a fabric, we sit down with both + families separately and together. We ask about rituals that matter most, colours + that hold significance, and moments they want guests to witness and remember. + This forms the emotional foundation of the entire design.

+ +

Find the Visual Thread

+

Every beautiful fusion design has a unifying visual language — a colour, a + texture, or a motif that bridges both traditions. For an Indo-Western wedding, + this might be ivory and gold paired with lush greenery. For an African-South Asian + celebration, it could be rich jewel tones with intricate pattern work. The thread + makes the event feel cohesive rather than divided.

+ +

Zone the Ceremony Thoughtfully

+

When a celebration includes two ceremony types — a Hindu ceremony and a Christian + blessing, for example — how you transition between zones matters enormously. Lighting, + floral drops, or even a simple walk through a beautifully designed corridor can create + a meaningful moment of transition between rituals.

+ +

Communicate with Vendors Early

+

Caterers, musicians, officiants — every vendor needs to understand the cultural + context of what they're contributing to. We brief each vendor thoroughly and ensure + all timelines account for the natural pace of different ritual formats.

+ +

We've had the privilege of designing some of the most extraordinary fusion + celebrations in the region. Let's talk about yours.

+ """, + "author": "Paarul Ladd", + "author_title": "Founder & Creative Director", + "tags": ["Multicultural", "Wedding", "Design"], + }, + { + "slug": "stage-decoration-trends-2025", + "title": "Stage Decoration Trends Dominating 2025 Events", + "category": "Trends", + "date": "May 10, 2025", + "read_time": "4 min read", + "image": "/theme_aakriti_v2/static/src/img/stage_decor.png", + "excerpt": ( + "From dramatic floral backdrops to architectural LED installations, " + "stage design in 2025 is bolder, more immersive, and deeply personal." + ), + "content": """ +

The stage is the centrepiece of any celebration — the place where memories are + made, photographs are taken, and families gather. In 2025, stage decoration has + evolved dramatically, moving beyond standard floral arches toward fully immersive, + architectural experiences.

+ +

1. Organic Floral Cascades

+

Tightly packed, symmetrical floral walls are giving way to organic, cascading + arrangements that feel wild and lush. Think trailing jasmine, oversized garden roses, + and dramatic foliage draping from asymmetric frames. The effect is romantic without + feeling rigid.

+ +

2. Mixed Material Backdrops

+

Combining fabric draping with metallic accents, geometric frames, and live + botanicals creates stages with depth and texture. The interplay of softness and + structure creates a visually rich backdrop that photographs beautifully from + every angle.

+ +

3. LED and Projection Mapping

+

For evening events and corporate galas, projection mapping onto stage structures + allows dynamic, programmable visuals that transform throughout the event. From a + soft warm glow during dinner to an energetic light show for the reception, the + technology adds theatrical impact.

+ +

4. Custom Monogram and Typography

+

Couples and brands are increasingly requesting custom typographic elements + integrated into stage design — neon or acrylic lettering, laser-cut name panels, + and illuminated monograms that serve as both decor and branding.

+ +

5. Sustainability-Forward Design

+

2025 is also the year event design gets more sustainable. Rental flower walls, + reusable structural elements, and seasonal, locally sourced florals are becoming + standard practice for conscious couples.

+ +

Want to see how these trends could work for your event? + Book a design consultation with us.

+ """, + "author": "Paarul Ladd", + "author_title": "Founder & Creative Director", + "tags": ["Stage Design", "Trends", "Decor"], + }, + { + "slug": "corporate-event-design-essentials", + "title": "Corporate Event Design: Making Brand Moments Unforgettable", + "category": "Corporate Events", + "date": "April 22, 2025", + "read_time": "5 min read", + "image": "/theme_aakriti_v2/static/src/img/corporate.png", + "excerpt": ( + "A corporate event is a brand experience. Every design decision — from " + "the entrance to the stage — should reflect your company's identity and values." + ), + "content": """ +

Corporate events are often treated as purely logistical exercises — a venue, + some food, a speaker. But the most impactful brand moments happen when design + is treated with the same care as content. When a space feels right, guests + pay attention, they engage, they remember.

+ +

Design That Communicates Brand Identity

+

The moment a guest enters your event, they should feel your brand. This means + your colour palette, typography, and visual language need to carry through from + the signage at the entrance to the centrepieces on the tables. We work closely + with your marketing team to ensure design coherence at every touchpoint.

+ +

Entrance Design Matters Most

+

The entrance moment sets the emotional tone for everything that follows. A + dramatic brand-installed entrance arch, a branded photo wall, or a thoughtfully + lit arrival corridor creates a sense of occasion and signals to guests that this + event is special.

+ +

Stage and AV Integration

+

For conferences and product launches, the stage design and audio-visual + production need to work as one unified system. Screens, lighting rigs, speaker + positions, and branding elements should be designed together, not assembled + separately. We coordinate closely with AV teams to ensure a seamless result.

+ +

Networking Spaces Deserve Design Attention

+

Breakout rooms and networking areas are where conversations — and deals — + happen. Comfortable, well-designed networking zones with good lighting and + thoughtful furniture arrangements significantly increase guest engagement and + event ROI.

+ +

Planning a corporate event or brand activation? + Let's create something exceptional together.

+ """, + "author": "Paarul Ladd", + "author_title": "Founder & Creative Director", + "tags": ["Corporate", "Brand", "Events"], + }, + { + "slug": "birthday-celebration-ideas-adults", + "title": "Elevated Birthday Celebrations: Beyond the Ordinary", + "category": "Birthday Events", + "date": "April 5, 2025", + "read_time": "4 min read", + "image": "/theme_aakriti_v2/static/src/img/birthday.png", + "excerpt": ( + "Adult birthday celebrations deserve the same creative attention as weddings. " + "Here's how to design a milestone birthday that guests will talk about for years." + ), + "content": """ +

A milestone birthday — a 30th, 50th, or 60th — is a significant life moment. + It deserves to be celebrated with intention, beauty, and personal meaning. + Gone are the days of a standard restaurant booking. Today's elevated birthday + events are intimate, immersive, and deeply personal.

+ +

Choose a Theme That Reflects the Guest of Honour

+

The best birthday events tell the story of the person being celebrated. + Are they a lover of travel? A fashion devotee? A nature enthusiast? Let their + passions and personality drive every design decision — from the colour palette + and centrepieces to the entertainment and menu.

+ +

The Importance of the Reveal Moment

+

One of the most powerful design tools for a birthday celebration is the + reveal moment — when the guest of honour first sees the decorated space. + A well-designed reveal, with controlled lighting and a dramatic entrance, creates + an emotional peak that guests carry with them forever.

+ +

Intimate vs. Grand — Both Can Be Extraordinary

+

An intimate dinner for 20 can be just as visually stunning as a party for 200. + In fact, smaller gatherings allow for more intricate, personal design details — + custom place cards, hand-written menus, personalised table settings, and curated + sensory experiences that wouldn't be practical at scale.

+ +

Commission a Signature Cake

+

A custom birthday cake that reflects the guest of honour's aesthetic is one + of the most photographed moments of any celebration. Work with an artist-baker + to create something that becomes a conversation piece — and the centrepiece of + the dessert table.

+ +

Ready to design a birthday celebration as special as the person it honours? + Let's begin the conversation.

+ """, + "author": "Paarul Ladd", + "author_title": "Founder & Creative Director", + "tags": ["Birthday", "Celebration", "Design"], + }, + { + "slug": "event-decor-colour-palette-guide", + "title": "The Art of Choosing Your Event Colour Palette", + "category": "Design Guide", + "date": "March 18, 2025", + "read_time": "7 min read", + "image": "/theme_aakriti_v2/static/src/img/gallery1.webp", + "excerpt": ( + "Your event colour palette sets the emotional tone before a single guest " + "arrives. Learn how to choose a palette that feels intentional and cohesive." + ), + "content": """ +

Colour is the most powerful emotional tool in event design. Before a guest + reads a single word of signage or takes their first bite of food, the colour + palette of a space has already communicated the mood, the personality, and the + intention of the event. Choosing thoughtfully matters enormously.

+ +

Start with the Emotional Goal

+

Ask yourself: how do you want guests to feel when they walk in? Romantic and + intimate? Celebratory and energetic? Sophisticated and calm? Different colour + families evoke different emotional responses. Warm terracottas and earthy tones + feel grounded and welcoming. Cool blues and silvers feel refined and elegant. + Jewel tones feel festive and rich.

+ +

Choose a Dominant, Secondary, and Accent

+

The most successful event palettes use three layers of colour. A dominant + colour (60% of the visual space), a secondary colour (30%), and an accent + (10%). This structure creates visual harmony without monotony. For a luxury + wedding, this might look like: soft ivory (dominant), dusty sage (secondary), + and burnished gold (accent).

+ +

Consider How Colour Behaves in Different Lighting

+

A colour that looks perfect in a mood board can behave completely differently + under warm uplighting, natural daylight, or cool LED wash. We always review + fabric and floral samples under the actual event lighting conditions before + finalising any palette decision.

+ +

Cultural Significance of Colour

+

In multicultural events, colour choices carry symbolic weight. Red is auspicious + in South Asian traditions; white is associated with mourning in some East Asian + cultures. Understanding the cultural context of your guest list ensures colour + choices feel respectful and celebratory.

+ +

Test Before You Commit

+

We always recommend a mock-up table setting or a small test arrangement before + finalising large orders. Seeing colours together in a real-world setting — with + real fabrics, real florals, and real lighting — often reveals refinements that + digital mood boards miss.

+ +

Working on an event and unsure about your palette? + Book a design session with our team.

+ """, + "author": "Paarul Ladd", + "author_title": "Founder & Creative Director", + "tags": ["Design", "Colour", "Tips"], + }, +] + + +def get_all_posts(): + """Return all blog posts.""" + return BLOG_POSTS + + +def get_post_by_slug(slug): + """Return a single blog post dict by its slug, or None if not found.""" + for post in BLOG_POSTS: + if post["slug"] == slug: + return post + return None + + +def get_recent_posts(exclude_slug=None, limit=3): + """Return recent posts, optionally excluding one by slug.""" + posts = [p for p in BLOG_POSTS if p["slug"] != exclude_slug] + return posts[:limit] diff --git a/addons/theme_aakriti_v2/views/blog_templates.xml b/addons/theme_aakriti_v2/views/blog_templates.xml new file mode 100644 index 0000000..17b52fd --- /dev/null +++ b/addons/theme_aakriti_v2/views/blog_templates.xml @@ -0,0 +1,615 @@ + + + + +