Tworzenie aplikacji w Django

Wielkość: px
Rozpocząć pokaz od strony:

Download "Tworzenie aplikacji w Django"

Transkrypt

1 Tworzenie aplikacji w Django Warsztaty IT, , szkolenia@warsztatyit.pl

2

3 Tworzenie aplikacji w Django Ćwiczenia 1 Poczatki projektu 1.1 Utwórz projekt gazetr 1.2 Skonfiguruj projekt 1.3 Dodaj interfejs administracyjny Spis treści 1.4 Utwórz aplikacj e news z modelem Category 1.5 Pod l acz Category do panelu administracyjnego 1.6 Utwórz grupy i użytkowników 1.7 Utwórz potrzebne kategorie 1.8 Dodaj aplikacj e admindocs 1.9 Wyświetl pe lne dane kategorii w spisie 1.10 Dodaj opis do pól kategorii 1.11 Wymuś unikalność nazwy kategorii 2 Modele 2.1 Utwórz model Article w aplikacji news 2.2 Dodaj model Article do panelu administracyjnego 2.3 Dodaj opis do pól Article 2.4 Dodaj kilka artyku lów 2.5 Utwórz aplikacj e visuals z modelem MenuEntry 2.6 Dodaj MenuEntry do panelu administracyjnego 2.7 Uaktualnij uprawnienia 2.8 Utwórz potrzebne wpisy menu 2.9 Utwórz aplikacj e ads z modelem Advertisement 2.10 Dodaj model Advertisement do interfejsu administracyjnego 2.11 Ogranicz list e możliwych wartości pola sort order w Advertisement 2.12 Dodaj dwie reklamy 3 Strony publiczne 3.1 Utwórz stron e kategorii 3.2 Wyświetl wszystkie dane kategorii 1

4 3.3 Utwórz bazowy szablon ca lego serwisu 3.4 Dodaj pliki z oprawa graficzna 3.5 Wyświetl liste artyku lów w kategorii 3.6 Zdefiniuj metody get absolute url dla kategorii i artyku lów 3.7 Popraw wyglad strony kategorii 3.8 Utwórz strone artyku lu 3.9 Popraw wyglad strony artyku lu 3.10 Popraw tytu ly stron artyku lu i kategorii 3.11 Utwórz stron e użytkownika 4 W lasne widoki, formularze 4.1 Utwórz aplikacj e contact z modelem Message 4.2 Utwórz formularz i widok do jego obs lugi 4.3 Dodaj sprawdzanie poprawności danych 4.4 Dodaj sprawdzanie poprawności do interfejsu administracyjnego 4.5 Popraw wyglad strony kontaktowej 4.6 Dodaj do wszystkich stron liste kategorii 4.7 Dodaj do wszystkich stron list e sponsorów 4.8 Dodaj do wszystkich stron list e wpisów do menu 4.9 Dodaj sprawdzanie poprawności danych, cz eść Dodaj stron e dzi ekujemy za wiadomość 5 Strona g lówna, api bazodanowe 5.1 API bazy danych - wprowadzenie 5.2 Filtrowanie 5.3 Filtrowanie na podstawie pól modeli po l aczonych 5.4 Pobieranie pojedynczych obiektów 5.5 Sortowanie wyników 5.6 Uzupe lnij dane w bazie 5.7 Napisz bazowy widok i szablon strony g lównej 5.8 Popraw wyglad strony g lównej 5.9 Dodaj do wszystkich stron liste ostatnich wydarzeń 5.10 Api bazy danych: zmiany wpisów 6 Komentarze, strony statyczne 6.1 Dodaj aplikacj e comments 6.2 Dodaj formularz komentarza do strony artyku lu 6.3 Dostosuj strone podgladu komentarza 6.4 Popraw strone Dziekujemy za komentarz 6.5 Dodaj list e komentarzy 6.6 Dodaj moderacj e 6.7 Rozbuduj funkcje moderujac a 2

5 6.8 Dodaj strony z informacjami o b l edach 6.9 Dodaj strony o serwisie i regulamin 6.10 Wype lnij powitanie 7 Profile użytkowników, przydatne aplikacje 7.1 Dodaj model na profile użytkowników 7.2 Dodaj widok do edycji profilu 7.3 Dodaj feed z artyku lami 7.4 Dodaj feed ze wszystkimi komentarzami 7.5 Feed z artyku lami: zmień zawartość description na zapowiedź 7.6 Popraw miniatury w serwisie 7.7 Debugowanie: dodaj informacje o wykonanych zapytaniach 3

6 1 Poczatki projektu 1.1 Utwórz projekt gazetr Tworzenie Aplikacji w Django, Nowy projekt tworzy si e programem django-admin.py, poleceniem startproject. 1 # w katalogu serwis_gazetr 2 $ /sciezka/do/django final/django/bin/django-admin.py startproject gazetr 3 $ ls gazetr 4 init.py manage.py settings.py urls.py Bezpośrednio po utworzeniu projekt powinien dać si e uruchomić. 1 # w katalogu serwis_gazetr 2 $ cd gazetr 3 $ python manage.py runserver Validating models errors found 6 7 Django version final, using settings gazetr.settings 8 Development server is running at 9 Quit the server with CONTROL-C. Teraz można otworzyć przegladark e, pod adresem powinna pojawić sie strona It worked!. 1.2 Skonfiguruj projekt Potrzebne zmiany w settings.py: ADMINS: imi e, nazwisko i adres administratora DATABASE ENGINE: sterownik bazy danych, na nasze potrzeby: sqlite3 DATABASE NAME: nazwa bazy danych, w przypadku sqlite3 to też nazwa pliku; gazetr.db3 LANGUAGE CODE: kod j ezyka, pl MEDIA ROOT: katalog z plikami graficznymi, CSS i innymi statycznymi, static/ Utwórz też katalog static/: 1 # w katalogu gazetr 2 $ mkdir static Polskie litery w plikach.py W plikach z programami w Pythonie można używać polskich znaków, ale trzeba poinformować interpreter w jaki sposób zosta ly zakodowane. Na poczatku każdego pliku w którym użyjesz polskich liter, należy podać kodowanie umieszczajac w pierwszej linii tekst: # -*- encoding: utf-8 -*- 4

7 Po wskazaniu bazy danych można już utworzyć podstawowe tabele. Django spyta o dane administratora, wpisz login admin z has lem admin. 1 # w katalogu gazetr 2 $ python manage.py syncdb 3 Creating table auth_permission 4 Creating table auth_group 5 [...] 6 You just installed Django s auth system, which means you don t have any superusers 7 Would you like to create one now? (yes/no): yes 8 Username (Leave blank to use marcink ): admin 9 address: twoj-adres- 10 Password: 11 Password (again): 12 [...] Kopie zapasowe To jest dobry moment, żeby zaczać tworzyć kopie zapasowe Twojego projektu; kod, który tworzysz, bedzie potrzebny w kolejnych cześciach zajeć. Czesto, najlepiej po każdym ćwiczeniu zapisuj kolejna kopie ca lego katalogu ze źród lami: $ cp -r gazetr gazetr_(nr_czesci)_(nr_cwiczenia) Na przyk lad, po tym ćwiczeniu bedzie to: $ cp -r gazetr gazetr_1_4 Parametr -r oznacza kopiowanie katalogu razem z ca l a zawartościa. 1.3 Dodaj interfejs administracyjny W pliku settings.py dodaj django.contrib.admin na końcu INSTALLED_APPS W pliku urls.py odkomentuj linie: from django.contrib import admin admin.autodiscover() (r ^admin/(.*), admin.site.root), Po każdym dodaniu aplikacji lub modelu trzeba uruchomić syncdb: 1 # w katalogu gazetr 2 $ python manage.py syncdb 3 Creating table django_admin_log 4 Installing index for admin.logentry model Uruchom ponownie serwer i zaloguj si e do interfejsu administracyjnego pod adresem W panelu administracyjnym zmień ustawienia domyślnej strony (site): domain name: z example.com na :4000 5

8 display name: z example.com na gazetr 4000 to numer portu, na którym b edziemy uruchamiać serwer. Uwaga: po zmianie tego ustawienia trzeba ponownie uruchomić serwer -- ze wzgl edów wydajnościowych jest wczytywane tylko przy starcie. 1.4 Utwórz aplikacj e news z modelem Category 1 # w katalogu gazetr 2 $ python manage.py startapp news 3 $ ls news 4 init.py models.py views.py W pliku settings.py dodaj gazetr.news do INSTALLED_APPS. W pliku news/models.py utwórz model Category: 1 from django.db import models 2 from django.contrib.auth.models import User 3 4 class Category(models.Model): 5 name = models.charfield(max_length=100, null=false, blank=false) 6 owner = models.foreignkey(user, null=false, blank=false) 7 description = models.textfield(null=false, blank=false) 8 9 def unicode (self): 10 return self.name Przeprowadź ponownie syncdb. 1.5 Pod l acz Category do panelu administracyjnego Utwórz plik news/admin.py z zawartościa: 1 from gazetr.news.models import Category 2 from django.contrib import admin 3 4 class CategoryAdmin(admin.ModelAdmin): 5 pass 6 7 admin.site.register(category, CategoryAdmin) Przejdź do interfejsu administracyjnego. modelem Category. Na stronie g lównej pojawi la si e nowa aplikacja, News, z 6

9 1.6 Utwórz grupy i użytkowników Utwórz dwie grupy użytkowników: edytorzy, z pe lnymi uprawnieniami do news.category autorzy, na razie bez uprawnień Utwórz użytkowników, z has lami takimi samymi jak login: edytor 1, z zaznaczonym polem w zespole, należacy do grupy edytorzy (na stronie dodawania użytkownika jest miejsce tylko na login i has lo, pozosta le pola pojawia sie po kliknieciu w zapisz i kontynuuj edycje ) autor 1, z zaznaczonym polem w zespole, należacy do grupy autorzy gosc, z polem w zespole pustym Zaloguj si e do panelu jako autor 1. Powinna si e pojawić strona Nie masz uprawnień, by edytować cokolwiek. Zaloguj si e do panelu jako edytor 1. Powinien pojawić si e interfejs do edycji kategorii. Spróbuj zalogować si e do panelu jako gosc. Nie uda si e, bo nie jest oznaczony jako w zespole. 1.7 Utwórz potrzebne kategorie Utwórz kategorie: Gospodarka, w laściciel: edytor 1 Kultura, w laściciel: edytor 1 Sport, w laściciel: edytor 1 Technika, w laściciel: admin Wydarzenia, w laściciel: admin 1.8 Dodaj aplikacj e admindocs Dodaj django.contrib.admindocs do INSTALLED_APPS. Odkomentuj linijk e z /admin/doc/ w pliku urls.py. Po tych zmianach w nag lówku interfejsu administracyjnego pojawi l si e odsy lacz Dokumentacja. Przejrzyj dokumentacj e widocznych modeli. Zajrzyj do opisu Category -- widać tam wszystkie pola modelu, w tym po l aczenie z modelem auth.user. 7

