tk-it / web Goto Github PK
View Code? Open in Web Editor NEWTÅGEKAMMERETs hjemmeside i Django. Både offentlig og intern
Home Page: https://TAAGEKAMMERET.dk
License: Other
TÅGEKAMMERETs hjemmeside i Django. Både offentlig og intern
Home Page: https://TAAGEKAMMERET.dk
License: Other
Swipe på image.html
virker mere ikke efter jeg har ændret noget.
Test på
Der bliver nogle gange uploaded filer til mail der bliver sendt til hængerlisten. Et eksempel er http://www.TAAGEKAMMERET.dk/kammerkluns-f2015.pdf
Vi skal have en erstatning med den nye hjemmeside. Måske kan vi bruge http://tket.dk
Lige nu kan man ikke uploade det samme billede i flere albums da
slug = models.SlugField(unique=True)
i Image
klassen.
Der skal også være et andet check i models.py#L95
Ændringen i #23 kan også rulles tilbage.
Det var tidligere en del af tkgal.js
men er blevet slettet.
Jeg kan ikke selv løse problemet med kombinationen af FUHI's og mine migrations. Nogen, der kan hjælpe?
Jquery-file-upload formen på album change_form
ændre på knapper og styling fordi den hiver bootstrap ind. Alt efter viewport størrelsen er der er også nogle gange nogle <div>
der ligger over admin formen, så man ikke kan interagere med elementerne der i.
Når vi skal lave et API til andre projekter kan vi bruge Django REST framework. Dele bliver i fremtiden integreret i Django så det skulle være fremtidssikret.
Der burde indgå et versionsnummer i stien til APIet fra starten.
yoxview
mangler. Er det overhovedet det lightbox framework vi skal bruge?
Der må være et public alternativ til PIL.Image._getexif()
.
image._getexif() fejler på nogle input.
Den er taget fra denne SO-tråd.
Med G0016891.JPG
, taget med GoPro, feljer den med:
ZeroDivisionError at /galleri/upload/
division by zero
Traceback:
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/django/views/decorators/http.py" in inner
45. return func(request, *args, **kwargs)
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
22. return view_func(request, *args, **kwargs)
File "/Users/neic/Documents/TK/tkweb/tkweb/apps/gallery/views.py" in upload
29. instance.save()
File "/Users/neic/Documents/TK/tkweb/tkweb/apps/gallery/models.py" in save
61. self.date = get_exif_date_or_now(self.image)
File "/Users/neic/Documents/TK/tkweb/tkweb/apps/gallery/models.py" in get_exif_date_or_now
21. info = image._getexif()
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/PIL/JpegImagePlugin.py" in _getexif
391. return _getexif(self)
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/PIL/JpegImagePlugin.py" in _getexif
425. exif.update(info)
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/PIL/TiffImagePlugin.py" in __getitem__
354. self[tag] = handler(self, data, self.legacy_api) # check type
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/PIL/TiffImagePlugin.py" in load_rational
484. for num, denom in zip(vals[::2], vals[1::2]))
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/PIL/TiffImagePlugin.py" in <genexpr>
484. for num, denom in zip(vals[::2], vals[1::2]))
File "/Users/neic/Documents/TK/tkweb/venv/lib/python3.5/site-packages/PIL/TiffImagePlugin.py" in <lambda>
482. combine = lambda a, b: (a, b) if legacy_api else a / b
Hvis man uploader 2 billeder som har det samme slug (f.eks. det samme billede to gange), så får man en 500 error i stedet for en besked om at man nok har uploadet det samme billede flere gange til det samme album.
Relevant kode:
web/tkweb/apps/gallery/models.py
Lines 104 to 106 in 7410301
Hvis billedet er højere end viewport kommer der scrollbars. Jeg har prøvet med halvhjertet med ren css, men fik det ikke til at virke. Alternativt burde det være let med js.
I #9 er det blevet diskuteret om billederne skal identificeres med et hash, eller det originale filnavn. Jeg flytter diskussionen her til.
Når man starter afspilning af en lyd eller video og ændre billede med tkgal.js
fotsætter afspilningen selvom man ikke kan se elementet.
Tilføj template evaluation til flatpages så man kan bruge {% tket %}
.
Se http://stackoverflow.com/questions/3066270/extending-django-flatpages-to-accept-template-tags
I Chrome 48 på OSX henter <img srcset="small.jpg 500w, large.jpg 1000w" src="fallback.jpg">
stadig fallback.jpg
selvom den aldrig bliver brugt. Det betyder at image.html
loader alle 720px thumbnails selvom de aldrig bliver vist. Jeg ved ikke om det er en bug i vores kode eller i browseren.
På gallery.html
forbliver #accordion
fra andre år åben når der trykkes på et nyt år.
Indtil vi går live, kan alle ændre i migrations så de ikke virker i følgende apps:
tkweb.apps.calendar
tkweb.apps.gallery
tkweb.apps.tkbrand
Det betyder at du ikke kan være sikker på at du kan manage.py migrate
din lokale database.
Følgende migrations skal bibeholdes i følge @Mortal:
idm
Der mangler en guide til hvordan man får et dev environment op og kører og en requirements.txt
.
Der er ca. 40000 billeder på hjemmesiden nu. Med et hash med 36^6=~2.1e9 muligheder giver det en risiko for en hashcollition på ~37%. Se wikipedia.
Med en SLUG_SIZE = 9
er risikoen istedet ~0,0008%
Til hackdayen blev vi enige om at LESS var smart, men at vi ikke ville hente node.js osv. ind som dependency på serveren. Vi blev enige om at løsningen var at vi havde både .less
-filerne og en compilede .css
-version i git. Man skal så selv sørge for at compile inden man committer noget nyt.
Det skal gøres og dokumenters.
Der er en del andre typer filer i det nuværende filsystem. Vi skal have en måde bibeholde dem på.
Et hurtigt bud er at vi skal håndtere: mp3
, mov
, ram
, avi
, gif
, txt
, pdf
, mp4
/m4v
mp3
(konverteret ram
)mp4
(konverteret mov
, avi
, m4v
) Se også #5.gif
txt
pdf
egrep -vi "jpe?g|png|thumbs" filesnames.txt | sort
./04-0001/99-Blandet/asr.mp3
./06-0203/20-Cykeltur_til_Kaloe_Slotsruin/Originale/L1000352.mov
./06-0203/20-Cykeltur_til_Kaloe_Slotsruin/Originale/L1000356.mov
./07-0304/99-Blandet/P1-kronometer-16-11-03.mp3
./07-0304/99-Blandet/P1-kronometer-16-11-03.ram
./07-0304/99-Blandet/TV2-nyhederne22-19-11-03.ram
./08-0405/99-Lydfiler/CERM_i_Eksperimentet-6.1MB.mp3
./08-0405/99-Lydfiler/Eksperimentet-79.9MB.mp3
./10-0607/17-Hest-Julefrokost/Originale/frafiltrerede/MVI_6105.avi
./10-0607/18-KASS_i_KASS_og_NFs_hyldest_til_FORM/Originale/MVI_6012.avi
./10-0607/18-KASS_i_KASS_og_NFs_hyldest_til_FORM/Originale/MVI_6015.avi
./10-0607/34-Majfest/Originale/galleryStyle.css
./10-0607/34-Majfest/Originale/home.gif
./11-0708/14-BODYCRASHING/Originale/bodycrashing.zip
./11-0708/38-Griiillaften_og_UAHB/Originale/DSCF9743.AVI
./11-0708/98-Referater/01-HSTR.txt
./11-0708/98-Referater/02-BODYCRASHING.txt
./11-0708/98-Referater/03-OElforedrag.txt
./11-0708/98-Referater/04-Crazy_Christmas_Cabaret.txt
./11-0708/98-Referater/06-VKF.txt
./11-0708/98-Referater/07-Tur_i_Botanisk_have.txt
./11-0708/98-Referater/08-Hatten_Rundt.txt
./11-0708/98-Referater/09-Takt_og_Tone_Foredrag.txt
./11-0708/98-Referater/10-Kaloetur.txt
./12-0809/38-Sommergrill/Originale/DSCF0700.avi
./12-0809/90-Aarets_gang_paa_TK/Billede
./12-0809/92-Loebesedler/Originale/Originale-crop/crop.sh
./12-0809/92-Loebesedler/Originale/Originale-crop/crop.sh~
./12-0809/Div_ekstra/IMGP1566.MOV
./13-0910/21-LPT-Julefrokost/Originale/billede
./13-0910/21-LPT-Julefrokost/billede
./14-1011/90-AArets_gang_paa_TK/Originale/Brev til Marianne.pdf
./14-1011/90-AArets_gang_paa_TK/Originale/Brev til marianne 2.pdf
./14-1011/99-Video/GKA$$.AVI
./14-1011/99-Video/Latterforedrag1.AVI
./14-1011/99-Video/Latterforedrag2.AVI
./14-1011/99-Video/Latterforedrag3.AVI
./15-1112/07-HSTR/burde-slettes/test/oversigt.txt
./15-1112/07-HSTR/burde-slettes/test/oversigt.txt~
./15-1112/99-Video_og_lyd/BODYCRASHING.mp3
./15-1112/99-Video_og_lyd/ChrisMacDonald.MOV
./15-1112/99-Video_og_lyd/Happeninghappening.MOV
./15-1112/99-Video_og_lyd/J-dag-happening.AVI
./15-1112/99-Video_og_lyd/Kapsejlads.MOV
./15-1112/99-Video_og_lyd/KapsejladsHappening.MOV
./15-1112/99-Video_og_lyd/RathsackHappening.MOV
./17-1314/04-Forloev/originale/renaming.txt
./17-1314/12-HSTR/.swp
./17-1314/12-HSTR/renaming.sh
./17-1314/12-HSTR/renaming.txt
./17-1314/15-Stiftelsesfest/originale/MVI_5322.MOV
./17-1314/15-Stiftelsesfest/originale/MVI_5434.MOV
./17-1314/18-Skabsbundningstur_v5/.swp
./17-1314/18-Skabsbundningstur_v5/DSC_3060.m4v
./17-1314/38-KDRUK_MGP/Originale/kdruk-tropaaosto.mp4
./17-1314/files.txt
Lav albummodellen om:
Det skulle være rimelig nemt at emulere ShowPicture.php
, så gamle links virker.
Ved at gemme et billedes gamle sti i Image modellen, kan ShowPicture.php
-emulatoren finde den og lave en redirect.
@furt11 skriver i #10
Galleriet kører nu. Der kunne godt tilføjes lidt javascript(jquery) registrering af horisontalt swipe. Det vil være meget brugbart på mobiler!
jQuery mobile har swipe events; https://api.jquerymobile.com/swipeleft/ f.eks. Men så skal vi loade endnu et javascript framework udover jquery.
Kalender.php
efter et facebook link i beskrivelsen.Der bliver, af forskellige grunde, nogle gange slettet billeder fra den offentlige side. Vi bruger dog også hjemmesiden som det eneste arkiv vi har af billeder. Istedet for at slette billederne kan vi gøre dem ikke-offentlige med et BooleanField
.
Det løser også halvdelen af #9.
Det virkede engang, nu virker det ikke mere.
På Rizzoma startede en tråd om hvilke billeder der vises når der linkes til (den gamle) hjemmesiden på facebook. Vi bør tilføje de rette tags her.
https://developers.facebook.com/tools/debug/og/object?q=TAAGEKAMMERET.dk
Det skal testes når siden er online.
Et unikt slug for hvert album til brug i URL'er (/galleri/gfyear/unik album-slug) bør tilføjes modellen. For at holde dem unikke kunne man tilføje '-årstal' til sluggen, hvis et tidligere album har samme navn. Hvis album med samme navn i samme år findes, bør albummet ikke kunne oprettes.
Ligeledes vil der kunne bruges unikke slugs til visning af billeder. Jeg forestiller mig /galleri/gfyear/album slug/billed-slug, hvor billed-slug'et kunne udgøres af timestamp for billedet ala den gamle hjemmeside. Disse timestamp-slugs ville således også kunne bruges til at ordne billederne i de enkelte gallerier.
gfyear skal kunne sættes globalt.
For at billederne bliver sorteret rigtigt burde vi sortere efter Exif.Image.DateTimeOriginal
med fallback til Exif.Image.DateTime
.
Vi kan også bruge datane til at lave slugs. Se #14.
Med den nye BaseMedia
som model=
for InlineBaseMediaAdmin
(tidligere InlineImageAdmin
), bliver admin_thumbnail
kaldt på BaseMedia
, ikke på den nedarvede klasse, Image
.
Det betyder at thumbnailet ikke bliver vist på admin siden.
Til hackday var der enighed om at Beerware er en passende licens
------------------------------------------------------------------------------
"THE BEER-WARE LICENSE" (Revision 42):
<[email protected]> wrote these files. As long as you retain this notice
you can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy us some beer in return. TÅGEKAMMERET
------------------------------------------------------------------------------
Jeg, @Mortal og @furt11 har tilkendegivet at det er ok. Er @tyilo også med?
Følgende statisk indhold mangler:
/tk40/jubi40_histnew.php
/tk40/tk40new.php
/tk40/*.jpg
/J50Resume/J50-Jubiskrift.pdf
/J50Resume/J50-Sangbog.pdf
/J50Resume/*.jpg
/J50Resume.php
/J60/index.html
/J60/j60brev.pdf
/j60/*
/vedtaegter.pdf
/Grafik/TKlogo.jpg (skal erstattes af vektor)
Efter 703b6be og 60418de er stylen på .tk-brand
måske blevet bedere på Windows, men på OSX er det en tilbagegang. Det hele er desuden blevet bold.
Ser font-family: "Courier New", Courier, monospace;
ikke acceptabelt up på Windows og Linux?
På OSX ser det lækkert ud på en HiDPI skærm, men er lidt gnidret på en skærm med 1x DPI. Det er specielt "AMME". Jeg kan ændre kerningen lidt.
OSX:
Courier 2xDPI
Courier 1xDPI
PT Mono 1xDPI
PT Mono Bold 1xDPI
Som siden ser ud nu er bare et simpelt funktionelt design. Det er ikke noget jeg har tænkt nærmere over og det har altid været ment som en placeholder indtil nogen fandt på noget bedere.
Jeg mener at vi skal fokusere på at få erstattet den nuværende side først og fremmest. Vi kan i fremtiden forbedre designet, men det design vi går live med skal være mindst lige så godt som det gamle.
Er der nogen der har nogle indsigelser for at vi går live med det nuværende design?
Eftersom Apache-serveren på prodekanus og på pulerau kun kan have enten mod_python med Python 2 eller mod_python med Python 3, kører vi indtil videre med Python 2 i production, da det er det nemmeste (og fra mit synspunkt det mest stabile) at sætte op.
Derfor bør hjemmesiden være Python 2+3-kompatibel. Heldigvis gør Django det nemt at være, hvis man er opmærksom på det.
En lille test på min MBP med 32 billeder på i alt ~150 MiB viser at det tager det ~30 sekunder at generere alle thumbnails til album.html
og ~2 minutter at generere til image.html
. Det er selvfølge kun første load, men den første der besøger siden efter et nyt album er uploadet vil se det. Desuden vil det første upload på >100GB sikkert give problemer.
En mulighed er https://github.com/chhantyal/sorl-thumbnail-async
file_name
i gallery/models.py
er halv-arbitrær. Den burde istedet gemme dem som noget der ligner gfyearPP(gfyear) + "/" + arrangement + "/" + originalt_filnavn
. Selfølgelig websafe.
Diskussionen startede i #9.
Se også download link originalt billede i #4 (comment)
Bør der ikke blot være en knap i admin interfacet til at updatere kalenderen fra ical?
Når album oprettes fungerer form-valideringen efter hensigten og forhindrer at gemme albummet, hvis slug er identisk med et andet albums.
Men når et album redigeres, bør valideringen ikke advare, når der er et album i databasen med samme slug, hvis dét er selv samme album der redigeres.
Jeg havde regnet med at 'exclude' i linje 27 i tkweb\apps\gallery\admin.py ville tillade at ændre et album uden at ændre slug;
ln 27: "qs = Album.objects.filter(slug=potentialslug).exclude(id=cleaned_data.get('id'))"
Nogen der kan gennemskue, hvad jeg gør forkert? Får et ændret album et nyt id og kan jeg derved ikke udelukke den på den måde?
/FURT
Lige nu er bestfu siden statisk. Engang når vi får lavet en backend til alt persondata skal dataene hentes derfra.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.