diff --git a/hub/services/admin.py b/hub/services/admin.py index 314f479..3ba72d8 100644 --- a/hub/services/admin.py +++ b/hub/services/admin.py @@ -137,19 +137,11 @@ class ServiceOfferingAdmin(admin.ModelAdmin): @admin.register(ConsultingPartner) -class ConsultingPartnerAdmin(SortableAdminMixin, admin.ModelAdmin): - list_display = ( - "name", - "website", - "logo_preview", - "disable_listing", - "is_featured", - "order", - ) +class ConsultingPartnerAdmin(admin.ModelAdmin): + list_display = ("name", "website", "logo_preview", "disable_listing", "is_featured") search_fields = ("name", "description") prepopulated_fields = {"slug": ("name",)} filter_horizontal = ("services", "cloud_providers") - ordering = ("order",) def logo_preview(self, obj): if obj.logo: diff --git a/hub/services/migrations/0021_alter_consultingpartner_options_and_more.py b/hub/services/migrations/0021_alter_consultingpartner_options_and_more.py deleted file mode 100644 index 339e4c7..0000000 --- a/hub/services/migrations/0021_alter_consultingpartner_options_and_more.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 5.1.5 on 2025-03-14 13:56 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("services", "0020_alter_cloudprovider_options_cloudprovider_order"), - ] - - operations = [ - migrations.AlterModelOptions( - name="consultingpartner", - options={"ordering": ["order"]}, - ), - migrations.AddField( - model_name="consultingpartner", - name="order", - field=models.IntegerField(default=0), - ), - ] diff --git a/hub/services/models.py b/hub/services/models.py index 6e5568c..b547d71 100644 --- a/hub/services/models.py +++ b/hub/services/models.py @@ -183,16 +183,12 @@ class ConsultingPartner(models.Model): CloudProvider, related_name="consulting_partners", blank=True ) - order = models.IntegerField(default=0) is_featured = models.BooleanField(default=False) disable_listing = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) - class Meta: - ordering = ["order"] - def __str__(self): return self.name diff --git a/hub/services/templates/400.html b/hub/services/templates/400.html index 23a23ac..1de10f9 100644 --- a/hub/services/templates/400.html +++ b/hub/services/templates/400.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% load static %} {% block title %}Bad Request (400){% endblock %} diff --git a/hub/services/templates/404.html b/hub/services/templates/404.html index e4828e2..023e65d 100644 --- a/hub/services/templates/404.html +++ b/hub/services/templates/404.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% load static %} {% block title %}Page Not Found (404){% endblock %} diff --git a/hub/services/templates/500.html b/hub/services/templates/500.html index 7267e77..c515220 100644 --- a/hub/services/templates/500.html +++ b/hub/services/templates/500.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% load static %} {% block title %}Server Error (500){% endblock %} diff --git a/hub/services/templates/pages/about.html b/hub/services/templates/pages/about.html index 9d91c7d..4034d10 100644 --- a/hub/services/templates/pages/about.html +++ b/hub/services/templates/pages/about.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% load static %} {% load contact_tags %} @@ -26,9 +26,9 @@

Overview

-

Servala connects businesses, developers, and cloud providers on one unified hub, offering secure, scalable, and easy-to-use cloud-native services and applications.

+

Servala connects businesses, developers, and cloud service providers on one unique hub with secure, scalable, and easy-to-use cloud-native services.

With Servala, businesses can seamlessly access and deploy a vast range of software, databases, applications, and DevOps tools such as PostgreSQL, Red Hat OpenShift, Keycloak, GitLab or Forgejo across multiple cloud providers and regions. This ensures businesses can seamlessly access and deploy services, applications, and DevOps tools across different cloud environments without being tied to a single provider.

-

Servala helps businesses stay agile and independent, reduce cloud costs, and ensure security and compliance. For Software Vendors, Servala opens up additional channels to offer their software products. At the same time, Cloud Providers can add value on top of their existing core offerings through Servala.

+

With Servala, businesses can stay agile, avoid vendor lock-in, optimize cloud costs, and ensure security and compliance. For Independent Software Vendors (ISVs), Servala opens up additional channels to offer their software products. At the same time, Cloud Service Providers (CSPs) can add value on top of their existing core offerings (compute, storage, network).

@@ -46,31 +46,30 @@

Who benefits from using Servala?

-

Servala is designed for Software Vendors, Cloud Providers and Enterprises and their users, enabling them to offer, integrate, and consume cloud-native services and applications and DevOps tools with ease.

-

For Software Vendors, Servala provides a powerful channel to distribute, monetize, and operate their software as managed services. Cloud Providers can extend their core infrastructure offerings with value-added services. Enterprise Private Clouds gain seamless access to trusted services and applications while maintaining full control over security and compliance - all within an open and agnostic ecosystem.

+

Servala is designed for CSPs, ISVs, and Enterprises and their users, enabling them to offer, integrate, and consume cloud-native services and applications and DevOps tools with ease. It bridges the gap between CSPs seeking value-added services, ISVs looking to distribute and monetize their applications and services, and Enterprises needing scalable, secure, and cost-efficient cloud solutions and their users who need to access those services easily - all within an open, cloud-agnostic ecosystem.

-