10 1.9 Wyświetl pe lne dane kategorii w spisie Zmień CategoryAdmin tak, żeby: na liście kategorii by lo widać nazw e, w laściciela i opis (parametr list_display) możliwe by lo wyszukiwanie tekstowe wed lug zawartości pól name i description (parametr search_fields) widoczny by l filtr wed lug zawartości pola owner (parametr list_filter) Uruchom ponownie serwer i sprawdź, czy na stronie z lista kategorii: dzia la wyszukiwanie dzia la filtrowanie wed lug zawartości pola owner można sortować list e wed lug dowolnej kolumny 1.10 Dodaj opis do pól kategorii Do pól modelu Category dodaj parametry verbose_name i help_text, odpowiednio: name: Nazwa i Nazwa kategorii pokazywana w spisie owner: W laściciel i Użytkownik odpowiedzialny za artyku ly w tej kategorii description: Opis i Opis wyświetlany na stronie kategorii; można używać HTML Pamietaj o dopisaniu na poczatku pliku informacji o kodowaniu (-> ćwiczenie 4, ramka Polskie litery w plikach.py ). Uruchom ponownie serwer i sprawdź czy nowe opisy widać: w edytorze kategorii w dokumentacji modelu Category (tu nie pojawi si e verbose_name) 1.11 Wymuś unikalność nazwy kategorii Zmień model Category tak, żeby nazwa kategorii nie mog la si e powtarzać (atrybut unique). Zrestartuj serwer i sprawdź, czy możesz wpisać dwie kategorie z taka sama nazwa. Wi ecej informacji wynik python manage.py --help Dokumentacja Django, django-admin.py and manage.py: Overview : 8

11 2 Modele 2.1 Utwórz model Article w aplikacji news Utwórz model Article, z polami: title: krótki tekst, unikalny, wymagany image: obrazek, wymagany teaser: zapowiedź na strone g lówna, d luższy tekst; opcjonalny content: zawartość, d luższy tekst w HTML; wymagany created: data i godzina utworzenia; ustawiana automatycznie changed: data i godzina ostatniej zmiany; ustawiana automatycznie category: kategoria artyku lu; wymagana featured: tak/nie, jeśli zaznaczony, to artyku l pojawi si e w sekcji wyróżnione lead story: tak/nie, jeśli zaznaczony, to artyku l pojawi si e w boksie Wiadomość dnia author: po l aczenie z modelem auth.user, wymagane Pole ImageField wymaga podania parametru upload_to -- ścieżki do katalogu, w którym zapisane zostana obrazki, wzgledem settings.media_root. Wpisz upload/. Pola category i autor powinny być typu ForeignKey, odwo lujacym sie odpowiednio do modeli Category i User. Pola lead_story i featured powinny być typu BooleanField. Metoda unicode powinna zwracać title. 2.2 Dodaj model Article do panelu administracyjnego W pliku news/admin.py, analogicznie do CategoryAdmin. Lista artyku lów powinna zawierać kolumny: title created author category featured lead story Dodaj filtrowanie wed lug zawartości pól: author 9

12 category featured lead story W l acz przegladanie Article wg hierarchii dat, wed lug pola created Dodaj wyszukiwanie wed lug zawartości pól title i content. 2.3 Dodaj opis do pól Article Do pól modelu Article dodaj parametry verbose_name i help_text, odpowiednio: teaser: Zapowiedź i Zapowiedź artyku lu, można używać HTML content: Zawartość i Zawartość artyku lu, można używać HTML featured: Wyróżniony i jeśli zaznaczony, to artyku l pojawi si e w sekcji wyróżnione lead story: Wiadomość dnia i jeśli zaznaczony, to artyku l pojawi si e w boksie Wiadomość dnia Dla pozosta lych pól ustaw polskie verbose_name, ale już bez help_text. Uruchom ponownie serwer i sprawdź czy nowe opisy widać: w edytorze artyku lów w dokumentacji modelu Article (verbose_name pojawi sie tylko dla pól, które nie maja ustawionego help_text) 2.4 Dodaj kilka artyku lów Korzystajac z dostarczonych materia lów utwórz cztery artyku ly: w kategorii Technika Superkomputer..., wyróżniony, autor: autor 1 NVIDIA..., autor: edytor 1 w kategorii Wydarzenia Klub Harenda..., wiadomość dnia, autor: autor 1 Patio TV..., wiadomość dnia, autor: edytor Utwórz aplikacj e visuals z modelem MenuEntry Utwórz aplikacje i dodaj ja do INSTALLED_APPS. W pliku visuals/models.py utwórz model MenuEntry z polami: title: krótki tekst, wymagany target url: krótki tekst -- odsy lacz, do którego dany wpis prowadzi; wymagany sort order: liczba, pozycja na liście, wymagana Metoda unicode powinna zwracać tytu l wpisu. 10

13 2.6 Dodaj MenuEntry do panelu administracyjnego Utwórz plik visuals/admin.py z klasa MenuEntryAdmin, analogicznie jak w przypadku Category i CategoryAdmin. Skonfiguruj MenuEntryAdmin tak, żeby: na liście wpisów by lo widać sort_order, title i target_url możliwe by lo wyszukiwanie tekstowe wed lug zawartości pól title i target_url Skonfiguruj model MenuEntry tak, żeby by l domyślnie sortowany wed lug zawartości pola sort_order. 2.7 Uaktualnij uprawnienia Edytorzy powinni mieć pe lne prawa do modeli news.article, news.category i visuals.menuentry. Autorzy powinni mieć prawa tylko do modelu news.article. Dodaj te uprawnienia i sprawdź, czy: po zalogowaniu sie jako autor 1 widzisz tylko interfejs do dodawania i edycji artyku lów po zalogowaniu sie jako edytor 1 widzisz wszystkie trzy modele 2.8 Utwórz potrzebne wpisy menu Zaloguj sie jako edytor 1 i utwórz wpisy w MenuEntry: Strona g lówna, target url: /, sort order: 1 O serwisie, target url: /pomoc/o-serwisie/, sort order: 2 Regulamin, target url: /pomoc/regulamin/, sort order: 3 Wydarzenia, target url: /kategoria/5/, sort order: 4 W ostatnim wpisie upewnij sie, że w URL znajduje sie rzeczywiście ID kategorii Wydarzenia. 2.9 Utwórz aplikacj e ads z modelem Advertisement Utwórz aplikacje i dodaj ja do INSTALLED_APPS. Utwórz w niej model Advertisement z polami: title: krótki opis, wymagany image: obrazek, wymagany target url: odsy lacz reklamy, wymagany sort order: pozycja na liście, wymagana Pole ImageField wymaga podania parametru upload_to -- ścieżki do katalogu, w którym zapisane zostana obrazki, wzgledem settings.media_root. Wpisz upload/. Metoda unicode powinna zwracać tytu l reklamy. 11

14 2.10 Dodaj model Advertisement do interfejsu administracyjnego W pliku ads/admin.py, analogicznie do CategoryAdmin. Lista reklam powinna zawierać pola sort_order, title i target_url, w tej kolejności. Reklamy na liście powinny być domyślnie posortowane wed lug pola sort_order (parametr ordering w modelu, w wewn etrznej klasie Meta) Ogranicz list e możliwych wartości pola sort order w Advertisement Zmień model Advertisement tak, żeby dopuszcza l tylko wartości: 1 z opisem platynowy partner 2 z opisem z loty partner 3 z opisem srebrny partner 4 z opisem brazowy partner Upewnij si e, że interfejs edytora nie pozwala na wpisanie innych wartości Dodaj dwie reklamy Przyk ladowe wartości: Oiola.com, target_url: sort_order: 1 El Monito, target_url: sort_order: 2 Obrazki znajdziesz w katalogu z materia lami, podkatalog grafika. 12

15 3 Strony publiczne 3.1 Utwórz stron e kategorii Tworzenie Aplikacji w Django, W pliku urls.py dodaj na poczatku urlpatterns: 1 (r ^kategoria/(?p<object_id>[0-9]+)/$, 2 django.views.generic.list_detail.object_detail, 3 { queryset : Category.objects.all(), 4 template_object_name : category }), To wyrażenie sk lada sie z nastepuj acych elementów: 1 r ^ # poczatek tekstu 2 r kategoria/ # tekst kategoria/ 3 r (?P<object_id>[0-9]+) # liczba, przekazana jako object_id do view 4 r / # slash na koncu adresu 5 r $ # koniec tekstu Wi ec pasuje do adresów kategorii typu /kategoria/123/. Uruchom ponownie serwer testowy i otwórz stron e pod adresem Pojawi sie strona z informacja, że wystapi l b l ad; strona wskazuje dok ladne miejsce wystapienia b l edu, razem z pe ln a lista wywo lań funkcji. Ostatni na tej liście jest w laśnie plik urls.py. Kliknij we wskazana linie kodu, a pojawia sie też sasiednie. B l ad to NameError, z opisem: name Category is not defined. Oznacza, że we wskazanym miejscu (w pliku urls.py) nazwa Category nie ma przypisanego znaczenia. Zaimportuj Category z news.models przez dopisanie w pliku urls.py (przed urlpatterns) linijki: 1 from gazetr.news.models import Category Uruchom serwer ponownie, pojawi sie kolejny b l ad: TemplateDoesNotExist. Brakuje szablonu news/category_detail.html. Konwencja Nazwy szablonów moga być dowolne, ale w wiekszości wypadków warto je tworzyć zgodnie z regu l a nazwa_aplikacji/nazwa_widoku.html. Widoki generyczne object_detail i object_list tworza je na podstawie aplikacji, z której pochodzi wyświetlany model, oraz nazwy modelu. Utwórz katalog na ten szablon: 1 # w katalogu gazetr 2 $ mkdir templates 3 $ mkdir templates/news 13

16 Dodaj katalog templates do settings.template_dirs: 1 TEMPLATE_DIRS = ( 2 /pelna/sciezka/do/gazetr/templates/, 3 ) I utwórz sam szablon templates/news/category_detail.html, na razie z prosta zawartościa: 1 <p>kategoria: {{ category.name }}</p> Uruchom ponownie serwer testowy, otwórz stron e pod adresem Pojawi sie strona z nazwa kategorii o id równym 1. Uwaga: kolejne ćwiczenia zak ladaja, że kategoria ta zawiera jakieś artyku ly. Jeśli tak nie jest, dodaj je przed przejściem dalej. 3.2 Wyświetl wszystkie dane kategorii Zajrzyj do dokumentacji pod adresem /admin/doc/ i sprawdź, jakie pola sa dostepne w modelu Category. Wyświetl je wszystkie (wliczajac te z article_set) na stronie kategorii, używajac {{ }}. Filtr safe Mechanizm szablonów Django automatycznie przekszta lca wartości wszystkich wstawionych zmiennych, zamieniajac znaki majace szczególne znaczenie w HTML ( &, <, > oraz cudzys lowy) na odpowiednie encje HTML. W wiekszości sytuacji to jest poprawne i bezpieczne zachowanie, ale czasem -- tak jak tutaj, w przypadku pól z zapowiedzia i treścia artyku lu -- konieczne jest pozwolenie na wstawienie bezpośrednio HTML. S luży do tego filtr safe: {{ zmienna safe }}. 3.3 Utwórz bazowy szablon ca lego serwisu Pora zajać sie wygladem strony z kategoriami, ale w taki sposób żeby latwo by lo dodawać kolejne strony korzystajace z tej samej oprawy graficznej. W katalogu z materia lami znajduje si e podkatalog html, a w nim plik base.html. Skopiuj ten plik jako templates/base.html: 1 $ cp /sciezka/do/materialow/html/base.html /sciezka/do/serwis_gazetr/gazetr/templates/ Dopisz do news/category_detail.html lini e extends, żeby dziedziczy l po base.html: 1 {% extends "base.html" %} 14

