Baza instytucji kultury

Założenia

Moduł stanowi bazę grupująca ośrodki kultury. Zapewnia możliwości prezentacji, zapoznania się z listą oraz wyszukiwania istniejących w Polsce publicznych instytucji i ośrodków kultury finansowanych z środków publicznych, jak również danych adresowych i kontaktowych do ok. 9000 instytucji kultury w Polsce, danych dotyczących finansowania i zatrudnienia pozyskanych w ramach projektu dotąd od kilkuset podmiotów.

Moduł stanowi także źródło danych dla System zapytań do instytucji.

Dostępne są karty edycji dla:

  • organizacji, która określa instytucje kultury, która będzie prezentowana na stronie,
  • metakategorii, która definiuje rodzaj metadanych na temat organizacji,
  • kategorii, która umożliwia ustalenie kategorii, którymi mogą być opisane organizacje.

Należy wyjaśnić, że dla każdej nowej metakategorii dostępne są pola:

  • Nazwa - Określenie nazwy pola z metadanymi
  • Klucz - Określenie unikalnego klucza, który będzie wykorzystywany podczas odwołania do tych metadanch w aplikacji z wykorzystaniem np. {{object.meta.KLUCZ}}
  • Użytkownik - Osoba odpowiedzialna za kryterium

Dla każdej organizacji wymagane są przez aplikacje następujące pola:

  • Nazwa - Określenie nazwy organizacji
  • E-mail - Określenie adresu e-mail instytucji, który będzie wykorzystywany m. in. w System zapytań do instytucji
  • Jednostka podziału terytorialnego - Określenie jednostki podziału terytorialnego wykorzystanej w nawigacji według Podział terytorialny
  • Użytkownik - Osoba odpowiedzialna za organizacje

Każdorazowo i automatycznie jest zapisywana data utworzenia i modyfikacja wpisu.

Dla każdej organizacji możliwe jest ustalenie metadanych. Wymaga to pierw wprowadzenia obiektu typu watchdog_kj_kultura.organizations.models.MetaCategory, a wówczas podczas edycji organizacji pojawi się dodatkowe pole odpowiadające wartości metadanych.

W celu wykorzystania danych zgromadzonych w polu metadanych należy dokonać edcji szablonów w kodzie źródłowym aplikacji poprzez zmiany w pliku /watchdog_kj_kultura/organizations/templates/organizations/organization_detail.html. Podczas edycji odwołać się do metadanej wykorzystaniem np. {{object.meta.KLUCZ}}. Możesz wykorzystać w tym celu język szablonów Django - The Django template language.

Dane testowe

Dla bazy instytucji kultury możliwe jest w środowisku deweloperskim dynamicznie generowanych danych testowych. Wymagane jest wcześniejsze utworzenie użytkowników (zob. Użytkownicy ) i podziału terytorialnego (zob. Dane testowe). Następnie należy wywołać:

$ python manage.py loadtestdata organizations.Category:5 organizations.Organization:100

Należy odnotować, że tak utworzone dane pozbawione są informacji na temat obiektów watchdog_kj_kultura.organizations.models.MetaCategory, a zatem także pola meta w watchdog_kj_kultura.organizations.models.Organization. Organizacje są także prawdopodobnie ukryte.

Akcje w panelu administracyjnym

W panelu administracyjnym bazy instytucji kultury są dostępne pewne szczególne operacje, które warto wyróżnić.

Geokodowanie

W przypadku watchdog_kj_kultura.organizations.models.MetaCategory możliwe jest automatyczne uzupełnienie pola pozycji współrzędnych geograficznych. Operacja ta wykorzystuje zewnętrzne usługi, których konfiguracja została przedstawiona w Ustawienia. Ilość usług zależy od konfiguracji aplikacji. Pomijane są instytucje, które mają wypełnione informacje o pozycji.

Szczegółowo proces automatycznego uzupełniania pola pozycji został przedstawiony w następującym materiale:

Import i eksport

Możliwe jest wyeksportowanie i importowanie m. in. watchdog_kj_kultura.organizations.models.Organization. Stanowi to realizacje wymaganego w dokumentacji modułu importowania danych związanego z bazą ośrodków.

Podczas procesu importu należy ściśle przestrzegać nazw kolumn wskazanych przez aplikacje. Zaleca się w celu przygotowanie importu wykorzystanie dowolnego pliku eksportu jako szablonu do którego zostaną przeniesione dane. Pozwala to także na dokonanie selekcji danych, które mają być zaktualizowane (wypełniona kolumna ID), a które mają być zaktualizowane, aby uniknąć powtórzeń instytucji.

Największą pewność poprawności wczytania danych i kompatybilność zapewnia format CSV.

Ustawienia

Niniejszy moduł wykorzystuje szereg ustawień Django (zob. Designating the settings), które zapewniają klucze API na potrzeby mechanizmu Geokodowanie. Wprowadzenie ich nie jest obowiązkowe. Nie wprowadzenie danego klucza oznacza, że dany usługodawca nie będzie dostępny.

