{% extends "base.html" %}
-{% block title %}Katalog kompetencji{% endblock %}
+{% block title %}Katalog kompetencji medialnych i informacyjnych{% endblock %}
{% block body %}
-<h1>Katalog kompetencji</h1>
+<h1>Katalog kompetencji medialnych i informacyjnych</h1>
+<form>
+<h3>Poziom edukacyjny:</h3>
+{% if errors.level %}<p class="error">{{ errors.level }}</p>{% endif %}
+<strong>edukacja formalna:</strong>
+<ul>
+{% for lev in levels %}
+ <li><label><input type="radio" name="level" value="{{ lev.slug }}"
+ {% if lev == level %}checked="checked"{% endif %} />
+ {{ lev }}</label></li>
+{% endfor %}
+</ul>
+<strong>edukacja ustawiczna:</strong>
+
+<h3>Kategorie kompetencji:</h3>
+{% if errors.competences %}<p class="error">{{ errors.competences }}</p>{% endif %}
+<ul>
+{% for section in sections %}
+ <li>
+ <label><input type="checkbox" name="s" value="{{ section.pk }}"
+ {% if section.pk in sect_ids %}checked="checked"{% endif %} /> {{ section }}</label>
+ <span class="curriculum-section-toggler" >(rozwiń)</span>
+ <ul>
+ {% for competence in section.competence_set.all %}
+ <li><label><input type="checkbox" name="c" value="{{ competence.pk }}"
+ {% if competence.pk in comp_ids %}checked="checked"{% endif %} />
+ {{ competence }}</label></li>
+ {% endfor %}
+ </ul>
+ </li>
+{% endfor %}
+</ul>
+<button>Pokaż</button>
+</form>
+
+{% if chosen_competences %}
+
+{% for section, competences in chosen_competences.items %}
+ <h3>{{ section }}</h3>
+ {% for competence in competences %}
+ <h4>{{ competence }}</h4>
+ {{ competence.for_level_.description }}
+ {% endfor %}
+{% endfor %}
+
+{% endif %}
{% endblock %}
\ No newline at end of file
-from .models import Competence, Section, Level
-
-
+from django.db import models
from django.views.generic import DetailView, ListView
+from django.utils.datastructures import SortedDict
+from .models import Competence, Section, Level, CompetenceLevel
+
class CompetenceDetailView(DetailView):
model = Competence
+
class CompetencesView(ListView):
model = Competence
def get_context_data(self, **kwargs):
- print 'kwargs', kwargs
context = super(CompetencesView, self).get_context_data(**kwargs)
+ context['levels'] = Level.objects.all()
+ context['sections'] = Section.objects.all()
+
+ errors = {}
+
+ try:
+ level = Level.objects.get(slug=self.request.GET.get('level'))
+ except Level.DoesNotExist:
+ level = None
+ context['level'] = level
+
+ comp_ids = set()
+ for c in self.request.GET.getlist('c'):
+ try:
+ comp_ids.add(int(c))
+ except ValueError:
+ pass
+ context['comp_ids'] = comp_ids
+ sect_ids = set()
+ for c in self.request.GET.getlist('s'):
+ try:
+ sect_ids.add(int(c))
+ except ValueError:
+ pass
+ context['sect_ids'] = sect_ids
- queryset = self.get_queryset()
+ if not (comp_ids or sect_ids):
+ if level:
+ errors["competences"] = "Please!"
+ elif level is None:
+ errors["level"] = "Please!"
+ else:
+ chosen_competences = SortedDict()
+ for competence in Competence.objects.filter(
+ models.Q(pk__in=comp_ids) | models.Q(section__pk__in=sect_ids)):
+ try:
+ competence.for_level_ = competence.for_level(level)
+ except CompetenceLevel.DoesNotExist:
+ pass
+ chosen_competences.setdefault(competence.section, []).append(competence)
+ context['chosen_competences'] = chosen_competences
+ context["errors"] = errors
return context
-