17 Otwórz ponownie stron e Widać dwa problemy: 1. brakuje informacji o kategorii wypisywanych przez news/category_detail.html 2. brakuje oprawy graficznej Teraz zajmiemy si e pierwszym. Widać tylko zawartość base.html, bo news/category_detail.html dziedziczy po base.html i nie nadpisuje żadnego fragmentu. W pliku base.html otocz tekst CZEŚĆ G LÓWNA blokiem o nazwie content: 1 {% block content %} 2 CZESC GLOWNA 3 {% endblock content %} Oznacza to, że ten fragment może być nadpisany przez szablony dziedziczace po base.html. W pliku news/category_detail.html też dodaj blok content obejmujacy wszystko poza linijka extends: 1 {% extends "base.html" %} 2 {% block content %} 3 <p>kategoria: {{ category.name }}</p> 4 [...] 5 {% endblock content %} Otwórz ponownie strone Pojawi sie zawartość base.html, ale zamiast tekstu CZEŚĆ G LÓWNA wstawiona zostanie zawartość bloku content z news/category_detail.html. 3.4 Dodaj pliki z oprawa graficzna W katalogu z materia lami znajduje si e podkatalog css. Skopiuj ca ly podkatalog do static/css: 1 $ cp -r /sciezka/do/materialow/css /sciezka/do/serwis_gazetr/gazetr/static/ W normalnych instalacjach pliki te sa obs lugiwane ze wzgledów wydajnościowych ca lkowicie poza Django, czesto przez osobny komputer (lub komputery). Na potrzeby tworzenia aplikacji warto je udostepnić przez serwer testowy, ale w taki sposób żeby latwo można by lo je wy l aczyć po udostepnieniu serwisu publicznie. W pliku settings.py: zmień wartość MEDIA_URL na /static/ -- jest to adres z którego pobierane bed a pliki statyczne, np. obrazki dodaj zmienna SERVE_MEDIA_FILES ustawiona na True; to bedzie zmienna pozwalajaca na w l aczanie obs lugi plików statycznych 15

18 Na końcu urls.py dopisz obs lug e adresu /static/ z użyciem widoku django.views.static.serve. 1 from django.conf import settings 2 if settings.serve_media_files: 3 urlpatterns = patterns(, 4 (r ^static/(?p<path>.*)$, 5 django.views.static.serve, 6 { document_root : settings.media_root}), 7 ) + urlpatterns Widok ten w odpowiedzi na żadanie ze ścieżka /static/sciezka/do/pliku/ odsy la do przegladarki plik (document_root)/sciezka/do/pliku/. Bezpieczeństwo Widok django.views.static.serve s luży tylko do obs lugi plików podczas prac programistycznych. Nie należy go używać na serwerach dost epnych publicznie: nie jest zabezpieczony przed pobieraniem plików spoza katalogu wskazanego jako document_root. Uruchom ponownie serwer i sprawdź nowe ustawienia otwierajac Pojawi si e zawartość pliku CSS. Otwórz ponownie strone bedzie już mia la pe ln a oprawe graficzna. 3.5 Wyświetl list e artyku lów w kategorii W pliku news/category_detail.html dodaj petl e wyświetlajac a wszystkie artyku ly: 1 {% for article in category.article_set.all %} 2 <p><a href="{{ article.get_absolute_url }}">{{ article.title }}</a></p> 3 {% endfor %} Otwórz ponownie stron e powinien pojawić si e spis artyku lów. Odsy lacze maja puste adresy, bo w klasie Article nie istnieje jeszcze pole ani metoda get_absolute_url. URL do zdj ecia jest dost epny jako article.image.url. 3.6 Zdefiniuj metody get absolute url dla kategorii i artyku lów W klasie Category dodaj metod e get_absolute_url: 1 def get_absolute_url(self): 2 return u /kategoria/%s/ % str(self.id) Operator % Operator % s luży do wstawiania wartości do tekstów. Wypróbuj w interpreterze Pythona wyrażenia: >>> %s test % maly >>> To %s wiekszy %s % ( jest, test ) 16

19 Z tej metody korzysta też interfejs administracyjny: otwórz teraz stron e edycji kategorii Wydarzenia. Po dodaniu get_absolute_url w prawym górnym rogu pojawi l si e odsy lacz Pokaż na stronie. W klasie Article zdefiniuj podobna metode get_absolute_url, zwracajac a adres typu /nr-artykulu/, np /123/. Otwórz ponownie strone odsy lacze artyku lów powinny już mieć odpowiednie adresy (jeszcze nie sa obs lugiwane). 3.7 Popraw wyglad strony kategorii W katalogu z materia lami html, znajduje sie plik category_content.html. Zastap jego zawartościa ca l a zawartość bloku content w pliku news/category_detail.html. Otwórz ponownie strone zamiast rzeczywistych danych kategorii pojawia sie zaślepki wpisane w tym pliku. Zamień je wszystkie na odpowiednie wartości z modelu Category. 3.8 Utwórz stron e artyku lu W pliku urls.py dodaj regu l e podobna do tej dla modelu Category, ale z takimi zmianami: 1. powinna pasować do adresów w postaci 123/, a wi ec bez cz eści kategoria/ 2. zapytanie powinien też obs lugiwać widok object_detail, ale używajac modelu Article i ustawiajac nazwe obiektu w szablonie na article. Po wprowadzeniu zmian otwórz stron e Pojawia sie podobne b l edy jak podczas dodawania obs lugi kategorii. Popraw je: 1. dodaj odpowiedni import w urls.py 2. dodaj szablon news/article_detail.html z zawartościa: 1 <p>{{ article.title }}</p> Otwórz ponownie stron e powinien pojawić si e tytu l artyku lu. 3.9 Popraw wyglad strony artyku lu W katalogu z materia lami html, znajduje sie plik article_content.html. news/article_detail.html i zmień ten szablon tak, żeby: Zastap nim zawartość 1. dziedziczy l po base.html 2. zawiera l blok content z kodem z article_content.html 3. zamiast zaślepek wyświetla l rzeczywiste dane z artyku lu URL do zdj ecia jest dost epny jako article.image.url. Pomiń na razie zaślepki zwiazane z komentarzami -- zajmiemy sie nimi później. 17

20 3.10 Popraw tytu ly stron artyku lu i kategorii Niezależnie od tego, która strone artyku lu lub kategorii sie otworzy, w pasku tytu lowym przegladarki widać zawsze nazwe Gazetr. Znajdź w pliku base.html miejsce, w którym wpisany jest ten tytu l i otocz je blokiem title: 1 <title>{% block title %}Gazetr{% endblock %}</title> Nadpisz ten blok w szablonie news/article_detail.html: 1 {% block title %}{{ article.title }} - Gazetr{% endblock %} Podobnie zmień news/category_detail.html: 3.11 Utwórz stron e użytkownika Utwórz stron e z informacjami o pojedynczym użytkowniku. 1 (r ^u/(?p<slug>[0-9a-z_]+)/$, 2 django.views.generic.list_detail.object_detail, 3 { queryset : User.objects.all(), 4 slug_field : username, 5 template_object_name : account }), Znowu pojawia sie widok object_detail, ale tym razem konfigurujemy go tak, zeby wybiera l obiekty używajac pola innego niż id. Różnice: 1. nazwa zmiennej w wyrażeniu dopasowywanym do ścieżki to slug zamiast object_id 2. w s lowniku z parametrami pojawi l sie dodatkowy parametr, slug_field, zawierajacy nazwe pola które bedzie porównywane z wartościa slug 3. wyrażenie regularne jest tak skonstruowane, że slug pasuje nie tylko do numerów, ale do dowolnych ciagów liter (od a do z ), cyfr i znaku podkreślenia. Brakuje jeszcze szablonu; utwórz go i wype lnij podobnie do stron artyku lów i kategorii. 18

21 4 W lasne widoki, formularze 4.1 Utwórz aplikacj e contact z modelem Message Utwórz w aplikacji contact model Message z polami: topic, Temat, krótki tekst, wymagany , , Field, wymagany content, Zawartość, d lugi tekst, wymagany Metoda unicode powinna zwracać tekst ( ): (temat), z wartościami z pól obiektu. Pod l acz model do modelu administracyjnego i upewnij sie że można tworzyć i usuwać wpisy w interfejsie administratorskim. 4.2 Utwórz formularz i widok do jego obs lugi Utwórz plik contact/forms.py z zawartościa: 1 from django import forms 2 from gazetr.contact.models import Message 3 4 class ContactForm(forms.ModelForm): 5 class Meta: 6 model = Message Konwencja Django nie wymaga, żeby formularze by ly umieszczone akurat w pliku aplikacja/forms.py, ale jest to cz esto stosowana konwencja. Utwórz widok contact_view pliku contact/views.py: 1 from django.shortcuts import render_to_response 2 from django.template import RequestContext 3 4 from gazetr.contact.forms import ContactForm 5 6 def contact_view(request): 7 form = ContactForm() 8 return render_to_response( contact/message_form.html, 9 context_instance = RequestContext(request), 10 dictionary = { form : form}) Funkcja render to response render_to_response(template, context_instance, dictionary) Funkcja ta tworzy odpowiedź ze strona utworzona na podstawie szablonu template uzupe lnionego danymi z context_instance i dictionary. 19

22 Dodaj szablon contact/message_form.html: 1 <form action="." method="post"> 2 <table>{{ form }}</table> 3 <input type="submit" value="zapisz" /> 4 </form> Pod l acz contact_view do urls.py pod adresem kontakt/. 1 (r ^kontakt/$, gazetr.contact.views.contact_view ), Otwórz stron e pojawi si e formularz. Sprawdź dzia lanie przycisku Zapisz: nic si e nie dzieje, bo widok nie zawiera żadnego kodu poza wyświetleniem formularza. Zmień widok contact_view w ten sposób: 1 from django.http import HttpResponseRedirect 2 3 def contact_view(request): 4 if request.method == "POST": 5 form = ContactForm(request.POST) 6 if form.is_valid(): 7 form.save() 8 return HttpResponseRedirect( /admin/ ) 9 else: 10 form = ContactForm() 11 return render_to_response( contact/message_form.html, 12 context_instance = RequestContext(request), 13 dictionary = { form : form}) Tworzenie obiektu formularza W powyższej funkcji pojawiaja sie dwie metody tworzenia obiektu klasy ContactForm: 1. ContactForm(request.POST) otrzyma l podczas inicjalizacji dane wpisane przez użytkownika; tak utworzony obiekt można wykorzystać do sprawdzenia i zapisania oraz wyświetlenia formularza na stronie 2. ContactForm() nie otrzyma l żadnych danych, wi ec s luży tylko do wyświetlenia formularza na stronie Otwórz ponownie strone Kliknij Zapisz bez wpisywania danych -- pojawi sie strona z informacja o brakujacych wartościach. Wpisz poprawne dane, kliknij Zapisz. Zostaniesz przekierowany na strone :tt:/admin/; sprawdź, czy wiadomość zosta la rzeczywiście zapisana. Widoki generyczne W praktyce do obs lugi tego typu formularzy wystarczaja widoki generyczne z modu lu django.views.generic.create_update: create_object i update_object. 20

