Re-organise sponsor listings, adding financial sponsors per core discussion.
authorDave Page <dpage@pgadmin.org>
Thu, 1 Feb 2024 16:20:34 +0000 (17:20 +0100)
committerDave Page <dpage@pgadmin.org>
Thu, 1 Feb 2024 16:20:34 +0000 (17:20 +0100)
Moving forwards we'll have three types of sponsors:

- Contributing - those that the sponsor team are responsible for.
- Financial - those who donate to an NPO.
- Servers - those who provide servers/infrastructure.

For the financial sponsors, there are a few rules:

- "NPO" means a recognised NPO, (which includes SPI and PGCA).
- Each NPO may choose whether or not to list any sponsors on this page.
- Each NPO may define the criteria under which sponsors are listed, and
  any levels they wish to use.
- Conference/event sponsorship does not count; it must be sponsorship of the
  organisation itself.
- Sponsors may be listed once under each NPO they have donated to.

Note that the same sponsor may be listed in any or all of the categories
(contributing, financial, servers).

Patch by myself and Jonathan.

media/img/about/sponsors/logo_xata.svg [new file with mode: 0644]
pgweb/sponsors/models.py
pgweb/sponsors/views.py
pgweb/urls.py
pgweb/util/contexts.py
templates/sponsors/contributing.html [new file with mode: 0644]
templates/sponsors/financial.html [new file with mode: 0644]
templates/sponsors/servers.html
templates/sponsors/sponsors.html

