19 Commits
Author SHA1 Message Date
westfarn 04226abc19 Update company_site/financial/templates/financial/subscription_new.html for Stripe invoices (#23)
CI / test (pull_request) Successful in 13s
Unit Tests / test (pull_request) Successful in 12s
2026-07-31 04:35:33 -07:00
westfarn a590fb8979 Update company_site/financial/templates/financial/subscription_detail.html for Stripe invoices (#23) 2026-07-31 04:35:27 -07:00
westfarn f759efc2aa Update company_site/financial/templates/financial/invoices.html for Stripe invoices (#23) 2026-07-31 04:35:20 -07:00
westfarn 9ca0cf95be Update company_site/financial/templates/financial/invoice_new.html for Stripe invoices (#23) 2026-07-31 04:35:13 -07:00
westfarn 975d846678 Update company_site/financial/templates/financial/invoice_detail.html for Stripe invoices (#23) 2026-07-31 04:35:07 -07:00
westfarn 33859fa28b Update company_site/financial/templates/emails/invoice_pay_link.txt for Stripe invoices (#23) 2026-07-31 04:35:00 -07:00
westfarn fe4fcfdd13 Update company_site/financial/templates/emails/invoice_pay_link.html for Stripe invoices (#23) 2026-07-31 04:34:54 -07:00
westfarn 11de91faf7 Update company_site/financial/stripe_billing.py for Stripe invoices (#23) 2026-07-31 04:34:47 -07:00
westfarn 109aea2242 Update company_site/financial/migrations/0016_billing_invoices_subscriptions.py for Stripe invoices (#23) 2026-07-31 04:34:41 -07:00
westfarn cb7b39bf43 Update company_site/financial/invoice_views.py for Stripe invoices (#23) 2026-07-31 04:34:34 -07:00
westfarn cbdeb93810 Update company_site/financial/urls.py for Stripe invoices (#23) 2026-07-31 04:34:27 -07:00
westfarn 73448806cc Update company_site/financial/tests.py for Stripe invoices (#23) 2026-07-31 04:34:21 -07:00
westfarn 2fdd322640 Update company_site/financial/templates/financial/index.html for Stripe invoices (#23) 2026-07-31 04:34:14 -07:00
westfarn eefa59abad Update company_site/financial/models.py for Stripe invoices (#23) 2026-07-31 04:34:08 -07:00
westfarn d63c6af374 Update company_site/financial/forms.py for Stripe invoices (#23) 2026-07-31 04:34:01 -07:00
westfarn 71e64cfc45 Update company_site/financial/admin.py for Stripe invoices (#23) 2026-07-31 04:33:55 -07:00
westfarn db95cabe9c Update company_site/company_site/settings/base.py for Stripe invoices (#23) 2026-07-31 04:33:48 -07:00
westfarn f932fcbdba Update .env.prod.example for Stripe invoices (#23) 2026-07-31 04:33:42 -07:00
westfarn bccab2b6e9 Add admin Stripe invoices and recurring customer subscriptions.
Closes #23: one-off hosted invoices, monthly Checkout subscriptions, pay-link email, and webhook status sync for admins.
2026-07-31 04:33:35 -07:00
11 changed files with 114 additions and 7 deletions
+8
View File
@@ -63,6 +63,13 @@ PUBLIC_PAGE_ENTRIES = (
"0.7", "0.7",
"Custom workstation and server builds optimized for AI and ML workloads.", "Custom workstation and server builds optimized for AI and ML workloads.",
), ),
(
"file_hosting",
"File Hosting",
"monthly",
"0.7",
"Managed file hosting and storage for teams that need reliable data access.",
),
( (
"web_design", "web_design",
"Web Design and Hosting", "Web Design and Hosting",
@@ -97,6 +104,7 @@ SERVICE_URL_NAMES = frozenset({
"ai_sensor", "ai_sensor",
"ai_education", "ai_education",
"computers", "computers",
"file_hosting",
"web_design", "web_design",
}) })
Binary file not shown.

After

Width:  |  Height:  |  Size: 843 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

+2 -1
View File
@@ -69,7 +69,7 @@
<li><a href="{% url 'public_index' %}" <li><a href="{% url 'public_index' %}"
class="{% if request.resolver_match.url_name == 'public_index' %}active{% endif %}">Home</a></li> class="{% if request.resolver_match.url_name == 'public_index' %}active{% endif %}">Home</a></li>
<li class="dropdown"> <li class="dropdown">
<button type="button" class="nav-dropdown-trigger{% if request.resolver_match.url_name in 'forward_deployed,ai_education,ai_sensor,bot,chat,computers,ml_model,web_design' %} active{% endif %}" <button type="button" class="nav-dropdown-trigger{% if request.resolver_match.url_name in 'forward_deployed,ai_education,ai_sensor,bot,chat,computers,file_hosting,ml_model,web_design' %} active{% endif %}"
id="services-menu-button" aria-expanded="false" aria-haspopup="true" aria-controls="services-menu">Services</button> id="services-menu-button" aria-expanded="false" aria-haspopup="true" aria-controls="services-menu">Services</button>
<ul class="dropdown-content" id="services-menu" role="menu" aria-labelledby="services-menu-button"> <ul class="dropdown-content" id="services-menu" role="menu" aria-labelledby="services-menu-button">
<li><a href="{% url 'forward_deployed' %}">Forward-Deployed AI</a></li> <li><a href="{% url 'forward_deployed' %}">Forward-Deployed AI</a></li>
@@ -79,6 +79,7 @@
<li><a href="{% url 'ai_sensor' %}">Sensors</a></li> <li><a href="{% url 'ai_sensor' %}">Sensors</a></li>
<li><a href="{% url 'ai_education' %}">Education</a></li> <li><a href="{% url 'ai_education' %}">Education</a></li>
<li><a href="{% url 'computers' %}">Hardware</a></li> <li><a href="{% url 'computers' %}">Hardware</a></li>
<li><a href="{% url 'file_hosting' %}">Hosting</a></li>
<li><a href="{% url 'web_design' %}">Web Design</a></li> <li><a href="{% url 'web_design' %}">Web Design</a></li>
</ul> </ul>
</li> </li>
@@ -0,0 +1,90 @@
{% extends "base.html" %}
{% load static %}
{% block title %}File Hosting - AI ML Operations, LLC{% endblock %}
{% block meta_description %}Secure, scalable, and reliable file hosting with weekly backups by AI ML Operations, LLC.
Protect your data with our advanced storage solutions.{% endblock %}
{% block content %}
<!-- Hero Section -->
<div class="hero-section" style="height: 40vh; min-height: 300px;">
<div class="hero-content">
<h1 class="hero-title">File Hosting</h1>
<p class="hero-subtitle">Secure, Scalable, and Reliable File Storage with Weekly Backups</p>
</div>
</div>
<!-- About File Hosting Section -->
<div class="section">
<div class="container">
<h2 class="section-title">About Our File Hosting Service</h2>
<p style="text-align: center; max-width: 800px; margin: 0 auto; color: var(--text-muted); font-size: 1.1rem;">
At AI ML Operations, we provide secure and scalable file hosting solutions tailored to your business needs. Our
platform ensures your data is always accessible, protected, and backed up with weekly backups for added peace of
mind. Whether you're storing critical business documents, media files, or large datasets, our file hosting service
is designed to meet your requirements with reliability and efficiency.
</p>
</div>
</div>
<!-- Features Section -->
<div class="section" style="background: var(--surface-color);">
<div class="container">
<h2 class="section-title">What We Offer</h2>
<div class="card-grid">
<div class="card" style="text-align: center;">
<h5 class="card-title">Secure Storage</h5>
<p class="card-text">Your files are stored securely with advanced encryption protocols.</p>
</div>
<div class="card" style="text-align: center;">
<h5 class="card-title">Weekly Backups</h5>
<p class="card-text">Automatic weekly backups to ensure your data is always safe.</p>
</div>
<div class="card" style="text-align: center;">
<h5 class="card-title">Scalable Solutions</h5>
<p class="card-text">Easily scale your storage as your business grows.</p>
</div>
</div>
</div>
</div>
<!-- Benefits Section -->
<div class="section">
<div class="container">
<h2 class="section-title">Why Choose Us?</h2>
<div class="card-grid">
<div class="card">
<img src="{% static 'public/img/file_hosting/card-1.jpg' %}" alt="Data Security"
style="width: 100%; border-radius: 8px; margin-bottom: 1rem;">
<span class="card-title">Data Security</span>
<p class="card-text">Advanced encryption and access controls to protect your files.</p>
</div>
<div class="card">
<img src="{% static 'public/img/file_hosting/card-2.jpg' %}" alt="Reliability"
style="width: 100%; border-radius: 8px; margin-bottom: 1rem;">
<span class="card-title">Reliability</span>
<p class="card-text">99.9% uptime guarantee for uninterrupted access to your files.</p>
</div>
<div class="card">
<img src="{% static 'public/img/file_hosting/card-3.jpg' %}" alt="Easy Management"
style="width: 100%; border-radius: 8px; margin-bottom: 1rem;">
<span class="card-title">Easy Management</span>
<p class="card-text">User-friendly interface for seamless file management.</p>
</div>
</div>
</div>
</div>
<!-- Call to Action Section -->
<div class="section" style="text-align: center;">
<div class="container">
<h2 class="section-title">Ready to Secure Your Files?</h2>
<p class="hero-subtitle" style="margin-bottom: 2rem;">Contact us today to get started with our file hosting service.
</p>
<a href="{% url 'contact' %}" class="btn"
data-tianji-event="service_cta" data-tianji-event-page="file_hosting" data-tianji-event-action="get_started">Get Started</a>
</div>
</div>
{% endblock %}
@@ -53,6 +53,10 @@
<h3>Web Design</h3> <h3>Web Design</h3>
<p>Elevate your online presence with captivating web design that blends creativity with functionality. Our expert designers craft visually stunning websites that engage your audience and drive conversions, ensuring a seamless user experience across all devices.</p> <p>Elevate your online presence with captivating web design that blends creativity with functionality. Our expert designers craft visually stunning websites that engage your audience and drive conversions, ensuring a seamless user experience across all devices.</p>
</div> </div>
<div class="col-4">
<h3>File Hosting</h3>
<p>Securely store and share your files with ease using our reliable file hosting platform. With robust encryption and flexible access controls, you can confidently manage your data, collaborate seamlessly, and streamline your workflow.</p>
</div>
<div class="col-4"> <div class="col-4">
<h3>App Virtualization</h3> <h3>App Virtualization</h3>
<p>Transform your software delivery with our app virtualization solutions, enabling seamless access to applications from any device, anywhere. Experience enhanced flexibility, scalability, and security as we optimize your IT infrastructure for the digital age.</p> <p>Transform your software delivery with our app virtualization solutions, enabling seamless access to applications from any device, anywhere. Experience enhanced flexibility, scalability, and security as we optimize your IT infrastructure for the digital age.</p>
@@ -219,6 +219,12 @@
<p class="card-text">Servers and workstations for compute, storage, and local inference workloads.</p> <p class="card-text">Servers and workstations for compute, storage, and local inference workloads.</p>
</a> </a>
<a href="{% url 'file_hosting' %}" class="card"
data-tianji-event="service_click" data-tianji-event-service="File Hosting">
<span class="card-title">File Hosting</span>
<p class="card-text">Secure, scalable file hosting to store and share your data.</p>
</a>
</div> </div>
</div> </div>
</div> </div>
+1 -6
View File
@@ -1,5 +1,4 @@
from django.urls import path from django.urls import path
from django.views.generic import RedirectView
from . import seo, views from . import seo, views
@@ -13,11 +12,7 @@ urlpatterns = [
path("computer", views.computers, name="computers"), path("computer", views.computers, name="computers"),
path("web_design", views.web_design, name="web_design"), path("web_design", views.web_design, name="web_design"),
path("ai_sensor", views.ai_sensor, name="ai_sensor"), path("ai_sensor", views.ai_sensor, name="ai_sensor"),
# Permanent redirect: product retired; keep URL for inbound links/search results. path("file_hosting", views.file_hosting, name="file_hosting"),
path(
"file_hosting",
RedirectView.as_view(pattern_name="public_index", permanent=True),
),
path("bot_creation", views.bot, name="bot"), path("bot_creation", views.bot, name="bot"),
path("forward-deployed-ai", views.forward_deployed, name="forward_deployed"), path("forward-deployed-ai", views.forward_deployed, name="forward_deployed"),
path("ml_model", views.ml_model, name="ml_model"), path("ml_model", views.ml_model, name="ml_model"),
+3
View File
@@ -66,6 +66,9 @@ def web_design(request):
def ai_sensor(request): def ai_sensor(request):
return render(request, "public/ai_sensor.html", {}) return render(request, "public/ai_sensor.html", {})
def file_hosting(request):
return render(request, "public/file_hosting.html", {})
def bot(request): def bot(request):
return render(request, "public/bot.html", {}) return render(request, "public/bot.html", {})