23 4.3 Dodaj sprawdzanie poprawności danych Formularz ContactForm już teraz sprawdza dane zgodnie z konfiguracja modelu -- sprawdza, czy wpisane zosta ly wszystkie wymagane wartości i czy ma rzeczywiście poprawny format. Czasem jednak potrzebne jest sprawdzenie dodatkowych warunków. Redakcja serwisu Gazetr nie chce dostawać wiadomości, które: maja zbyt zbyt krótki temat maja treść wiadomości taka sama jak temat Takie warunki można sprawdzić przez odpowiednie rozbudowanie klasy ContactForm. Na przyk lad, dodaj do niej metod e clean_topic: 1 def clean_topic(self): 2 topic = self.cleaned_data[ topic ] 3 if len(topic) < 5: 4 raise forms.validationerror( Zbyt krotki temat ) 5 return topic Otwórz ponownie strone i spróbuj wys lać wiadomość z tematem zawierajacym tylko 3 litery. Metody clean_(nazwa_pola) s luża do sprawdzania wartości pojedynczych pól. Atrybut self.cleaned_data to s lownik, który zawiera wartości poprawnie wpisanych pól. Można też zdefiniować metode clean, s lużac a do sprawdzania wartości wiecej niż jednego pola: 1 def clean(self): 2 cleaned_data = self.cleaned_data 3 if cleaned_data.get( topic ) == cleaned_data.get( content ): 4 raise forms.validationerror( Temat musi byc inny niz tresc ) 5 return cleaned_data Uwaga: metody clean_(nazwa_pola) zostaja wywo lane dla danego pola tylko pod warunkiem, że zosta lo ono wpisane, wiec moga za lożyć że cleaned_data zawiera jego wartość. W przypadku metody clean takiej gwarancji już nie ma, stad konieczność użycia metody slownik.get( klucz ) zamiast normalnego pobrania wartości przez slownik[ klucz ]. Zwróć uwage: b l edy znalezione przez clean i clean_(nazwa_pola) pojawiaja sie w różnych miejscach. 4.4 Dodaj sprawdzanie poprawności do interfejsu administracyjnego Przejdź do interfejsu administracyjnego i spróbuj wpisać wiadomość ze zbyt krótkim tematem. Uda si e, ale chcemy to zmienić. Zarejestruj model Message w interfejsie administracyjnym korzystajac z tak napisanej klasy MessageAdmin: 21

24 1 from gazetr.contact.forms import ContactForm 2 3 class MessageAdmin(admin.ModelAdmin): 4 form = ContactForm Spróbuj znowu wpisać w panelu administracyjnym niepoprawna wiadomość -- zostanie odrzucona. 4.5 Popraw wyglad strony kontaktowej Zmień stron e /kontakt/ tak, żeby korzysta la z ogólnej oprawy graficznej serwisu. 4.6 Dodaj do wszystkich stron list e kategorii Strona base.html ma dużo zaślepek -- miejsc, które trzeba uzupe lnić danymi. By loby bardzo niewygodne, gdyby trzeba by lo dopisywać pobieranie tych danych w każdym widoku, który (pośrednio) korzysta z tego szablonu; na szcz eście można to zrobić w jednym miejscu. Utwórz plik gazetr/context_processors.py: 1 from gazetr.news.models import Category 2 3 def gazetr_context(request): 4 return { 5 categories : Category.objects.all(), 6 } Otwórz plik django/conf/global_settings.py, znajdź w nim definicje TEMPLATE_CONTEXT_PROCESSORS i skopiuj ja na koniec gazetr/settings.py. Na końcu TEMPLATE_CONTEXT_PROCESSORS dodaj gazetr.context_processors.gazetr_context. Od teraz we wszystkich stronach utworzonych z użyciem RequestContext, w tym także stronach utworzonych przez widoki generyczne, dost epna b edzie zmienna categories. Zmień szablon base.html tak, żeby w cz eści Kategorie wyświetla l rzeczywisty spis kategorii razem z odsy laczami do ich stron. 4.7 Dodaj do wszystkich stron list e sponsorów Zmień gazetr_context tak, żeby do zmiennej advertisements wstawia l Advertisement.objects.all(). Zmień szablon base.html tak, żeby w cz eści Sponsorzy by ly widoczne rzeczywiste reklamy z odsy laczami z bazy danych. 4.8 Dodaj do wszystkich stron list e wpisów do menu Zmień gazetr_context tak, żeby do zmiennej menu_entries wstawia l MenuEntry.objects.all(). Zmień szablon base.html tak, żeby w menu wyświetla l wpisy z menu_entries. 22

25 4.9 Dodaj sprawdzanie poprawności danych, cz eść 2 Zmień ContactForm tak, żeby oprócz dotychczasowych warunków odrzuca l wiadomości, których: tekst zawiera mniej niż 10 znaków tytu l lub tekst zawiera dwa wykrzykniki pod rzad 4.10 Dodaj stron e dzi ekujemy za wiadomość Użytkownik po poprawnym wpisaniu formularza powinien zostać przekierowany nie na strone administracyjna, ale pod adres /kontakt/dziekujemy/. Zmień przekierowanie w contact_view. Dodaj do urls.py obs lug e tego adresu przez django.views.generic.simple.direct_to_template z parametrem template równym contact/thanks.html. Utwórz szablon contact/thanks.html dziedziczacy po base.html, z tekstem Dziekujemy za wys lanie wiadomości. 23

26 5 Strona g lówna, api bazodanowe Wszystkie dotychczasowe strony pobiera ly dane na jeden z dwóch sposobów: albo wszystkie instancje jakiegoś modelu, albo pojedyncza instancje wskazana przez numer identyfikacyjny (pole id). Strona g lówna różni sie od nich tym, że wyświetla dane zebrane w bardziej skomplikowany sposób. Sa to: 1. najnowszy artyku l oznaczony jako wiadomość dnia 2. trzy najnowsze artyku ly oznaczone jako wyróżnione 3. trzy najnowsze artyku ly bez oznaczeń wyróżnione albo spam Potrzebna b edzie wiedza interfejsie dost epu do bazy danych. 5.1 API bazy danych - wprowadzenie W tej chwili w bazie danych powinieneś mieć pieć kategorii, utworzonych zgodnie z punktem Utwórz potrzebne kategorie z cześci pierwszej. Sprawdź, czy wartości pól nazwa i w laściciel sa dok ladnie takie: Gospodarka, w laściciel: edytor 1 Kultura, w laściciel: edytor 1 Sport, w laściciel: edytor 1 Technika, w laściciel: admin Wydarzenia, w laściciel: admin W przeciwnym wypadku wyniki poleceń nie bed a sie zgadzać z podanymi w tym tekście. Uruchom konsol e poleceń manage.py: 1 $ python manage.py shell 2 Python (r251:54863, Jul , 23:17:40) 3 Type "copyright", "credits" or "license" for more information. 4 5 IPython An enhanced Interactive Python. 6? -> Introduction to IPython s features. 7 %magic -> Information about IPython s magic % functions. 8 help -> Python s own help system. 9 object? -> Details about object.?object also works,?? prints more In [1]: Wyglad konsoli In [1]: jest znakiem zachety rozszerzonego interpretera Pythona. Jeśli po uruchomieniu shell pojawia sie standardowy, pythonowy znak zachety: >>>, to znaczy że na Twoim systemie nie jest zainstalowany pakiet ipython. Nie przeszkadza to w korzystaniu z Django. 24

27 W tym interpreterze wpisz polecenia: 1 In [1]: from gazetr.news.models import Category 2 3 In [2]: Category.objects.all() 4 Out[2]: [<Category: Gospodarka>, <Category: Kultura>, <Category: Sport>, 5 <Category: Technika>, <Category: Wydarzenia>] Category.objects to Manager modelu Category -- obiekt pozwalajacy na dostep do danych tego modelu w bazie. Metoda all, zgodnie z nazwa, pobiera wszystkie wpisy. Pobierz jedna kategorie: 1 In [3]: Category.objects.all()[1] 2 Out[3]: <Category: Kultura> W pythonie wyrażenie lista[0] oznacza pierwszy element listy, lista[1] -- drugi i tak dalej. Możesz też pobrać zakres: 1 In [4]: Category.objects.all()[1:3] 2 Out[4]: [<Category: Kultura>, <Category: Sport>] Wyrażenie lista[a:b] oznacza wszystkie elementy listy o indeksach a, a+1, a+2 aż do b-1. Sprawdź dane wybranej kategorii: 1 In [4]: a = Category.objects.all()[1] 2 3 In [5]: type(a) 4 Out[5]: <class gazetr.news.models.category > 5 6 In [6]: a.name 7 Out[6]: u Kultura 8 9 In [7]: a.owner 10 Out[7]: <User: edytor_1> In [8]: a.owner.username 13 Out[8]: u edytor_ In [9]: a.owner.is_staff 16 Out[9]: True To, co dostajesz w wyniku uruchomienia all() można pod wieloma wzgl edami traktować jak list e, ale nie jest to lista: 1 In [10]: type(category.objects.all()) 2 Out[10]: <class django.db.models.query.queryset > 25

28 Porównaj to z wynikiem polecenia type([]) i type(()). Obiekty klasy QuerySet to zapytania. Django pobierze kategorie z bazy danych dopiero kiedy bed a rzeczywiście potrzebne, na przyk lad kiedy zażadasz pojedynczego wpisu (jak wyżej, w poleceniu 4) albo spróbujesz QuerySet wypisać (jak w poleceniu drugim). Pozwala to na budowanie zapytań przez tworzenie kolejnych obiektów QuerySet: 1 In [1]: from django.contrib.auth.models import User 2 3 In [2]: qs1 = User.objects.all() 4 5 In [3]: qs2 = qs1.filter(is_staff=true) 6 7 In [4]: qs3 = qs2.filter(is_superuser=false) Sprawdź, których użytkowników pobiora te trzy zapytania. Co ważne: dopóki nie wyświetlisz zawartości którejś ze zmiennych qs, Django nie wyśle do bazy żadnego zapytania. Wyjaśnienie: qs1 to wynik dzia lania all, wi ec oznacza zapytanie o wszystkich użytkowników qs2 to wszyscy użytkownicy z qs1 majacy pole is_staff ( w zespole ) równe True qs3 to wszyscy użytkownicy z qs2 majacy pole is_superuser ( administrator ) równe False 5.2 Filtrowanie Sprawdź wyniki poleceń: 1 User.objects.filter(username= gosc ) 2 User.objects.filter(username= osc ) 3 User.objects.filter(username contains= osc ) 4 User.objects.filter(username= GOSC ) 5 User.objects.filter(username iexact= GOSC ) 6 User.objects.filter(is_staff=False) 7 8 u = User.objects.get(username= edytor_1 ) 9 Category.objects.filter(owner=u) Podwójne podkreślenie po raz pierwszy Pierwsze zastosowanie podwójnego podkreślenia: pozwala na podanie innych porównań niż zwyk le jest równe. username contains= osc oznacza username zawiera osc username iexact= GOSC oznacza username jest równe GOSC, ale bez zwracania uwagi na wielkość liter Ściaga z Django zawiera obszerniejsza liste rodzajów porównań. 26