diff --git a/media/img/about/sponsors/logo_xata.svg b/media/img/about/sponsors/logo_xata.svg
new file mode 100644 (file)
index 0000000..4a9d920
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="672" fill="none" viewBox="0 0 1600 672"><path fill="#ffffff" d="M808.932 272.777c5.436 4.92 8.869 9.261 10.299 13.023 1.717 3.763 1.717 7.669 0 11.721-1.43 3.762-4.577 8.393-9.441 13.891L673.751 470.727c-4.864 5.209-9.155 8.682-12.874 10.418-3.72 2.026-7.439 2.316-11.158.869-3.433-1.447-7.582-4.197-12.445-8.248-4.864-4.92-8.154-9.116-9.871-12.589-1.716-3.762-1.716-7.669 0-11.721 2.003-4.051 5.293-8.682 9.871-13.891L773.313 276.25c7.152-7.814 13.017-12.01 17.595-12.589 4.863-.579 10.872 2.46 18.024 9.116zm-171.229 0c4.864-4.341 9.012-7.09 12.445-8.248 3.719-1.157 7.296-.723 10.729 1.303 3.719 1.736 7.867 5.209 12.445 10.418l136.039 159.315c4.864 5.209 8.154 9.84 9.87 13.891 1.717 4.052 1.86 7.959.43 11.721-1.431 3.473-4.864 7.669-10.3 12.589-4.864 4.341-9.155 7.09-12.874 8.248-3.433 1.447-7.01 1.157-10.729-.869-3.433-1.736-7.725-5.209-12.874-10.418L636.845 311.412c-4.578-5.209-7.725-9.839-9.442-13.891-1.716-4.052-1.716-7.958 0-11.721 1.717-4.051 5.15-8.392 10.3-13.023zm380.437 207.066c-8.3 0-14.45-1.592-18.456-4.775-4.006-3.183-6.008-7.524-6.008-13.023l3.004-14.325c-2.289 3.762-6.151 8.248-11.587 13.457-5.436 4.92-12.588 9.405-21.457 13.457-8.87 3.762-19.598 5.643-32.186 5.643-13.447 0-26.178-2.749-38.194-8.248-11.73-5.788-22.173-13.601-31.328-23.441-8.869-10.129-16.021-21.56-21.457-34.294-5.15-13.023-7.725-26.914-7.725-41.674 0-14.18 2.575-27.493 7.725-39.937 5.436-12.733 12.731-24.02 21.886-33.86 9.155-9.839 19.598-17.508 31.328-23.007 12.016-5.788 24.604-8.682 37.765-8.682 11.73 0 21.6 1.592 29.611 4.775 8.296 3.184 15.306 7.235 21.028 12.155 5.722 4.63 10.442 9.55 14.162 14.759l-2.575-12.589c0-6.366 2.002-11.141 6.008-14.325 4.006-3.473 10.296-5.209 18.886-5.209 8.01 0 13.73 1.302 17.16 3.907 3.44 2.315 5.58 5.643 6.44 9.984.86 4.052 1.29 8.682 1.29 13.891v158.881c0 4.92-.43 9.406-1.29 13.457-.86 4.052-3.15 7.235-6.87 9.55-3.43 2.316-9.15 3.473-17.16 3.473zm-78.966-50.355c9.727 0 18.453-2.46 26.178-7.38 7.725-4.92 13.876-11.576 18.453-19.969 4.864-8.682 7.296-18.232 7.296-28.65 0-11.287-2.432-21.127-7.296-29.519-4.863-8.393-11.3-14.904-19.311-19.535-7.725-4.92-16.451-7.379-26.178-7.379-10.586 0-20.027 2.604-28.324 7.813-8.296 4.92-14.877 11.721-19.74 20.403-4.578 8.393-6.867 17.943-6.867 28.651 0 10.418 2.432 19.824 7.296 28.216 4.863 8.393 11.444 15.049 19.74 19.969 8.583 4.92 18.168 7.38 28.753 7.38zm251.626 51.223c-14.02 0-26.04-1.447-36.05-4.341-10.01-2.894-18.17-7.379-24.46-13.457-6.3-6.077-11.02-13.891-14.16-23.441-2.86-9.84-4.3-21.416-4.3-34.728V220.685c0-5.209.43-9.695 1.29-13.457 1.15-3.762 3.44-6.656 6.87-8.682 3.72-2.315 9.44-3.473 17.16-3.473 8.02 0 13.74 1.158 17.17 3.473 3.72 2.315 6.01 5.499 6.87 9.55 1.14 3.763 1.71 7.959 1.71 12.589v182.322c0 6.078.43 10.998 1.29 14.76 1.14 3.762 2.72 6.656 4.72 8.682 2.29 1.736 5.15 3.039 8.58 3.907 3.72.579 8.16.868 13.31.868 5.43 0 10.01.434 13.73 1.302 4.01.868 7.01 3.039 9.01 6.512 2 3.183 3.01 8.537 3.01 16.061 0 8.104-1.29 14.036-3.87 17.799-2.28 3.472-5.43 5.643-9.44 6.511-3.72.868-7.86 1.302-12.44 1.302zm-96.56-209.67 44.2.434 59.22-1.736c4.87 0 9.16.578 12.88 1.736 4 .868 7.15 3.183 9.44 6.946 2.29 3.472 3.43 9.26 3.43 17.364 0 7.524-1.14 13.167-3.43 16.93-2.29 3.762-5.29 6.222-9.01 7.379-3.72.868-8.01 1.303-12.88 1.303l-57.5-.869-47.64.434c-7.15-.289-12.16-2.315-15.02-6.077-2.57-4.052-3.86-10.563-3.86-19.534 0-8.393 1.57-14.47 4.72-18.233 3.43-4.051 8.58-6.077 15.45-6.077zm337.12 208.802c-8.3 0-14.45-1.592-18.46-4.775-4-3.183-6-7.524-6-13.023l3-14.325c-2.29 3.762-6.15 8.248-11.59 13.457-5.43 4.92-12.59 9.405-21.45 13.457-8.87 3.762-19.6 5.643-32.19 5.643-13.45 0-26.18-2.749-38.19-8.248-11.73-5.788-22.18-13.601-31.33-23.441-8.87-10.129-16.02-21.56-21.46-34.294-5.15-13.023-7.72-26.914-7.72-41.674 0-14.18 2.57-27.493 7.72-39.937 5.44-12.733 12.73-24.02 21.89-33.86 9.15-9.839 19.59-17.508 31.32-23.007 12.02-5.788 24.61-8.682 37.77-8.682 11.73 0 21.6 1.592 29.61 4.775 8.3 3.184 15.31 7.235 21.03 12.155 5.72 4.63 10.44 9.55 14.16 14.759l-2.57-12.589c0-6.366 2-11.141 6-14.325 4.01-3.473 10.3-5.209 18.89-5.209 8.01 0 13.73 1.302 17.16 3.907 3.44 2.315 5.58 5.643 6.44 9.984.86 4.052 1.29 8.682 1.29 13.891v158.881c0 4.92-.43 9.406-1.29 13.457-.86 4.052-3.15 7.235-6.87 9.55-3.43 2.316-9.15 3.473-17.16 3.473zm-78.97-50.355c9.73 0 18.46-2.46 26.18-7.38 7.73-4.92 13.88-11.576 18.46-19.969 4.86-8.682 7.29-18.232 7.29-28.65 0-11.287-2.43-21.127-7.29-29.519-4.87-8.393-11.31-14.904-19.32-19.535-7.72-4.92-16.45-7.379-26.17-7.379-10.59 0-20.03 2.604-28.33 7.813-8.29 4.92-14.87 11.721-19.74 20.403-4.58 8.393-6.86 17.943-6.86 28.651 0 10.418 2.43 19.824 7.29 28.216 4.86 8.393 11.44 15.049 19.74 19.969 8.58 4.92 18.17 7.38 28.75 7.38zM520.949 241.956c-.044 37.772-14.921 73.979-41.358 100.656l-.003-.003-93.787 94.639c-3.25 3.279-8.529 3.289-11.575-.186-22.801-26.019-35.472-59.67-35.432-94.632.044-37.772 14.921-73.98 41.358-100.657l.003.003 85.686-86.464c7.723-7.794 20.36-7.849 26.91.975 18.231 24.563 28.234 54.599 28.198 85.669zM185.414 343.189c-26.437-26.677-41.314-62.885-41.358-100.656-.035-31.071 9.968-61.106 28.198-85.669 6.55-8.825 19.187-8.769 26.911-.976l85.686 86.465.002-.002c26.438 26.677 41.315 62.884 41.358 100.656.041 34.962-12.63 68.614-35.432 94.632-3.045 3.475-8.325 3.466-11.575.187l-93.787-94.639-.003.002zm290.648 169.343c-6.89 8.558-19.493 8.483-27.2.67l-52.926-53.657c-3.247-3.293-3.241-8.629.014-11.913l87.904-88.703c3.25-3.279 8.55-3.298 11.416.329 15.257 19.305 21.256 45.985 16.72 75.358-4.151 26.887-16.848 54.218-35.928 77.916zm-259.918 1.246c-7.706 7.813-20.309 7.888-27.199-.67-19.08-23.697-31.778-51.029-35.929-77.915-4.535-29.374 1.464-56.054 16.72-75.359 2.867-3.627 8.167-3.608 11.417-.329l87.904 88.703c3.255 3.285 3.261 8.621.013 11.913l-52.926 53.657z"/></svg>
\ No newline at end of file
index 68b3d4e895836ee0e760e836b2b4c727f9e9f8c0..d11334856e8df22fa5f6163dec65bb97deedbf2a 100644 (file)
@@ -9,7 +9,7 @@ class SponsorType(models.Model):
     sortkey = models.IntegerField(null=False, default=10)
     # sortkey==0 --> do not show in list
 
