Elementy dynamiczne zrobione i dzialaja na wszystkich stronach oraz sie skaluja.

Uwaga do view:
W momencie kiedy view jest renderowany:
render(request, 'hotel/template.html', context)
do contextu musza zostac dodane dane dla headera i footera. Napisalem do tego funkcje:
include_header_footer(context)
Jako parametr przyjmuje oryginalny context i zwraca dict zawierajacy podany context + dane headera i footera.
Od teraz trzeba jej uzywac do tworzenia finalncyh contextow dla kazdej strony ktora renderujemy, tzn:
render(request, 'hotel/template.html', include_header_footer(context))

Jesli renderujemy widok do ktorego nic nie przekazujemy (a chcemy miec header i footer) to funkcje mozna wywolac bez parametrow:
render(request, 'hotel/template.html', include_header_footer())