29 Sprawdź wyniki poleceń: 1 User.objects.filter(is_staff=True) 2 User.objects.exclude(is_staff=True) 3 User.objects.filter(is_staff=True).filter(username contains= o ) 4 User.objects.filter(is_staff=True).exclude(username contains= o ) filter a exclude exclude dzia la jak filter, ale z odwrotnym warunkiem: w tym przyk ladzie exclude(is_staff=true) oznacza z wyjatkiem tych, którzy maja pole is_staff ustawione na True. Pobierz (sprawdzajac w interfejsie administratorskim, czy wynik jest w laściwy): wszystkich użytkowników majacych status administratora wszystkich użytkowników majacych dostep do panelu administracyjnego, ale bez statusu administratora wszystkich użytkowników majacych dostep do panelu administracyjnego, z wyjatkiem tych z edytor w nazwie wszystkie kategorie, których w laścicielem jest admin 5.3 Filtrowanie na podstawie pól modeli po l aczonych Sprawdź wyniki poleceń: 1 Category.objects.filter(owner username= admin ) 2 Category.objects.filter(owner is_staff=true) 3 Category.objects.filter(owner username= edytor ) 4 Category.objects.filter(owner username contains= edytor ) Podwójne podkreślenie po raz drugi Drugie zastosowanie podwójnego podkreślenia: pozwala na użycie do filtrowania pól z modeli powiazanych z obecnym, na przyk lad -- przy pomocy pola ForeignKey. W tym przyk ladzie: owner username= admin oznacza w laściciel kategorii ma login admin owner is_staff=true oznacza w laściciel kategorii ma status w zespole owner username contains= edytor l aczy oba zastosowania podwójnego podkreślenia i oznacza w laściciel kategorii ma status w zespole Pobierz (sprawdzajac w interfejsie administratorskim, czy wynik jest w laściwy): wszystkie artyku ly, których autorem jest edytor 1 wszystkie artyku ly z kategorii Wydarzenia wszystkie artyku ly ze wszystkich kategorii, których w laściciel ma ustawione pole is_superuser 27

30 5.4 Pobieranie pojedynczych obiektów Sprawdź wyniki poleceń: 1 User.objects.get(id=1) 2 User.objects.get(username= gosc ) 3 User.objects.get(username contains= osc ) 4 User.objects.get(is_staff=True) 5 User.objects.get(username= nieobecny ) Dwa z nich skończa sie b l edem. Dlaczego? Porównanie get i filter Metoda get przyjmuje takie same parametry jak filter, ale: wykonuje zapytanie natychmiast zak lada, że w wyniku zapytania otrzyma dok ladnie jeden obiekt zwraca pobrany z bazy obiekt, a nie nowy QuerySet Pobierz (sprawdzajac w interfejsie administratorskim, czy wynik jest w laściwy): kategori e o nazwie Wydarzenia kategorie o nazwie zawierajacej ech 5.5 Sortowanie wyników Sprawdź wyniki poleceń: 1 User.objects.all() 2 User.objects.order_by( -username ) 3 User.objects.order_by( is_staff ) 4 User.objects.order_by( is_staff, username ) 5 User.objects.order_by( is_staff, -username ) 6 User.objects.order_by(? ) Pobierz (sprawdzajac w interfejsie administratorskim, czy wynik jest w laściwy): pierwsza alfabetycznie kategorie ostatnia alfabetycznie kategorie najnowszy artyku l najnowszy artyku l z kategorii Wydarzenia najstarszy artyku l napisany przez użytkownika edytor 1 jeden losowo wybrany artyku ly z kategorii Technika 28

31 5.6 Uzupe lnij dane w bazie Strona g lówna wymaga odpowiedniej liczby artyku lów. Upewnij si e, że: masz po dwa artyku ly w każdej kategorii oba artyku ly w dziale Wydarzenia sa oznaczone jako Wiadomość dnia (lead_story), a jeden z nich dodatkowo jest wyróżniony featured pozosta le dzia ly zawieraja po jednym artykule wyróżnionym (featured) i jednym zwyk lym (ani lead_story, ani featured) 5.7 Napisz bazowy widok i szablon strony g lównej Dodaj do news/views.py funkcje index, najpierw w wersji przekazujacej do szablonu testowe teksty zamiast rzeczywistych wiadomości: 1 from django.shortcuts import render_to_response 2 from django.template import RequestContext 3 4 def index(request): 5 lead_story = "LEAD STORY" 6 featured_articles = ["FEATURED 1", "FEATURED 2", "FEATURED 3"] 7 normal_articles = ["NORMAL 1", "NORMAL 2", "NORMAL 3"] 8 9 return render_to_response( news/index.html, 10 context_instance = RequestContext(request), 11 dictionary = { 12 lead_story : lead_story, 13 featured_articles : featured_articles, 14 normal_articles : normal_articles, 15 }) Dopisz t e funkcj e do urls.py tak, żeby obs lugiwa la adres strony g lównej: r ^$. Otwórz w przegladarce strone g lówna; pojawi sie informacja o braku szablonu. Utwórz plik news/index.html w taki sposób, żeby wyświetla l wartości zmiennych lead_article, featured_articles i normal_articles Otwórz ponownie strone g lówna, powinny pojawić sie wartości z kodu. Zmień kod funkcji index tak, żeby poprawnie ustawia l wartości zmiennych: lead_article: na najnowszy artyku l z ustawionym lead_story featured_article: na liste trzech najnowszych artyku lów z ustawionym featured, zaczynajac od najnowszego normal_articles: na liste trzech najnowszych artyku lów bez lead_story i featured, zaczynajac od najnowszego Na stronie g lównej w miejscu tekstów tymczasowych powinny sie pojawić rzeczywiste wartości. Porównaj z panelem administracyjnym żeby sprawdzić, czy sa wyświetlane odpowiednie artyku ly. 29

32 5.8 Popraw wyglad strony g lównej Zmień szablon news/index.html tak, żeby pasowa l do oprawy graficznej ca lego serwisu. W katalogu z materia lami jest plik html/index_content.html. Skopiuj jego zawartość do bloku content szablonu news/index.html i zmień tak, żeby wyświetla l rzeczywiste wartości zamiast zaślepek. 5.9 Dodaj do wszystkich stron list e ostatnich wydarzeń Zmień gazetr_context tak, żeby do zmiennej events wstawia l cztery najnowsze artyku ly z dzia lu Wydarzenia. Zmień szablon base.html tak, żeby w dziale Wydarzenia wyświetla l wpisy z events Api bazy danych: zmiany wpisów Funkcje do obs lugi bazy nie kończa sie na pobieraniu danych. Sprawdź efekty poniższych poleceń w panelu administracyjnym. Artyku ly można zmieniać (sprawdź wyniki poleceń): 1 a = Article.objects.order_by( created )[0] 2 a.title = u Nowy tytul 3 a.save() 4 Article.objects.order_by( created )[0] tworzyć: 1 author = User.objects.all()[0] 2 category = Category.objects.get(name=u Wydarzenia ) 3 a = Article.objects.create(title=u Nowy artykul, category=category, author=author) 4 # sprawdz, czy sie udalo 5 Article.objects.filter(title=u Nowy artykul ) i usuwać (ostrożnie): 1 Article.objects.filter(title=u Nowy artykul ) 2 a = Article.objects.get(title=u Nowy artykul ) 3 a.delete() 4 Article.objects.filter(title=u Nowy artykul ) Zwróć uwag e: create zwraca już zapisany obiekt, nie trzeba na nim wywo lywać save. Wi ecej informacji Making queries : QuerySet API reference : Pola ForeignKey tworza po l aczenia miedzy obiektami w obie strony. Przyjrzyj sie atrybutowi article_set kategorii -- to także jest Manager, tylko ograniczony do artyku lów danej kategorii. Opis w Making queries, Following relationships backward. 30

33 6 Komentarze, strony statyczne 6.1 Dodaj aplikacje comments Dodaj do projektu aplikacje django.contrib.comments i utwórz jej tabele w bazie. Dodaj do urls.py linijke: 1 (r ^comments/, include( django.contrib.comments.urls )), Zajrzyj do interfejsu administracyjnego, upewnij si e że można otworzyć list e komentarzy. 6.2 Dodaj formularz komentarza do strony artyku lu Zmień szablon strony pojedynczego artyku lu w taki sposób: 1. na poczatku (ale po linii extends) dodaj {% load comments %} 2. w miejscu, w którym powinien pojawić si e formularz, wpisz {% render_comment_form for article %} Sprawdź jak teraz wyglada strona artyku lu. Dodaj komentarz. Przejdź do panelu administracyjnego, sprawdź czy pojawi l si e na liście. 6.3 Dostosuj strone podgladu komentarza Spróbuj dodać komentarz bez wype lniania żadnego pola. Widok obs lugujacy strone podgladu komentarza dla modelu Article z aplikacji news skorzysta z pierwszego szablonu znalezionego wed lug listy: 1. comments/news_article_preview.html 2. comments/news_preview.html 3. comments/preview.html Ten ostatni jest zdefiniowany w aplikacji comments, w pliku comments/preview.html. Nie trzeba go zmieniać, wystarczy do gazetr/templates dodać któryś z szablonów pasujacych do tej listy. Znajdź w aplikacji django.contrib.comments szablon comments/preview.html i skopiuj go do projektu gazetr jako comments/news_article_preview.html. Zmień comments/news_article_preview.html tak, żeby: dziedziczy l po base.html zamiast comments/base.html zawiera l w widocznym miejscu tekst Dodajesz komentarz do artyku lu: tytu l artyku lu ; komentowany obiekt jest dost epny w tym szablonie jako form.target_object Spróbuj ponownie dodać komentarz bez wpisywania żadnych danych. Powinna pojawić sie znowu strona podgladu, ale już w naszej szacie graficznej. 31

34 6.4 Popraw stron e Dzi ekujemy za komentarz Podobnie jak ze strona comments/preview.html, skopiuj do szablonów projektu strone comments/posted.html. Uwaga: ta strona nie korzysta już z konwencji z wstawianiem nazwy aplikacji i modelu do nazwy szablonu, wi ec nie zmieniaj nazwy. Zmień skopiowany szablon tak, żeby pojawi l sie z oprawa graficzna gazetr. Dodaj odsy lacz wróć z adresem pobranym z comment.content_object.get_absolute_url. Dodaj komentarz, sprawdź że odsy lacz przekierowuje z powrotem do komentowanego artyku lu. 6.5 Dodaj list e komentarzy W pliku news/article_detail.html dodaj linijke pobierajac a liczbe komentarzy dla obiektu article: 1 {% get_comment_count for article as comment_count %} Ten tag niczego nie wstawia do HTML, ale wstawia do zmiennej comment_count liczbe komentarzy wpisanych do obiektu article. Wykorzystaj te zmienna w odpowiednim miejscu news/article_detail.html. Sprawdź, czy po dodaniu komentarza ta liczba si e zmienia. Analogicznie, tag get_comment_list nie generuje żadnego HTML, ale wstawia do wskazanej zmiennej list e komentarzy: 1 {% get_comment_list for article as comment_list %} Dodaj t e lini e do news/article_detail.html i wykorzystaj comment_list do wyświetlenia listy komentarzy w odpowiednim miejscu. Sprawdź pod adresem /admin/doc/, jakie pola sa dostepne w obiektach modelu Comment. 6.6 Dodaj moderacj e Aplikacja comments udostepnia strone /comments/moderate/ z lista komentarzy oczekujacych na zaakceptowanie. Każdy komentarz ma dwa pola istotne dla moderacji: is_public - ustawiony na True oznacza, że komentarz przeszed l przez moderacj e is_removed - ustawiony na True oznacza, że komentarz zosta l odrzucony przez moderatora W kolejce na stronie /comments/moderate/ widać wszystkie komentarze, które maja oba te pola ustawione na False. Sprawdź: otwórz jeden z komentarzy w interfejsie administracyjnym i odznacz w nim oba te pola. Po zapisaniu zmian pojawi si e w kolejce komentarzy do sprawdzenia. Aplikacja comments domyślnie ustawia pole is_public na True, ale można to zmienić. Dodaj na końcu pliku contact/models.py kod: 32