Software Vendors

+

Independent Software Vendors (ISVs)

    -
  • Transform software into SaaS offerings.
  • -
  • Reach new markets and ecosystems through our existing partner network.
  • -
  • Streamline operations and monetization.
  • +
  • Transform applications into SaaS offerings.
  • +
  • Leverage the Servala Hub to distribute, monetize, and efficiently operate your software.
  • +
  • Extend your reach to new markets and ecosystems.
-

Cloud Providers

+

Cloud Service Providers (CSPs)

    -
  • Offer value-added services and applications to customers.
  • -
  • Enhance operational efficiency and market reach.
  • -
  • Keep pace with fast-changing industry demands.
  • +
  • Offer value-added services and applications to end users.
  • +
  • Respond effectively to fast-paced market changes.
  • +
  • Gain tools to enhance operational efficiency and market relevance.
-

Enterprise Private Clouds

+

Enterprises and Their Users

  • Access scalable, secure, and cost-efficient services.
  • Enable self-service installation of trusted applications without managing infrastructure.
  • -
  • Ensure compliance, boost developer productivity, and simplify operations.
  • +
  • Benefit from built-in compliance, developer productivity boosts, and operational simplicity.
@@ -85,7 +84,8 @@

Agility & Faster Time-to-Market

-

Access a vast catalog of services and applications for rapid deployment and innovation.

+

Access a vast catalog of services and applications for rapid deployment and + innovation.

@@ -94,9 +94,10 @@
-

Sovereign & Open

+

Cloud-Agnostic & Vendor-Independent

-

Deploy services on any cloud or on-premises, ensuring maximum flexibility.

+

Deploy services on any cloud or on-premises, ensuring maximum + flexibility.

diff --git a/hub/services/templates/pages/homepage.html b/hub/services/templates/pages/homepage.html index cb83ae6..8d68f96 100644 --- a/hub/services/templates/pages/homepage.html +++ b/hub/services/templates/pages/homepage.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% load static %} {% block title %}Open Cloud Native Services Hub{% endblock %} diff --git a/hub/services/templates/base.html b/hub/services/templates/services/base.html similarity index 96% rename from hub/services/templates/base.html rename to hub/services/templates/services/base.html index f12ed0e..851b93f 100644 --- a/hub/services/templates/base.html +++ b/hub/services/templates/services/base.html @@ -24,16 +24,6 @@
- -
- -
-
-

- {{ partner.name }} -

diff --git a/hub/services/templates/services/provider_detail.html b/hub/services/templates/services/provider_detail.html index ae61b0b..7292c4d 100644 --- a/hub/services/templates/services/provider_detail.html +++ b/hub/services/templates/services/provider_detail.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% load contact_tags %} {% block title %}Service Provider {{ provider.name }}{% endblock %} diff --git a/hub/services/templates/services/provider_list.html b/hub/services/templates/services/provider_list.html index aa9fd11..e788dd0 100644 --- a/hub/services/templates/services/provider_list.html +++ b/hub/services/templates/services/provider_list.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% load static %} {% load contact_tags %} @@ -103,9 +103,6 @@
-

- {{ provider.name }} -

diff --git a/hub/services/templates/services/service_detail.html b/hub/services/templates/services/service_detail.html index 88c039d..45607d3 100644 --- a/hub/services/templates/services/service_detail.html +++ b/hub/services/templates/services/service_detail.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% block title %}Service {{ service.name }}{% endblock %} diff --git a/hub/services/templates/services/service_list.html b/hub/services/templates/services/service_list.html index 39fa7e9..4b11cc6 100644 --- a/hub/services/templates/services/service_list.html +++ b/hub/services/templates/services/service_list.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% load static %} {% load contact_tags %} diff --git a/hub/services/templates/services/thank_you.html b/hub/services/templates/services/thank_you.html index b993332..7ab96d4 100644 --- a/hub/services/templates/services/thank_you.html +++ b/hub/services/templates/services/thank_you.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'services/base.html' %} {% block title %}Thanks{% endblock %} diff --git a/hub/services/views/partners.py b/hub/services/views/partners.py index 4645c69..becad07 100644 --- a/hub/services/views/partners.py +++ b/hub/services/views/partners.py @@ -10,7 +10,7 @@ def partner_list(request): cloud_provider_id = request.GET.get("cloud_provider", "") # Start with all active partners - partners = ConsultingPartner.objects.filter(disable_listing=False).order_by("order") + partners = ConsultingPartner.objects.filter(disable_listing=False).order_by("name") # Apply filters based on request parameters if search_query: @@ -36,7 +36,7 @@ def partner_list(request): ).distinct() available_cloud_providers = CloudProvider.objects.filter( id__in=available_cloud_provider_ids, disable_listing=False - ).order_by("order") + ).order_by("name") # For the current selection, we need to make sure we include the selected items # even if they don't match other filters @@ -64,7 +64,7 @@ def partner_list(request): "partners": partners.prefetch_related("services", "cloud_providers"), "services": Service.objects.filter(disable_listing=False).order_by("name"), "cloud_providers": CloudProvider.objects.filter(disable_listing=False).order_by( - "order" + "name" ), "available_services": available_services, "available_cloud_providers": available_cloud_providers,