-    purge_urls = ('/about/servers/', '/about/sponsors/', )
+    purge_urls = ('/about/servers/', '/about/contributing/', )
 
     def __str__(self):
         return self.typename
@@ -25,7 +25,7 @@ class Sponsor(models.Model):
     logoname = models.CharField(max_length=64, null=False, blank=False)
     country = models.ForeignKey(Country, null=False, on_delete=models.CASCADE)
 
-    purge_urls = ('/about/sponsors/', '/about/servers/', )
+    purge_urls = ('/about/servers/', '/about/contributing/', )
 
     def __str__(self):
         return self.name
index a2621f886593ca7b95a53d0a82bd72484b182db7..1b7223affd142685d16db1e402007f99a1a9ca36 100644 (file)
@@ -6,12 +6,20 @@ from .models import Sponsor, Server
 
 @cache(minutes=30)
 def sponsors(request):
+    return render_pgweb(request, 'about', 'sponsors/sponsors.html', {})
+
+
+def contributing(request):
     sponsors = Sponsor.objects.select_related().filter(sponsortype__sortkey__gt=0).order_by('sponsortype__sortkey', '?')
-    return render_pgweb(request, 'about', 'sponsors/sponsors.html', {
+    return render_pgweb(request, 'about', 'sponsors/contributing.html', {
         'sponsors': sponsors,
     })
 
 
+def financial(request):
+    return render_pgweb(request, 'about', 'sponsors/financial.html', {})
+
+
 def servers(request):
     servers = Server.objects.select_related().all()
     return render_pgweb(request, 'about', 'sponsors/servers.html', {
index 722b5cf2b337c4ad7c2c29f3fa8c64e370c925c9..80e0bfd61cbe1ed44b2ed2e9c3f9a3c244f0884e 100644 (file)
@@ -94,6 +94,8 @@ urlpatterns = [
     url(r'^bugs_redir/(\d+)/$', pgweb.misc.views.bugs_redir),
 
     url(r'^about/sponsors/$', pgweb.sponsors.views.sponsors),
+    url(r'^about/contributing/$', pgweb.sponsors.views.contributing),
+    url(r'^about/financial/$', pgweb.sponsors.views.financial),
     url(r'^about/servers/$', pgweb.sponsors.views.servers),
 
     url(r'^robots.txt$', pgweb.core.views.robots),
index bdae22be0e153b2a54c0b688a7946f89c5f1276f..7d13862f4c4c4c1f23f6dec387e49a25fbd5bdce 100644 (file)
@@ -11,6 +11,8 @@ sitenav = {
         {'title': 'Donate', 'link': '/about/donate/'},
         {'title': 'History', 'link': '/docs/current/history.html'},
         {'title': 'Sponsors', 'link': '/about/sponsors/', 'submenu': [
+            {'title': 'Contributing', 'link': '/about/contributing/'},
+            {'title': 'Financial', 'link': '/about/financial/'},
             {'title': 'Servers', 'link': '/about/servers/'},
         ]},
         {'title': 'Latest News', 'link': '/about/newsarchive/'},
diff --git a/templates/sponsors/contributing.html b/templates/sponsors/contributing.html
new file mode 100644 (file)
index 0000000..dd055fb
--- /dev/null
@@ -0,0 +1,41 @@
+{%extends "base/page.html"%}
+{%block title%}Contributing Sponsors{%endblock%}
+{%block contents%}
+
+<h1>Contributing Sponsors <i class="fa fa-users"></i></h1>
+
+<p>The following is a categorized list of significant contributing sponsors to PostgreSQL. These are
+  sponsors who contribute their employee time to furthering the PostgreSQL project.
+  Sponsors are listed in no particular order within each section, with just the location of the head
+  office for each company shown.</p>
+
+{% for sponsor in sponsors %}
+  {% ifchanged sponsor.sponsortype %}
+    {% if not forloop.first %}
+          </tbody>
+        </table>
+    {% endif %}
+    <h2>{{ sponsor.sponsortype.typename }}</h2>
+    <table class="table table-striped sponsor-table">
+      <tbody>
+        {% endifchanged%}
+          <tr>
+            <th scope="row">
+              <a href="{{ sponsor.url }}" target="_blank" rel="noopener">
+                <img class="organisation-logo" src="/media/img/about/sponsors/{{ sponsor.logoname }}" alt="{{ sponsor.name }}" />
+              </a>
+            </th>
+            <td>
+              <a href="{{ sponsor.url }}" target="_blank" rel="noopener">{{ sponsor.name }}</a>
+            </td>
+            <td>{{ sponsor.country }}</td>
+          </tr>
+        {% endfor %}
+    </tbody>
+  </table>
+
+<h2>Sponsorship Recognition</h2>
+<p>
+  Sponsorship recognition is wholly determined by the <a href="/about/policies/sponsorship/">Sponsorship Committee</a> and was last updated in March, 2023.
+</p>
+{%endblock%}
diff --git a/templates/sponsors/financial.html b/templates/sponsors/financial.html
new file mode 100644 (file)
index 0000000..0dad129
--- /dev/null
@@ -0,0 +1,85 @@
+{%extends "base/page.html"%}
+{%block title%}Financial Sponsors{%endblock%}
+{%block contents%}
+
+<h1>Financial Sponsors <i class="fas fa-money-bill-alt"></i></h1>
+
+  <p><a href="/about/financial">Financial Sponsors</a> are people or companies who have donated money to help
+  support one of the <a href="/about/policies/npos/">Recognised PostgreSQL Nonprofit Organisations</a> that
+  support the project around the world. Each NPO determines how their sponsors are grouped and listed in this section.
+  </p>
+
+<h2>PostgreSQL Community Association</h2>
+
+<p>The <a href="https://postgres.ca/">PostgreSQL Community Association</a> is dedicated to stewarding the project
+trademarks and domain names, to ensure that PostgreSQL will remain free and open to all. The following sponsorship
+levels are used:</p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th>Level</th>
+      <th>What activities can be supported?</th>
+      <th>Minimum Donation in USD</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <th scope="row">Benefactor</th>
+      <td>Expand PGCA's mission</td>
+      <td>$20,000</td>
+    </tr>
+    <tr>
+      <th scope="row">Patron</th>
+      <td>Ensure PGCA's ongoing operations</td>
+      <td>$10,000</td>
+    </tr>
+    <tr>
+      <th scope="row">Supporter</th>
+      <td>Support maintenance of domains</td>
+      <td>$5,000</td>
+    </tr>
+    <tr>
+      <th scope="row">Friend</th>
+      <td></td>
+      <td>$2,500</td>
+    </tr>
+    <tr>
+      <th scope="row">Donor</th>
+      <td>All donations are appreciated.</td>
+      <td>&lt; $2,500</td>
+    </tr>
+  </tbody>
+</table>
+
+<p>
+  Find out more information about what PGCA does and its mission on the
+  <a href="https://www.postgres.ca/donate/">PGCA donation page</a>.
+</p>
+
+<h3>PostgreSQL Community Association Sponsors</h3>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th>Name</th>
+      <th></th>
+      <th>Date of donation</th>
+      <th>Level</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <th scope="row">
+        <a href="https://xata.io" target="_blank" rel="noopener">
+          <img class="organisation-logo" src="/media/img/about/sponsors/logo_xata.svg" alt="Xata" />
+        </a>
+      </th>
+      <td><a href="https://xata.io" target="_blank" rel="noopener">Xata</a></td>
+      <td>1st February 2024</td>
+      <td>Supporter</td>
+    </tr>
+  </tbody>
+</table>
+
+{%endblock%}
index 05ff8ba2a29c81c98e95a67f162921fcdf09a451..188ee17831d5c76a4dbf0a000153ba37f98f80e1 100644 (file)
@@ -1,8 +1,8 @@
 {%extends "base/page.html"%}
-{%block title%}Servers{%endblock%}
+{%block title%}Server Sponsors{%endblock%}
 {%block contents%}
 
-<h1>Servers <i class="fas fa-server"></i></h1>
+<h1>Server Sponsors <i class="fas fa-server"></i></h1>
 
 <p>
 The servers that power the services of <a href="/">www.postgresql.org</a> are provided by
index 9fc51e414203faef4aaee54d9d3e7bd9c295e8ce..40b1ee7ce2c2237e0d71c12bdf91861584caec0e 100644 (file)
@@ -4,37 +4,22 @@
 
 <h1>Sponsors <i class="fa fa-users"></i></h1>
 
-<p>The following is a categorized list of significant sponsors to PostgreSQL.
-Sponsors are listed in no particular order within each section, with just the location of the head office
-for each company shown.</p>
+  <p>Sponsors to the PostgreSQL project are listed in three different categories, based on the ways in which they support
+  the project:</p>
 
-{% for sponsor in sponsors %}
-  {% ifchanged sponsor.sponsortype %}
-    {% if not forloop.first %}
-          </tbody>
-        </table>
-    {% endif %}
-    <h2>{{ sponsor.sponsortype.typename }}</h2>
-    <table class="table table-striped sponsor-table">
-      <tbody>
-        {% endifchanged%}
-          <tr>
-            <th scope="row">
-              <a href="{{ sponsor.url }}" target="_blank" rel="noopener">
-                <img class="organisation-logo" src="/media/img/about/sponsors/{{ sponsor.logoname }}" alt="{{ sponsor.name }}" />
-              </a>
-            </th>
-            <td>
-              <a href="{{ sponsor.url }}" target="_blank" rel="noopener">{{ sponsor.name }}</a>
-            </td>
-            <td>{{ sponsor.country }}</td>
-          </tr>
-        {% endfor %}
-    </tbody>
-  </table>
+<h2>Contributing Sponsors</h2>
+  <p><a href="/about/contributing/">Contributing Sponsors</a> are companies that support the project by allowing their
+  employees to spend some or all of their working time helping to build PostgreSQL and work on other project areas
+  and eco-system projects that benefit PostgreSQL users and the project in general.</p>
 
-<h2>Sponsorship Recognition</h2>
-<p>
-  Sponsorship recognition is wholly determined by the <a href="/about/policies/sponsorship/">Sponsorship Committee</a> and was last updated in March, 2023.
-</p>
+<h2>Financial Sponsors</h2>
+  <p><a href="/about/financial/">Financial Sponsors</a> are people or companies who have donated money to help
+  support one of the <a href="/about/policies/npos/">Recognised PostgreSQL Nonprofit Organisations</a> that
+  support the project around the world. Each NPO determines how their sponsors are grouped and listed in this section.
+  </p>
+
+<h2>Server Sponsors</h2>
+  <p>A project like PostgreSQL requires a significant amount of online infrastructure in order to operate. These
+  <a href="/about/servers/">Server Sponsors</a> provide one or more servers and/or hosting to help support the project.
+  </p>
 {%endblock%}