35 1 from django.contrib.comments.signals import comment_will_be_posted 2 3 def moderate_comment(sender, comment, **kwargs): 4 comment.is_public = False 5 6 comment_will_be_posted.connect(moderate_comment) Ostatnia linia oznacza, że Django przed dodaniem komentarza wykona funkcj e moderate_comment. Dodaj teraz komentarz i sprawdź, że: nie pojawi l si e na stronie artyku lu w spisie komentarzy w interfejsie administracyjnym widać, że wartość pola is_public zosta la ustawiona na False pojawi l si e na stronie /comments/moderate/ Możesz go teraz odrzucić lub zaakceptować. 6.7 Rozbuduj funkcje moderujac a Zmień funkcj e moderate_comment tak, żeby: przepuszcza la bez konieczności moderacji komentarze wpisane przez zalogowanych użytkowników dodawa la do kolejki do moderacji komentarze wpisane przez anonimowych użytkowników automatycznie odrzuca la komentarze zawierajace podwójne wykrzykniki w treści Sprawdź, czy funkcja dzia la zgodnie z tymi warunkami. 6.8 Dodaj strony z informacjami o b l edach Spróbuj otworzyć w przegladarce artyku l o identyfikatorze, którego nie ma w bazie danych. Zobaczysz strone z numerem b l edu 404 i opisem No article found matching the query z dopiskiem, że widzisz ten opis tylko dlatego, że zmienna konfiguracyjna settings.debug jest ustawiona na True. Zmień ja na False, uruchom ponownie serwer i spróbuj otworzyć ten artyku l ponownie. Zobaczysz informacje o wyjatku TemplateDoesNotExist: 500.html -- wynika to stad, że mechanizm obs lugi b l edów Django: 1. spróbowa l wczytać i wyświetlić szablon odpowiedzialny za zawartość strony o b l edzie 404: 404.html; brak tego szablonu jest uznawany za b l ad serwisu, i powoduje zmiane statusu z 404 (nie znaleziono obiektu) na 500 (wewnetrzny b l ad serwera) 2. spróbowa l wczytać i wyświetlić szablon informujacy o b l edzie 500: 500.html. Tego również nie znalaz l. W tym samym czasie wys la l też do administratora mail z informacja o tym b l edzie. 3. wypisa l informacj e o b l edzie 500 w najprostszej możliwej postaci 33

Modele. Najcz. Metoda unicode definiuje sposób wyświetlania obiektu w postaci tekstowej. BooleanField - pole logiczne, True/False

Modele. Najcz. Metoda unicode definiuje sposób wyświetlania obiektu w postaci tekstowej. BooleanField - pole logiczne, True/False Ściaga z Django Modele 1 from django.db import models from django.contrib.auth.models import User 4 class Story(models.Model): 5 title = models.charfield(max_length=100, null=false, blank=false) 6 description

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Środowisko Django początki 10 stycznia 2014 Plan wykładu 1 2 Plan wykładu 1 2 Co to jest Django Oparty o Pythona framework do tworzenia aplikacji internetowych. Co to jest Django Oparty o Pythona framework

Bardziej szczegółowo

Laboratorium Kierunki Rozwoju oprogramowania REST, Django

Laboratorium Kierunki Rozwoju oprogramowania REST, Django Laboratorium Kierunki Rozwoju oprogramowania REST, Django 1. Instalacja oprogramowania: sudo apt-add-repository universe && sudo apt-get upgrade sudo apt-get install python-pip -y sudo pip2 install django==1.9.2

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Uwierzytelnianie użytkowników, Obiekt session, Silniki

Bardziej szczegółowo

Dokumentacja serwisu internetowego Zespołu Szkół Technicznych w Radomiu.

Dokumentacja serwisu internetowego Zespołu Szkół Technicznych w Radomiu. Dokumentacja serwisu internetowego Zespołu Szkół Technicznych w Radomiu. Wykonanie: Radom Maj 2008 1 Serwis WWW szkoły w Internecie to obecnie najszybszy i najtańszy sposób dotarcia do największego kręgu

Bardziej szczegółowo

CMS - INFORMACJE. *** Mirosław Kuduk E mail: tel. kom DODATKOWE FUNKCJE - PANEL ADMINISTRATORA

CMS - INFORMACJE. *** Mirosław Kuduk E mail: tel. kom DODATKOWE FUNKCJE - PANEL ADMINISTRATORA CMS - INFORMACJE *** Mirosław Kuduk E mail: mkuduk@interia.pl tel. kom. 663-755-428 DODATKOWE FUNKCJE - PANEL ADMINISTRATORA Panel Dodatkowe funkcje Autoryzacja Publikacje Nowa publikacja, edycja Pokazy

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Środowisko Django początki 5 stycznia 2018 Plan wykładu 1 2 Plan wykładu 1 2 Co to jest Django Oparty o Pythona framework do tworzenia aplikacji internetowych. Co to jest Django Oparty o Pythona framework

Bardziej szczegółowo

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda Logowanie do panelu administracyjnego Aby móc zarządzać stroną, należy zalogować się do panelu administracyjnego.

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

AKTYWNY SAMORZĄD. Instrukcja użytkownika. www.as.tylda.pl

AKTYWNY SAMORZĄD. Instrukcja użytkownika. www.as.tylda.pl AKTYWNY SAMORZĄD Instrukcja użytkownika TYLDA Sp. z o.o. 65-001 Zielona Góra ul. Wazów 6a tel. 68 324-24-72 68 325-75-10 www.tylda.pl tylda@tylda.pl wersja 1.1 2014.12.01 2 Spis treści 1. Konta użytkowników...

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

System Obsługi Zleceń

System Obsługi Zleceń System Obsługi Zleceń Podręcznik Administratora Atinea Sp. z o.o., ul. Chmielna 5/7, 00-021 Warszawa NIP 521-35-01-160, REGON 141568323, KRS 0000315398 Kapitał zakładowy: 51.000,00zł www.atinea.pl wersja

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

CMS Admin instrukcja administratora

CMS Admin instrukcja administratora CMS Admin instrukcja administratora system zarządzania treścią CMS Made Simple http://www.cmsmadesimple.org/ 1 Strona bazowa konferencji: http://bcc.impan.pl/test/ Link do panelu administracyjnego: http://bcc.impan.pl/test/

Bardziej szczegółowo

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0 Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0 UWAGA 1: Przed dokonaniem jakichkolwiek zmian, zalecamy skopiować wcześniej kod html modułu do pliku na lokalnym dysku. W przypadku problemów ułatwi

Bardziej szczegółowo

Pomoc dla systemu WordPress

Pomoc dla systemu WordPress Pomoc dla systemu WordPress Ten plik pomocy przeznaczony jest dla pluginu stat24 w wersji 0.2. W tym pluginie porzucono wsparcie dla starszych wersji WordPress (niższych niż 1.5) oraz zrezygnowano z opcji

Bardziej szczegółowo

VinCent Administrator

VinCent Administrator VinCent Administrator Moduł Zarządzania podatnikami Krótka instrukcja obsługi ver. 1.01 Zielona Góra, grudzień 2005 1. Przeznaczenie programu Program VinCent Administrator przeznaczony jest dla administratorów

Bardziej szczegółowo

Instrukcja Integracja z istore. Wersja z 07/02/2015. Copyright Zakupteraz.pl

Instrukcja Integracja z istore. Wersja z 07/02/2015. Copyright Zakupteraz.pl Instrukcja Integracja z istore Wersja z 07/02/2015 Copyright Zakupteraz.pl 1. SPIS TREŚCI 1. SPIS TREŚCI... 2 2. WSTĘP... 3 3. OPIS PROCEDURY INTEGRACJI... 4 1.1. LOGOWANIE... 4 1.2. PANEL KLIENTA INTEGRACJA

Bardziej szczegółowo

Instrukcja użytkownika

Instrukcja użytkownika Instrukcja użytkownika ul. Zawalna 1/5 51-118 Wrocław e-mail: biuro@innotechtion.pl www.innotechtion.pl Spis treści 1 Instalacja oprogramowania SMS Studio...2 2 Pierwsze uruchomienie... 4 2.1 Rejestracja...

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Laboratorium - Poznawanie FTP

Laboratorium - Poznawanie FTP Cele Część 1: Korzystanie z usługi FTP z wiersza poleceń. Część 2: Pobranie pliku z serwera FTP za pomocą WS_FTP LE Część 3: Korzystanie z usługi FTP w przeglądarce Scenariusz File Transfer Protocol (FTP)

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Dotyczy projektu nr WND-RPPD.04.01.00-20-002/11 pn. Wdrażanie elektronicznych usług dla ludności województwa podlaskiego część II, administracja samorządowa realizowanego w ramach Decyzji nr UDA- RPPD.04.01.00-20-002/11-00

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI BIULETYNU INFORMACJI PUBLICZNEJ

INSTRUKCJA OBSŁUGI BIULETYNU INFORMACJI PUBLICZNEJ INSTRUKCJA OBSŁUGI BIULETYNU INFORMACJI PUBLICZNEJ W celu wprowadzenia, modyfikacji lub usunięcia informacji w Biuletynie Informacji Publicznej należy wpisać w przeglądarce adres strony: http:/bip.moriw.pl/admin.php

Bardziej szczegółowo

Integracja z Facebook. Wersja 7.2.4

Integracja z Facebook. Wersja 7.2.4 Integracja z Facebook Wersja 7.2.4 UWAGA Prawa wynikające z Warunków Gwarancji Użytkownik nabywa po rejestracji programu u Producenta. Dokumentem potwierdzającym rejestrację jest Certyfikat Rejestracji

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

Praca w programie dodawanie pisma.

Praca w programie dodawanie pisma. Praca w programie dodawanie pisma. Wybór zakładki z danymi z Currendy (1) (tylko w przypadku włączenia opcji korzystania z danych Currendy). Wyszukanie i wybranie pisma. Po wybraniu wiersza dane z Currendy

Bardziej szczegółowo

1. Logowanie się do panelu Adminitracyjnego

1. Logowanie się do panelu Adminitracyjnego Spis treści 1. Logowanie się do panelu Adminitracyjnego...1 2. Tworzenie i zarządzenie kategoriami...4 2.1 Nawigowanie po drzewie kategorii...5 2.2 Tworzenie kategorii...6 2.3 Usuwanie kategorii...9 3.

Bardziej szczegółowo

4. Podstawowa konfiguracja

4. Podstawowa konfiguracja 4. Podstawowa konfiguracja Po pierwszym zalogowaniu się do urządzenia należy zweryfikować poprawność licencji. Można to zrobić na jednym z widżetów panelu kontrolnego. Wstępną konfigurację można podzielić

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

SSI Web 8. (badania.kozminski.edu.pl) Instrukcja logowania i uruchamiania ankiety

SSI Web 8. (badania.kozminski.edu.pl) Instrukcja logowania i uruchamiania ankiety SSI Web 8 (badania.kozminski.edu.pl) Instrukcja logowania i uruchamiania ankiety Posiadaczem licencji na oprogramowanie SSI Web w Akademii Leona Koźmińskiego jest Centrum Psychologii Ekonomicznej i Badań

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

Zamawianie Taxi Aktywator Instrukcja użytkownika

Zamawianie Taxi Aktywator Instrukcja użytkownika Zamawianie Taxi Aktywator Instrukcja użytkownika 2009 Jarek Andrzejewski www.ptja.pl wersja 1.0, 13 października 2009 Zmiany w dokumencie: Wersja Data Autor Zmiany 1.0 13.10.2009 Jarek Andrzejewski Pierwsza

Bardziej szczegółowo

Zadanie 5. Automatyzacja tworzenia kont użytkowników