Dostępne ustawienia to:

GEOCODE_BAIDU_API_KEY
Klucz API dla Baidu Maps v2 API. Dokumentacja API jest dostępna na stronie http://developer.baidu.com/map/webservice-geocoding.htm . Klucze API są zarządzane przez konsolę (http://lbsyun.baidu.com/apiconsole/key)
GEOCODE_BING_API_KEY
Klucz API dla Bing Maps Locations API. Dokumentacja API jest dostępna na https://msdn.microsoft.com/en-us/library/ff701715.aspx .
GEOCODE_GOOGLE_API_KEY
Klucz API dla Google Maps v3 API. Dokumentacja API jest dostępna na https://developers.google.com/maps/documentation/geocoding/ . Zarządzanie kluczami odbywa się przez konsolę ( https://code.google.com/apis/console ).
GEOCODE_YANDEX_API_KEY
Klucz API dla Yandex. Dokumentacja API jest dostępna na http://api.yandex.com/maps/doc/geocoder/desc/concepts/input_params.xml . Zarządzanie kluczami odbywa się przez konsolę http://api.yandex.ru/maps/form.xml .

Architektura

Model

class watchdog_kj_kultura.organizations.models.Category(id, created, modified, name, slug)[źródło]
Parametry:
  • id (AutoField) – Id
  • created (AutoCreatedField) – Utworzono
  • modified (AutoLastModifiedField) – Zmodyfikowane
  • name (CharField) – Nazwa
  • slug (AutoSlugField) – Identyfikator redakcyjny
class watchdog_kj_kultura.organizations.models.MetaCategory(id, created, modified, name, key, user)[źródło]
Parametry:
  • id (AutoField) – Id
  • created (AutoCreatedField) – Utworzono
  • modified (AutoLastModifiedField) – Zmodyfikowane
  • name (CharField) – Nazwa
  • key (CharField) – Dopuszczalne są tylko znaki alfabetu łacińskiego i liczby.
  • user_id (ForeignKey to watchdog_kj_kultura.users.models.User) – User
class watchdog_kj_kultura.organizations.models.Organization(id, created, modified, name, slug, email, jst, user, pos, category, visible, meta)[źródło]
Parametry:
  • id (AutoField) – Id
  • created (AutoCreatedField) – Utworzono
  • modified (AutoLastModifiedField) – Zmodyfikowane
  • name (CharField) – Nazwa
  • slug (AutoSlugField) – Identyfikator redakcyjny
  • email (EmailField) – E-mail
  • jst_id (ForeignKey to teryt_tree.models.JednostkaAdministracyjna) – Jednostka podziału terytorialnego
  • user_id (ForeignKey to watchdog_kj_kultura.users.models.User) – User
  • pos (PointField) – Pozycja
  • category_id (ForeignKey to watchdog_kj_kultura.organizations.models.Category) – Kategoria
  • visible (BooleanField) – Zaznacz, aby oznaczyć organizacje jako widoczną publicznie
  • meta (JSONField) – Metadane

Formularze

class watchdog_kj_kultura.organizations.forms.OrganizationAdminForm(data=None, files=None, auto_id=u'id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None)[źródło]

Organization management form for usage in watchdog_kj_kultura.organizations.admin.OrganizationAdmin

class watchdog_kj_kultura.organizations.forms.OrganizationFixForm(*args, **kwargs)[źródło]

Report changes suggestion form for usage with watchdog_kj_kultura.organizations.models.Organization` instances.

Parametry:
  • name – Nazwa
  • email – E-mail
  • jst – Jednostka podziału terytorialnego
  • pos – Pozycja
  • category – Kategoria
  • sources – Źródło informacji
  • worker – Pracuje w tej instytucji
get_recipients()[źródło]

Return emails of recipients of notifications.

Widoki

Panel administracyjny

class watchdog_kj_kultura.organizations.admin.CategoryAdmin(model, admin_site)[źródło]

Admin View for Category

class watchdog_kj_kultura.organizations.admin.GeocoderActionsMixin[źródło]

Mixins with actions to geocode organizations.

get_geocode_actions_list()[źródło]

Returns dict of geocoders to appends

class watchdog_kj_kultura.organizations.admin.MetaCategoryAdmin(model, admin_site)[źródło]

Admin View for MetaCategory

class watchdog_kj_kultura.organizations.admin.OrganizationAdmin(model, admin_site)[źródło]

Admin View for Organization

form

alias klasy OrganizationAdminForm

Akcje panelu administracyjnego

watchdog_kj_kultura.organizations.admin_actions.get_geocoder_for_service(service)[źródło]

For the service provided, try to return a geocoder instance.

Parametry:service (string) – name of service
Zwraca:
instance of geocoder initialized with
appropriate API key
Typ zwracany:geopy.geocoders.geocoders.base.Geocoder