Long ago, when the bar was all Javascript, we had the ability to have
sub-targets in a single bar. I was not able to invest the time
necessary to figure out how to do that again using the newer setup
for the fundraising bar, so instead I've added the ability to have a
stretch match bar that appears above the other one once the first
match period ends.
While it handles most of the weird cases with some grace, it will
probably look weird unless you set up a `SITE_FUNDGOAL_0` as a match
that finishes at least a week or two before `SITE_FUNDGOAL_1`.
The two aren't really aware of each other, either, so you have to
make sure the objects are updated properly (i.e., it *will* display
the stretch when `SITE_FUNDGOAL_0` ends even if there are match funds
remaining in `SITE_FUNDGOAL_0`).
A better solution should be found and implemented before 2026-11-22.
If you're actually reading this commit message for a reason other
than historical interest and that date has past, you're probably in
big trouble right now. 😬
|
||
|---|---|---|
| bin | ||
| conservancy | ||
| deploy | ||
| .dockerignore | ||
| .gitignore | ||
| AGPLv3 | ||
| CC-By-SA-3.0 | ||
| Dockerfile-debian-bookworm | ||
| ISC_LICENSE | ||
| manage.py | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
| TODO.md | ||
Software Freedom Conservancy website
This is a Python/Django-based website that runs sfconservancy.org.
Contributing
The canonical location for this repository is on Conservancy’s Forgejo instance.
License
The software included herein, such as the Python source files, are generally licensed AGPLv3-or-later. JavaScript source is generally GPLv3-or-later. See the notices at the top of each Javascript file for specific licensing details.
The content and text (such as the HTML files) is currently CC-BY-SA-3.0.
Server configuration
Conservancy's webserver runs on a standard Debian installation. For
configuration requirements, see deploy/install.yml.
CDN
Requests to any URL starting with /videos/ are forwarded to our CDN server to
reduce bandwidth use. These files are uploaded to the CDN manually via the
Rackspace API. Note that the Apache rewrite rule requires that the file not
exist on disk for the redirect to be applied.
Local development
Python dependencies in requirements.txt are tied to the versions available in
Debian:
python3 -m pip install -r requirements.txt
To run the tests, install pytest-django and run pytest:
python3 -m pip install pytest-django
python3 -m pytest
Then run:
python3 manage.py migrate
python3 manage.py runserver
There is also a Dockerfile available if that's more convenient. See that file for details.
Deploying
To deploy, run ./bin/deploy on your local machine.
Note that the ./bin/deploy script will requires proper SSH access to the
debian (default) user SFC's webserver, hickory.sfconservancy.org. Your
local user on your own local machine will also need push access permission to
this repository on the Git server (which was f.sfconservancy.org at the
time of writing these instructions).
Link checking
To check for broken links in production, run:
bin/linkcheck
Note that the Apache configuration has a significant number of aliases and redirects for historic URL changes which means that linkchecker may not run cleanly in local development.