Zadanie 5. Automatyzacja tworzenia kont użytkowników Zadanie 5. Automatyzacja tworzenia kont użytkowników W tym zadaniu utworzymy wiele kont użytkowników przy użyciu zautomatyzowanych metod. Do wykonania ćwiczeń w tym zadaniu potrzebne nam będą następujące

Bardziej szczegółowo

Program Import Kontrahentów XLS dla Subiekta GT.

Program Import Kontrahentów XLS dla Subiekta GT. Program Import Kontrahentów XLS dla Subiekta GT. Do czego służy program? Program umożliwia import kontrahentów z plików.xls (MS Excel, OpenOffice) do Subiekta. Użytkownik tworząc schematy importu ustala,

Bardziej szczegółowo

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

Compas 2026 Vision Instrukcja obsługi do wersji 1.07 Compas 2026 Vision Instrukcja obsługi do wersji 1.07 1 2 Spis treści Integracja...5 1.Compas 2026 Lan...5 Logowanie...7 Użytkownicy...8 Raporty...10 Tworzenie wizualizacji Widoki...12 1.Zarządzanie widokami...12

Bardziej szczegółowo

(wersja robocza) Spis treści:

(wersja robocza) Spis treści: Opis programu Serwis Urządzeń Gazowych. (wersja robocza) Spis treści: 1. Wstęp 2. Szybki Start 2.1. Przyjęcie Zgłoszenia 2.1.1. Uruchomienie Zerowe 2.1.2. Przyjęcie zgłoszenia (naprawy) 2.1.3. Przyjęcie

Bardziej szczegółowo

Quiz Aplikacja internetowa

Quiz Aplikacja internetowa - 1 - Quiz Aplikacja internetowa Opis: Realizacja aplikacji internetowej Quiz w oparciu o Python i framework Flask (wersja 0.10.1). Autorzy: Tomasz Nowacki, Robert Bednarz Czas realizacji: 90 min Poziom

Bardziej szczegółowo

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej adres naszej strony: www.zs3.wroc.pl logo liceum 1. Aby dodać artykuł należy się zalogować: System pokaże nazwę zalogowanego użytkownika

Bardziej szczegółowo

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Systemy operacyjne Laboratorium Zasady lokalne i konfiguracja środowiska Windows 2000 Cel ćwiczenia Celem ćwiczenia jest zapoznanie

Bardziej szczegółowo

Kadry Optivum, Płace Optivum

Kadry Optivum, Płace Optivum Kadry Optivum, Płace Optivum Jak seryjnie przygotować wykazy absencji pracowników? W celu przygotowania pism zawierających wykazy nieobecności pracowników skorzystamy z mechanizmu Nowe wydruki seryjne.

Bardziej szczegółowo

SPIS TREŚCI. Sposób pierwszy... 3 Sposób drugi Ikony banków Ikony dostawców Strona1

SPIS TREŚCI. Sposób pierwszy... 3 Sposób drugi Ikony banków Ikony dostawców Strona1 INSTRUKCJA UŻYTKOWANIA SZABLONU ALLEGRO ZAKUPIONEGO W PAKIECIE STANDARD, MAXI LUB VIP. SPIS TREŚCI 1. OTRZYMANE PLIKI.... 2 2. DODANIE SZABLONU DO SERWISU ALLEGRO ORAZ JEGO UŻYTKOWANIE.... 3 Sposób pierwszy....

Bardziej szczegółowo

Zalogowanie generuje nowe menu: okno do wysyłania plików oraz dodatkowe menu Pomoc

Zalogowanie generuje nowe menu: okno do wysyłania plików oraz dodatkowe menu Pomoc Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej autor poradnika - KS 1. Aby dodać artykuł należy się zalogować: System pokaże nazwę zalogowanego użytkownika (lewy dół strony) Zalogowanie

Bardziej szczegółowo

Instrukcja instalacji wtyczki Przelewy24

Instrukcja instalacji wtyczki Przelewy24 Instrukcja instalacji wtyczki Przelewy24 Wersja 3.2.9. Data: 2015-06-05 Wersja: 3.2.9 Instrukcja instalacji wtyczki Przelewy24 dla Prestashop Moduł przeznaczony jest dla Prestashop w wersji minimum 1.5.

Bardziej szczegółowo

Zastępstwa Optivum. Jak przenieść dane na nowy komputer?

Zastępstwa Optivum. Jak przenieść dane na nowy komputer? Zastępstwa Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Zastępstwa Optivum na innym komputerze, należy na starym komputerze wykonać kopię zapasową bazy danych programu

Bardziej szczegółowo

Wysyłka dokumentacji serwisowej z Sekafi3 SQL do producentów.

