Mercurial > p > roundup > code
view locale/Makefile @ 8185:e84d4585b16d
fix(web): issue2551356. Add etag header for not-modified (304) request.
When a 304 is returned to a conditional request for a static file,
print an ETag for the response.
ETag was always sent with a 200 response.
This also adds initial support for if-none-match conditional requests
for static files.
Changes:
Refactors the if-modified-since code out to a method.
It moves a file stat call from serve_static_file to _serve_file
so that an etag can be generated by both serve_static_file and
serve_file which call _serve_file.
Tests added. This does not test the codepath where serve_file pulls
content from the database rather than from a local file on disk.
Test mocking _serve_file changed to account for 5th argument to serve_file
BREAKING CHANGE:
function signature for client.py-Client::_serve_file() now has 5 not 4
parameters (added etag param). Since this is a "hidden" method I am
not too worried about it.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 10 Dec 2024 16:06:13 -0500 |
| parents | 8bdf0484215c |
| children | 8824c81cc431 |
line wrap: on
line source
# Extract translatable strings from Roundup sources, # update and compile all existing translations # tool locations XPOT ?= xpot MSGFMT ?= msgfmt MSGMERGE ?= msgmerge XGETTEXT ?= xgettext PYTHON ?= python3 TEMPLATE=roundup.pot PACKAGES=$(shell find ../roundup ../share/roundup/templates -name '*.py' \ | sed -e 's,/[^/]*$$,,' | sort | uniq) SOURCES=$(PACKAGES:=/*.py) PO_FILES=$(wildcard *.po) MO_FILES=$(PO_FILES:.po=.mo) RUN_PYTHON=PYTHONPATH=.. $(PYTHON) -O all: dist help: @echo "$(MAKE) - build MO files. Run this before sdist" @echo "$(MAKE) dist - same as above" @echo "$(MAKE) template - update message template from sources" @echo "$(MAKE) merge - merge template into *.po files" @echo "$(MAKE) diff - see template differences in vi" @echo "$(MAKE) potest - check .po files for errors" @echo "$(MAKE) pytest - create locale files to run pytest" @echo "$(MAKE) locale.po - update message file from template" @echo "$(MAKE) locale.mo - compile individual message file" @echo "$(MAKE) help - this text" @echo "" @echo "Running make dist is the same as: make template merge dist" # This will rebuild all MO files without updating their corresponding PO # files first. Run before creating Roundup distribution (hence the name). # PO files should be updated by their translators only, automatic update # adds unwanted fuzzy labels. dist: $(MO_FILES) template: roundup.pot pytest local_install: for file in $(PO_FILES); do \ ${MSGFMT} -o `basename $$file .po`.mo $$file; \ done for file in $(MO_FILES); do \ lang=`basename $$file .mo`; \ mkdir -p locale/$$lang/LC_MESSAGES; \ cp $$file locale/$$lang/LC_MESSAGES/roundup.mo; \ done # helps to check template file before check in diff: hg cat roundup.pot | diff -u -I '^\#: \.\./roundup.*$$' \ -I '^#:\s*:[0-9]*.*$$' \ - roundup.pot || exit 0 merge: $(PO_FILES) potest: sh -c 'for file in $(PO_FILES); do \ ${MSGFMT} -cv --statistics $$file; \ done' 2>&1 | sort -k 2,2n %.po: $(TEMPLATE) @echo "Rebuild $@" @${MSGMERGE} -U --suffix=.bak $@ $< @# update Project-Id-Version to match roundup.pot @VER="`sed -ne \"/__version__/s/.*'\(.*\)'.*/\1/p\" \ ../roundup/__init__.py`"; \ sed -i -e \ "s/^\(\"Project-Id-Version: Roundup\).*/\1 $${VER}\\\\n\"/" $@ %.mo: %.po ${MSGFMT} -o $@ $< roundup.pot: $(SOURCES) $(TEMPLATES) ${XPOT} -n -o $(TEMPLATE) $(SOURCES) 2>&1 | sed -e "/: Unexpected in Python source: #64 \`@'/d" ${RUN_PYTHON} ../roundup/cgi/TAL/talgettext.py -u $(TEMPLATE) \ ../share/roundup/templates/classic/html/*.html \ ../share/roundup/templates/devel/html/*.html \ ../share/roundup/templates/minimal/html/*.html \ ../share/roundup/templates/responsive/html/*.html VERSION="`${RUN_PYTHON} -c 'from roundup import __version__; \ print(__version__)';`"; \ ${XGETTEXT} -j -w 80 -F \ --add-comments=".Hint " \ --package-name=Roundup \ --package-version=$$VERSION \ --msgid-bugs-address=roundup-devel@lists.sourceforge.net \ --copyright-holder="See Roundup README.txt" \ -o $(TEMPLATE) $(SOURCES)
