Merge sponsors.py into supporters app, frontpage.py into views.py
Just a small structural change so that the related functionality is grouped together.
This commit is contained in:
parent
44c0a9db32
commit
2ff551147c
11 changed files with 71 additions and 73 deletions
2
TODO.md
2
TODO.md
|
@ -6,11 +6,11 @@
|
||||||
* serve a 400 in Apache for a hostname we don't explicitly support
|
* serve a 400 in Apache for a hostname we don't explicitly support
|
||||||
* replace `internalNavigate` with inline flexbox layout
|
* replace `internalNavigate` with inline flexbox layout
|
||||||
* add tests for main pages returning 200
|
* add tests for main pages returning 200
|
||||||
* move `sponsors.py` and `sponsors.html` into `supporters` app
|
|
||||||
|
|
||||||
|
|
||||||
# Done
|
# Done
|
||||||
|
|
||||||
|
* move `sponsors.py` and `sponsors.html` into `supporters` app
|
||||||
* use `<detail>` elements for supporter page hidden sections, rather than
|
* use `<detail>` elements for supporter page hidden sections, rather than
|
||||||
complex jQuery
|
complex jQuery
|
||||||
* remove jQuery
|
* remove jQuery
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
from django.shortcuts import render
|
|
||||||
|
|
||||||
from .blog.models import Entry
|
|
||||||
from .news.models import PressRelease
|
|
||||||
from .supporters.models import Supporter
|
|
||||||
|
|
||||||
|
|
||||||
def view(request):
|
|
||||||
"""Conservancy front page view
|
|
||||||
|
|
||||||
Performs all object queries necessary to render the front page.
|
|
||||||
"""
|
|
||||||
now = datetime.now()
|
|
||||||
context = {
|
|
||||||
'press_releases': PressRelease.objects.all().filter(pub_date__lte=now, sites=2)[:5],
|
|
||||||
'supporters_count': Supporter.objects.all().filter(display_until_date__gte=now).count(),
|
|
||||||
'blog': Entry.objects.all().filter(pub_date__lte=now)[:5],
|
|
||||||
}
|
|
||||||
return render(request, "frontpage.html", context)
|
|
|
@ -1,22 +0,0 @@
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
from django.shortcuts import render
|
|
||||||
|
|
||||||
from .supporters.models import Supporter
|
|
||||||
|
|
||||||
|
|
||||||
def view(request):
|
|
||||||
"""Conservancy Sponsors Page view
|
|
||||||
|
|
||||||
Performs object queries necessary to render the sponsors page.
|
|
||||||
"""
|
|
||||||
supporters = Supporter.objects.all().filter(display_until_date__gte=datetime.now())
|
|
||||||
supporters_count = len(supporters)
|
|
||||||
anonymous_count = len(supporters.filter(display_name='Anonymous'))
|
|
||||||
supporters = supporters.exclude(display_name='Anonymous').order_by('ledger_entity_id')
|
|
||||||
c = {
|
|
||||||
'supporters' : supporters,
|
|
||||||
'supporters_count' : supporters_count,
|
|
||||||
'anonymous_count' : anonymous_count
|
|
||||||
}
|
|
||||||
return render(request, "sponsors.html", c)
|
|
|
@ -1,10 +1,10 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
|
|
||||||
from . import views as supp_views
|
from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', supp_views.index),
|
path('', views.sustainers),
|
||||||
path('banner/', TemplateView.as_view(template_name='supporter/banners.html')),
|
path('banner/', TemplateView.as_view(template_name='supporters/banners.html')),
|
||||||
path('banners/', TemplateView.as_view(template_name='supporter/banners.html')),
|
path('banners/', TemplateView.as_view(template_name='supporters/banners.html')),
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
|
||||||
from .. import ParameterValidator
|
from .. import ParameterValidator
|
||||||
|
from .models import Supporter
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
def sustainers(request):
|
||||||
with ParameterValidator(request.GET, 'upgrade_id') as validator:
|
with ParameterValidator(request.GET, 'upgrade_id') as validator:
|
||||||
try:
|
try:
|
||||||
amount_param = float(request.GET['upgrade'])
|
amount_param = float(request.GET['upgrade'])
|
||||||
|
@ -16,4 +19,21 @@ def index(request):
|
||||||
'partial_amount': partial_amount,
|
'partial_amount': partial_amount,
|
||||||
'minimum_amount': 120 - partial_amount,
|
'minimum_amount': 120 - partial_amount,
|
||||||
}
|
}
|
||||||
return render(request, "supporter/index.html", context)
|
return render(request, "supporters/sustainers.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
def sponsors(request):
|
||||||
|
"""Conservancy Sponsors Page view
|
||||||
|
|
||||||
|
Performs object queries necessary to render the sponsors page.
|
||||||
|
"""
|
||||||
|
supporters = Supporter.objects.all().filter(display_until_date__gte=datetime.now())
|
||||||
|
supporters_count = len(supporters)
|
||||||
|
anonymous_count = len(supporters.filter(display_name='Anonymous'))
|
||||||
|
supporters = supporters.exclude(display_name='Anonymous').order_by('ledger_entity_id')
|
||||||
|
c = {
|
||||||
|
'supporters' : supporters,
|
||||||
|
'supporters_count' : supporters_count,
|
||||||
|
'anonymous_count' : anonymous_count
|
||||||
|
}
|
||||||
|
return render(request, "supporters/sponsors.html", c)
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
|
|
||||||
{% if partial_amount > 0 %}
|
{% if partial_amount > 0 %}
|
||||||
{% include "supporter/form_partial.html" with form_id="annual" min_amt=minimum_amount partial_amt=partial_amount article="an" only %}
|
{% include "supporters/form_partial.html" with form_id="annual" min_amt=minimum_amount partial_amt=partial_amount article="an" only %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="supporter-type-selector">
|
<div class="supporter-type-selector">
|
||||||
<strong>Become a Sustainer Now:</strong>
|
<strong>Become a Sustainer Now:</strong>
|
||||||
|
@ -29,12 +29,12 @@
|
||||||
| <a id="renewalSelector" href="#renewal">Annual Renew</a>
|
| <a id="renewalSelector" href="#renewal">Annual Renew</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% include "supporter/form_partial.html" with form_id="annual" min_amt=120 default_amt=128 article="an" only %}
|
{% include "supporters/form_partial.html" with form_id="annual" min_amt=120 default_amt=128 article="an" only %}
|
||||||
|
|
||||||
{% include "supporter/form_partial.html" with form_id="monthly" min_amt=10 default_amt=12 only %}
|
{% include "supporters/form_partial.html" with form_id="monthly" min_amt=10 default_amt=12 only %}
|
||||||
|
|
||||||
<a name="renew" class="hidden"></a>
|
<a name="renew" class="hidden"></a>
|
||||||
{% include "supporter/form_partial.html" with form_id="renewal" min_amt=120 default_amt=128 verb="renew" article="an" supptype="annual" only %}
|
{% include "supporters/form_partial.html" with form_id="renewal" min_amt=120 default_amt=128 verb="renew" article="an" supptype="annual" only %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<span id="form-correction-needed" class="form-error">Please ensure all form data above is correct.</span>
|
<span id="form-correction-needed" class="form-error">Please ensure all form data above is correct.</span>
|
|
@ -22,12 +22,13 @@ from django.conf.urls.static import static
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import include, path, re_path
|
from django.urls import include, path, re_path
|
||||||
|
|
||||||
from . import feeds, frontpage, sponsors
|
from . import feeds
|
||||||
from .fundgoal import views as fundgoal_views
|
from .fundgoal import views as fundgoal_views
|
||||||
from . import views as static_views
|
from . import views
|
||||||
|
from conservancy.supporters import views as supporters_views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', frontpage.view),
|
path('', views.frontpage),
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('assignment/', include('conservancy.assignment.urls')),
|
path('assignment/', include('conservancy.assignment.urls')),
|
||||||
path('blog/', include('conservancy.blog.urls')),
|
path('blog/', include('conservancy.blog.urls')),
|
||||||
|
@ -41,25 +42,25 @@ urlpatterns = [
|
||||||
path('fossy/', include('conservancy.fossy.urls')),
|
path('fossy/', include('conservancy.fossy.urls')),
|
||||||
path('fundraiser_data/', fundgoal_views.view),
|
path('fundraiser_data/', fundgoal_views.view),
|
||||||
path('news/', include('conservancy.news.urls')),
|
path('news/', include('conservancy.news.urls')),
|
||||||
path('sponsors/', sponsors.view),
|
path('sponsors/', supporters_views.sponsors),
|
||||||
path('sponsors/index.html', sponsors.view),
|
path('sponsors/index.html', supporters_views.sponsors),
|
||||||
path('sustainer/', include('conservancy.supporters.urls')),
|
path('sustainer/', include('conservancy.supporters.urls')),
|
||||||
path('usethesource/', include('conservancy.usethesource.urls')),
|
path('usethesource/', include('conservancy.usethesource.urls')),
|
||||||
|
|
||||||
# Directories of templates and files
|
# Directories of templates and files
|
||||||
re_path(r'^about/', static_views.index),
|
re_path(r'^about/', views.content),
|
||||||
re_path(r'^activities/', static_views.index),
|
re_path(r'^activities/', views.content),
|
||||||
re_path(r'^copyleft-compliance/', static_views.index, {'fundraiser_sought': 'vmware-match-0'}),
|
re_path(r'^copyleft-compliance/', views.content, {'fundraiser_sought': 'vmware-match-0'}),
|
||||||
re_path(r'^donate/', static_views.index),
|
re_path(r'^donate/', views.content),
|
||||||
path('fossy/', static_views.index),
|
path('fossy/', views.content),
|
||||||
re_path(r'^GiveUpGitHub/', static_views.index),
|
re_path(r'^GiveUpGitHub/', views.content),
|
||||||
re_path(r'^learn/', static_views.index),
|
re_path(r'^learn/', views.content),
|
||||||
re_path(r'^npoacct/', static_views.index, {'fundraiser_sought': 'npoacct'}),
|
re_path(r'^npoacct/', views.content, {'fundraiser_sought': 'npoacct'}),
|
||||||
re_path(r'^overview/', static_views.index), # Unused?
|
re_path(r'^overview/', views.content), # Unused?
|
||||||
re_path(r'^press/', static_views.index),
|
re_path(r'^press/', views.content),
|
||||||
re_path(r'^privacy-policy/', static_views.index),
|
re_path(r'^privacy-policy/', views.content),
|
||||||
re_path(r'^projects/', static_views.index),
|
re_path(r'^projects/', views.content),
|
||||||
re_path(r'^sustainer/', static_views.index),
|
re_path(r'^sustainer/', views.content),
|
||||||
]
|
]
|
||||||
|
|
||||||
# Serve uploaded media. Works only when DEBUG == True. Using '/media/'
|
# Serve uploaded media. Works only when DEBUG == True. Using '/media/'
|
||||||
|
|
|
@ -1,12 +1,32 @@
|
||||||
|
from datetime import datetime
|
||||||
import mimetypes
|
import mimetypes
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.http import FileResponse, Http404, HttpResponse, HttpResponseRedirect
|
from django.http import FileResponse, Http404, HttpResponse, HttpResponseRedirect
|
||||||
|
from django.shortcuts import render
|
||||||
from django.template import RequestContext, Template
|
from django.template import RequestContext, Template
|
||||||
|
|
||||||
|
from .blog.models import Entry
|
||||||
from .local_context_processors import fundgoal_lookup
|
from .local_context_processors import fundgoal_lookup
|
||||||
|
from .news.models import PressRelease
|
||||||
|
from .supporters.models import Supporter
|
||||||
|
|
||||||
def index(request, *args, **kwargs):
|
|
||||||
|
def frontpage(request):
|
||||||
|
"""Conservancy front page view
|
||||||
|
|
||||||
|
Performs all object queries necessary to render the front page.
|
||||||
|
"""
|
||||||
|
now = datetime.now()
|
||||||
|
context = {
|
||||||
|
'press_releases': PressRelease.objects.all().filter(pub_date__lte=now, sites=2)[:5],
|
||||||
|
'supporters_count': Supporter.objects.all().filter(display_until_date__gte=now).count(),
|
||||||
|
'blog': Entry.objects.all().filter(pub_date__lte=now)[:5],
|
||||||
|
}
|
||||||
|
return render(request, "frontpage.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
def content(request, *args, **kwargs):
|
||||||
"""Faux CMS: bulk website content stored in templates and document files.
|
"""Faux CMS: bulk website content stored in templates and document files.
|
||||||
|
|
||||||
Rationale: Many websites have a CMS and store the majority of their website
|
Rationale: Many websites have a CMS and store the majority of their website
|
||||||
|
|
Loading…
Reference in a new issue