Wysyłka dokumentacji serwisowej z Sekafi3 SQL do producentów. Wysyłka dokumentacji serwisowej z Sekafi3 SQL do producentów. Możliwość wysyłki dokumentacji serwisowej do producentów poprzez API możliwa jest od wersji 3.0.48.6 (Aby sprawdzić wersję swojego oprogramowania

Bardziej szczegółowo

Dokumentacja. Realizacja w portalu kalkulatora simple. (dane wprowadzane z klawiatury).

Dokumentacja. Realizacja w portalu kalkulatora simple. (dane wprowadzane z klawiatury). Dokumentacja Realizacja w portalu kalkulatora simple (dane wprowadzane z klawiatury). Krzysztof Opalski Spis treści I Ogólne informacje o kalkulatorze 2 1 Struktura projektu 2 2 Schemat działania kalkulatora

Bardziej szczegółowo

Problemy techniczne SQL Server

Problemy techniczne SQL Server Problemy techniczne SQL Server Jak utworzyć i odtworzyć kopię zapasową bazy danych za pomocą narzędzi serwera SQL? Tworzenie i odtwarzanie kopii zapasowych baz danych programów Kadry Optivum, Płace Optivum,

Bardziej szczegółowo

PWI Instrukcja użytkownika

PWI Instrukcja użytkownika PWI Instrukcja użytkownika Spis treści 1. Wprowadzenie... 1 2. Przebieg przykładowego procesu... 1 3. Obsługa systemu... 5 a. Panel logowania... 5 b. Filtrowanie danych... 5 c. Pola obligatoryjne... 6

Bardziej szczegółowo

Email Marketing Automation:

Email Marketing Automation: Email Marketing Automation: Integracja z Google Analytics 1 Aby zintegrować system FreshMail z Google Analytics będziesz potrzebować: 1. Aktywnego konta we FreshMailu. Jeśli jeszcze nie masz swojego, możesz

Bardziej szczegółowo

Duszpasterstwo Akademickie Petra. Podręcznik administratora newslettera html

Duszpasterstwo Akademickie Petra. Podręcznik administratora newslettera html Duszpasterstwo Akademickie Petra Podręcznik administratora newslettera html 1 Jak zacząć? Wejdź na www.mailchimp.com Załóż nowe konto. Kliknij SIGN UP Podaj email, wybierz nazwę użytkownika (np. Petra-mojemiasto)

Bardziej szczegółowo

WWW.ICOMFORT.PL e-mail: biuro@icomfort.pl tel.061 622 75 50 fax. 061 622 76 50

WWW.ICOMFORT.PL e-mail: biuro@icomfort.pl tel.061 622 75 50 fax. 061 622 76 50 I. WIADOMOŚCI WSTĘPNE... 2 1. Podłączenie czytnika ekey module FS IN... 2 2. Podłączenie czytników i elektrozamka... 2 3. Jak poprawnie korzystać z czytnika... 3 4. Jak nie korzystać z czytnika... 3 II.

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji 2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji 1. Utwórz aplikację ze skoroszytu emp_prac.csv. W tym celu wykonaj poniższe czynności: a. Zaloguj się do systemu APEX jako użytkownik

Bardziej szczegółowo

Instalacja i obsługa generatora świadectw i arkuszy ocen

Instalacja i obsługa generatora świadectw i arkuszy ocen Instalacja i obsługa generatora świadectw i arkuszy ocen 1. Uruchom plik setup.exe 2. Pojawi się okno instalacji programu. Program wybierze miejsce instalacji, np. C:\Users\Ewa\AppData\Roaming\Generator

Bardziej szczegółowo

Przewodnik użytkownika (instrukcja) AutoMagicTest

Przewodnik użytkownika (instrukcja) AutoMagicTest Przewodnik użytkownika (instrukcja) AutoMagicTest 0.1.21.137 1. Wprowadzenie Aplikacja AutoMagicTest to aplikacja wspierająca testerów w testowaniu i kontrolowaniu jakości stron poprzez ich analizę. Aplikacja

Bardziej szczegółowo

Instalacja systemu zarządzania treścią (CMS): Joomla

Instalacja systemu zarządzania treścią (CMS): Joomla Instalacja systemu zarządzania treścią (CMS): Joomla Na stronie http://www.cba.pl/ zarejestruj nowe konto klikając na przycisk:, następnie wybierz nazwę domeny (Rys. 1a) oraz wypełnij obowiązkowe pola

Bardziej szczegółowo

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3 DODAJEMY TREŚĆ DO STRONY 1. Dockbar, CMS + wyszukiwarka aplikacji... 2 2. Dodawanie portletów... 3 Widok zawartości stron... 3 Omówienie zawartości portletu (usunięcie ramki itd.)... 4 3. Ikonki wybierz

Bardziej szczegółowo

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt Zadanie: Utwórz szablon rysunkowy składający się z: - warstw - tabelki rysunkowej w postaci bloku (według wzoru poniżej)

Bardziej szczegółowo

Instrukcja obsługi programu DHL EasySHip v. 5.3.x

Instrukcja obsługi programu DHL EasySHip v. 5.3.x Instrukcja obsługi programu DHL EasySHip v. 5.3.x I n s t r u k c j a E a s y S h i p 5. 3. x Strona 1 Spis treści 1. Konfiguracja aplikacji... 3 2. Przygotowanie listu przewozowego... 4 3. Dodawanie Nadawcy...

Bardziej szczegółowo

Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie

Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie RBT API v2.3 Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie Spis treści I. WPROWADZENIE 2 II. OPIS FUNKCJONALNOŚCI..3 1. LOGOWANIE I ZMIANA HASŁA...3 1.1 LOGOWANIE..3 1.2 WIDOK PO ZALOGOWANIU...4

Bardziej szczegółowo

Podręcznik Integracji

Podręcznik Integracji Podręcznik Integracji Spis treści 1. Integracja oferty... 3 1.1. Samodzielne wprowadzanie oferty sklepu... 3 1.2. Automatyczne wprowadzanie oferty z pliku XML... 3 1.3. Cyklicznie pobieranie oferty ze

Bardziej szczegółowo

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Spis treści: 1 WSTĘP... 3 2 DOSTĘP DO SYSTEMU... 3 3 OPIS OGÓLNY SEKCJI TŁUMACZENIA...

Bardziej szczegółowo

Dokumentacja panelu Klienta

Dokumentacja panelu Klienta Dokumentacja panelu Klienta Wersja 1.1 Strona 1 z 17 Spis treści Historia zmian... 3 Logowanie do Panelu Klienta... 4 Panel... 5 Wysyłki... 6 Przyłączenia... 7 Ustawienia... 8 Zasoby... 8 Integracje...

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

KASK by CTI. Instrukcja

KASK by CTI. Instrukcja KASK by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Pierwsze uruchomienie... 4 3. Okno główne programu... 5 4. Konfiguracja atrybutów... 6 5. Nadawanie wartości atrybutom... 7 6. Wybór firmy z

Bardziej szczegółowo

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2 1. Instalacja serwera WWW Aby zainstalować serwer WWW w systemie Linux, należy wykorzystać menedżer pakietów apt-get. Polecenia które należy wpisać w terminalu użytkownika root 1 : apt-get install build-essential

Bardziej szczegółowo

Problemy techniczne SQL Server

Problemy techniczne SQL Server Problemy techniczne SQL Server Jak utworzyć i odtworzyć kopię zapasową za pomocą narzędzi serwera SQL? Tworzenie i odtwarzanie kopii zapasowych baz danych programów Kadry Optivum, Płace Optivum, MOL Optivum,

Bardziej szczegółowo

Instrukcja obsługi uczelnianego systemu zarządzania stronami internetowymi (CMS)

Instrukcja obsługi uczelnianego systemu zarządzania stronami internetowymi (CMS) Kraków 01.10.2017 r. Instrukcja obsługi uczelnianego systemu zarządzania stronami internetowymi (CMS) 1. Logowanie. 1.1. W celu zalogowanie, należy w adresie przeglądarki wpisać http://urk.edu.pl/admin

Bardziej szczegółowo

Podstawy obsługi modułu administracyjnego

Podstawy obsługi modułu administracyjnego Podstawy obsługi modułu administracyjnego Marcin Roman 2017/03/06 14:17 Table of Contents Opis menu... 3 Wyszukiwanie na liście... 4 Page 2 of 5 - ostatnio modyfikowane przez Marcin Roman w 2017/03/06

Bardziej szczegółowo

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Symfonia Produkcja Instrukcja instalacji. Wersja 2013 Symfonia Produkcja Instrukcja instalacji Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy

Bardziej szczegółowo

Instrukcja importu przesyłek. z Menedżera Sprzedaży do aplikacji Webklient

Instrukcja importu przesyłek. z Menedżera Sprzedaży do aplikacji Webklient Instrukcja importu przesyłek z Menedżera Sprzedaży do aplikacji Webklient Instrukcja importu przesyłek z Menedżera Sprzedaży do aplikacji Webklient Wersja 1.0 Warszawa, Luty 2015 Strona 2 z 7 Instrukcja

Bardziej szczegółowo

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7 DOKUMENTY I GRAFIKI SPIS TREŚCI Zarządzanie zawartością... 2 Tworzenie folderu... 3 Dodawanie dokumentu / grafiki... 4 Wersje plików... 7 Zmiana uprawnień w plikach... 9 Link do dokumentów i dodawanie

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW Historia zmian dokumentu Nr wersji Data wersji Komentarz/Uwagi/Zakres zmian 1.0 2015-11-19 Utworzenie dokumentu 1 Spis treści

Bardziej szczegółowo

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu Spis treści 1. Zgłoszenia serwisowe wstęp... 2 2. Obsługa konta w solidnym serwisie... 2 Rejestracja w serwisie...3 Logowanie się do serwisu...4 Zmiana danych...5 3. Zakładanie i podgląd zgłoszenia...

Bardziej szczegółowo

Aplikacja Dodatkowe zakładki Shoper Appstore REALIZACJA

Aplikacja Dodatkowe zakładki Shoper Appstore REALIZACJA Aplikacja Dodatkowe zakładki Shoper Appstore REALIZACJA Spis treści Instalacja aplikacji...3 Korzystanie z aplikacji...5 Konfiguracja aplikacji...6 Włączanie / wyłączanie aplikacji...6 Standardowe zakładki...6

Bardziej szczegółowo

Paradygmaty programowania. Paradygmaty programowania

Paradygmaty programowania. Paradygmaty programowania Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................

Bardziej szczegółowo

Modele danych walidacja widoki zorientowane na model

Modele danych walidacja widoki zorientowane na model Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych

Bardziej szczegółowo

Jako lokalizację, w której będzie kontynuowana praca w przyszłym roku szkolnym, warto wybrać tę, w której zgromadzonych jest więcej danych.

Jako lokalizację, w której będzie kontynuowana praca w przyszłym roku szkolnym, warto wybrać tę, w której zgromadzonych jest więcej danych. UONET+ Co zrobić, gdy w związku z reformą oświaty witryny UONET+ dwóch jednostek należy zastąpić jedną witryną UONET+? Reforma oświaty zakłada stopniowe wygaszanie gimnazjów. Od decyzji organu prowadzącego

Bardziej szczegółowo

Instalacja platformy Magento CE wersja szybka

Instalacja platformy Magento CE wersja szybka Zastosowania informatyki w e-społeczeństwie i e-gospodarce laboratoria Uwaga! Poniższa procedura opisuje podstawową instalację Magento CE dla celów testowych, developerskich etc. Nie są w tym opisie uwzględnione

Bardziej szczegółowo

Program Import dokumentów XLS dla Subiekta GT.

Program Import dokumentów XLS dla Subiekta GT. Program Import dokumentów XLS dla Subiekta GT. Do czego służy program? Program umożliwia import dokumentów z plików.xls (MS Excel, OpenOffice) do Subiekta. Użytkownik tworząc schematy importu ustala, które

Bardziej szczegółowo

Spis treści. 1. Konfiguracja systemu ewuś...3. 2. Logowanie się do systemu ewuś...6. 3. Korzystanie z systemu ewuś...6. 4. Weryfikacja cykliczna...

Spis treści. 1. Konfiguracja systemu ewuś...3. 2. Logowanie się do systemu ewuś...6. 3. Korzystanie z systemu ewuś...6. 4. Weryfikacja cykliczna... Centralny Ośrodek Informatyki Górnictwa S.A. KSOP Obsługa systemu ewuś Katowice, 2013 Spis treści 1. Konfiguracja systemu ewuś...3 2. Logowanie się do systemu ewuś...6 3. Korzystanie z systemu ewuś...6

Bardziej szczegółowo

Chatter Aplikacja internetowa

Chatter Aplikacja internetowa - 1 - Chatter Aplikacja internetowa Opis: Zastosowanie Pythona i frameworka Django (wersja 1.6.5) do stworzenia aplikacji internetowej Chatter; prostego czata, w którym zarejestrowani użytkownicy będą

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

1.1 Podłączenie... 3 1.2 Montaż... 4 1.2.1 Biurko... 4 1.2.2 Montaż naścienny... 4

1.1 Podłączenie... 3 1.2 Montaż... 4 1.2.1 Biurko... 4 1.2.2 Montaż naścienny... 4 Szybki start telefonu AT810 Wersja: 1.1 PL 2014 1. Podłączenie i instalacja AT810... 3 1.1 Podłączenie... 3 1.2 Montaż... 4 1.2.1 Biurko... 4 1.2.2 Montaż naścienny... 4 2. Konfiguracja przez stronę www...

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI SYSTEM ZARZĄDZANIA TREŚCIĄ

INSTRUKCJA OBSŁUGI SYSTEM ZARZĄDZANIA TREŚCIĄ INSTRUKCJA OBSŁUGI SYSTEM ZARZĄDZANIA TREŚCIĄ Spis treści: 1 Logowanie do panelu administracyjnego 2 Dodawanie obiektów na stronie 2.1 Wybór podstrony 2.2 Wybór obiektu 2.2.1 Dodawanie obiektów tekstowych

Bardziej szczegółowo

I. Program II. Opis głównych funkcji programu... 19

I. Program II. Opis głównych funkcji programu... 19 07-12-18 Spis treści I. Program... 1 1 Panel główny... 1 2 Edycja szablonu filtrów... 3 A) Zakładka Ogólne... 4 B) Zakładka Grupy filtrów... 5 C) Zakładka Kolumny... 17 D) Zakładka Sortowanie... 18 II.

Bardziej szczegółowo

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2 Podręcznik użytkownika Wprowadzający aplikacji Wykaz2 TiMSI Sp z o o ul Czapli 63, 02-781 Warszawa tel : +48 22 644 86 76, fax: +48 22 644 78 52 NIP: 951-19-39-800 Sąd Rejonowy dla mst Warszawy w Warszawie,

Bardziej szczegółowo

Krótka instrukcja instalacji

Krótka instrukcja instalacji Krótka instrukcja instalacji Spis treści Krok 1 Pobieranie plików instalacyjnych Krok 2 Ekran powitalny Krok 3 Umowa licencyjna Krok 4 Wybór miejsca instalacji Krok 5 Informacje rejestracyjne Krok 6 Rozpoczęcie

Bardziej szczegółowo

Instrukcja instalacji wtyczki Przelewy24

Instrukcja instalacji wtyczki Przelewy24 Instrukcja instalacji wtyczki Przelewy24 Wersja 3.3.1i Data: 2016-06-17 Wersja: 3.3.1i Instrukcja instalacji wtyczki Przelewy24 dla Prestashop Moduł przeznaczony jest dla Prestashop w wersji minimum 1.5.

Bardziej szczegółowo

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ ELEKTRONICZNA KSIĄŻKA ZDARZEŃ Instrukcja obsługi 1. WSTĘP... 2 2. LOGOWANIE DO SYSTEMU... 2 3. STRONA GŁÓWNA... 3 4. EWIDENCJA RUCHU... 4 4.1. Dodanie osoby wchodzącej na teren obiektu... 4 4.2. Dodanie

Bardziej szczegółowo

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH SPIS TREŚCI i EKRANÓW WSTĘP Ekran1: Wstęp. Logowanie Ekran2: Strona początkowa UDOSTEPNIONE MATERIAŁY Ekran3: Dostępne materiały Ekran4: Zawartość

Bardziej szczegółowo

Należy zalogować się do starego systemu pocztowego, znajdującego się pod adresem podanym powyżej. Kliknąć 'Options'

Należy zalogować się do starego systemu pocztowego, znajdującego się pod adresem podanym powyżej. Kliknąć 'Options' Synchronizacja i migracja konta studenckiego z systemu SUN Communications Suite do platformy Microsoft Office 365 z wykorzystaniem programu Mozilla Thunderbird Proces migracji ze starego systemu pocztowego

Bardziej szczegółowo

GENERATOR OFERTY PDF DOKUMENTACJA UŻYTKOWA 1/20

GENERATOR OFERTY PDF DOKUMENTACJA UŻYTKOWA 1/20 GENERATOR OFERTY PDF DOKUMENTACJA UŻYTKOWA 1/20 Spis treści 1. Instalacja aplikacji... 3 2. Opis interfejsu... 4 2.1) Dodawanie produktów do oferty...4 2.2) Opis panelu konfiguracji...4 2.2.1) Konfiguracja

Bardziej szczegółowo

Instrukcja laboratoryjna

Instrukcja laboratoryjna Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0 Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z

Bardziej szczegółowo

Instrukcja użytkownika Porównywarki cen Liquid

Instrukcja użytkownika Porównywarki cen Liquid Instrukcja użytkownika Porównywarki cen Liquid Wersja Spis treści 1 Wstęp... 3 2 Opis obszaru... 4 Towary... 5 Relacje... 6 Edytuj... 7 2.3.1 Konfiguracja... 7 2.3.2 Kategorie... 7 2.3.3 Ustawienia...

Bardziej szczegółowo

Instrukcja Integracja z Shoper. Wersja z 18/01/2015. Copyright Zakupteraz.pl

Instrukcja Integracja z Shoper. Wersja z 18/01/2015. Copyright Zakupteraz.pl Instrukcja Integracja z Shoper Wersja z 18/01/2015 Copyright Zakupteraz.pl 1. SPIS TREŚCI 1. SPIS TREŚCI... 2 2. WSTĘP... 3 3. OPIS PROCEDURY INTEGRACJI... 4 1.1. LOGOWANIE... 4 1.2. PANEL KLIENTA INTEGRACJA

Bardziej szczegółowo