Pouze CSV export přednášek (smazání ostatních)
This commit is contained in:
		
							parent
							
								
									7a70b9dcff
								
							
						
					
					
						commit
						4d5800f3b8
					
				
					 3 changed files with 5 additions and 73 deletions
				
			
		|  | @ -2,19 +2,19 @@ | ||||||
| 
 | 
 | ||||||
| {% block content %} | {% block content %} | ||||||
|   <h1>{% block nadpis1a %} |   <h1>{% block nadpis1a %} | ||||||
| 	  Hlasování o přednáškách | 	  Výsledky hlasování o přednáškách | ||||||
| 	  {% endblock %}</h1> | 	  {% endblock %}</h1> | ||||||
|   {# Projdi vsechny seznamy #} |   {# Projdi vsechny seznamy #} | ||||||
|   <div class="mam-org-only"> |   <div class="mam-org-only"> | ||||||
|   <ul> |   <ul> | ||||||
|   {% for seznam in object_list %} |   {% for seznam in object_list %} | ||||||
|     <li> |     <li> | ||||||
|     {% if seznam.stav == 1 %} {# STAV_NAHRH = 1 #}  |     {% if seznam.stav == seznam.Stav.NAVRH %} | ||||||
|         <a href="/prednasky/seznam_prednasek/{{seznam.id}}">Návrh přednášek na soustředění {{seznam.soustredeni.misto}} </a> |       Návrh přednášek na soustředění {{seznam.soustredeni.misto}} | ||||||
|     {% else %} |     {% else %} | ||||||
|         <a href="/prednasky/seznam_prednasek/{{seznam.id}}">Seznam přednášek na soustředění {{seznam.soustredeni.misto}} </a> |       Seznam přednášek na soustředění {{seznam.soustredeni.misto}} | ||||||
|     {% endif %} |     {% endif %} | ||||||
|     <a href='{% url "seznam-export-csv" seznam=seznam.id %}'>Export</a> |       <a href='{% url "seznam-export-csv" seznam=seznam.id %}'>(CSV)</a> | ||||||
|     </li> |     </li> | ||||||
|   {% endfor %} |   {% endfor %} | ||||||
|   </ul> |   </ul> | ||||||
|  |  | ||||||
|  | @ -12,19 +12,9 @@ urlpatterns = [ | ||||||
| 		'prednasky/metaseznam_prednasek', | 		'prednasky/metaseznam_prednasek', | ||||||
| 		org_required(views.MetaSeznamListView.as_view()), | 		org_required(views.MetaSeznamListView.as_view()), | ||||||
| 		name='metaseznam-list'), | 		name='metaseznam-list'), | ||||||
| 	# path( |  | ||||||
| 	# 	'prednasky/seznam_prednasek/<int:seznam>/export', |  | ||||||
| 	# 	org_required(views.SeznamExportView), |  | ||||||
| 	# 	name='seznam-export' |  | ||||||
| 	# ), |  | ||||||
| 	path( | 	path( | ||||||
| 		'prednasky/seznam_prednasek/<int:seznam>/hlasovani.csv', | 		'prednasky/seznam_prednasek/<int:seznam>/hlasovani.csv', | ||||||
| 		org_required(views.PrednaskyExportView), | 		org_required(views.PrednaskyExportView), | ||||||
| 		name='seznam-export-csv' | 		name='seznam-export-csv' | ||||||
| 	), | 	), | ||||||
| 	path( |  | ||||||
| 		'prednasky/seznam_prednasek/<int:seznam>/', |  | ||||||
| 		org_required(views.SeznamListView.as_view()), |  | ||||||
| 		name='seznam-list' |  | ||||||
| 	), |  | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | @ -133,64 +133,6 @@ class MetaSeznamListView(generic.ListView): | ||||||
| 	template_name = 'prednasky/metaseznam_prednasek.html' | 	template_name = 'prednasky/metaseznam_prednasek.html' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class SeznamListView(generic.ListView): |  | ||||||
| 	""" |  | ||||||
| 		Náhled na to, kolik má která přednáška v :py:class:`Seznamu <prednasky.models.Seznam>` :py:class:`hlasů <prednasky.models.Hlasovani.Body>`. |  | ||||||
| 		(Je otázka, zda tento View vůbec chceme. Pokud ano, hodilo by se do něj přidat i znalosti.) |  | ||||||
| 	""" |  | ||||||
| 	template_name = 'prednasky/seznam_prednasek.html' |  | ||||||
| 
 |  | ||||||
| 	def get_queryset(self): |  | ||||||
| 		self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"]) |  | ||||||
| 		prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by( |  | ||||||
| 			'org__osoba__user__first_name', 'org__osoba__user__last_name' |  | ||||||
| 		) |  | ||||||
| 		return prednasky |  | ||||||
| 
 |  | ||||||
| 	# FIXME nahradit anotaci s filtrem po prechodu na Django 2.2 |  | ||||||
| 	def get_context_data(self,**kwargs): |  | ||||||
| 		context = super(SeznamListView, self).get_context_data(**kwargs) |  | ||||||
| 
 |  | ||||||
| 		# hlasovani se vztahuje k nejnovejsimu soustredeni |  | ||||||
| 		sous = Soustredeni.objects.first() |  | ||||||
| 		seznam = Seznam.objects.filter(soustredeni = sous, stav=Seznam.Stav.NAVRH).first() |  | ||||||
| 	 |  | ||||||
| 		for obj in self.object_list: |  | ||||||
| 			hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body') |  | ||||||
| 			obj.body = sum(map(lambda x: x.body,hlasovani_set)) |  | ||||||
| 
 |  | ||||||
| 		return context |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # def SeznamExportView(request, seznam): |  | ||||||
| # 	"""Vypíše výsledky hlasování ve formátu pro prologovský optimalizátor""" |  | ||||||
| # 	# TODO zřejmě se nepoužívá, časem vyřadit? nahradit tabulkou vhodnější pro |  | ||||||
| # 	# lidi? |  | ||||||
| # 	hlasovani = Hlasovani.objects.filter(seznam=seznam) |  | ||||||
| # 	prednasky = Prednaska.objects.filter(seznamy=seznam) |  | ||||||
| # 	orgove = set(p.org for p in prednasky) |  | ||||||
| # 	ucastnici = set(h.ucastnik for h in hlasovani) |  | ||||||
| # |  | ||||||
| # 	for p in prednasky: |  | ||||||
| # 		p.body = [] |  | ||||||
| # 		for u in ucastnici: |  | ||||||
| # 			try: |  | ||||||
| # 				p.body.append(hlasovani.get(ucastnik=u, prednaska=p).body) |  | ||||||
| # 			except ObjectDoesNotExist: |  | ||||||
| # 				# účastník nehlasoval |  | ||||||
| # 				p.body.append("?") |  | ||||||
| # |  | ||||||
| # 	for h in hlasovani: |  | ||||||
| # 		h.ucastnik = hash(h.ucastnik) |  | ||||||
| # |  | ||||||
| # 	return render( |  | ||||||
| # 		request, |  | ||||||
| # 		'prednasky/seznam_prednasek_export.txt', |  | ||||||
| # 		{"hlasovani": hlasovani, "prednasky": prednasky, "orgove": orgove}, |  | ||||||
| # 		content_type="text/plain" |  | ||||||
| # 	) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| def PrednaskyExportView(request: HttpRequest, seznam: int, **kwargs) -> HttpResponse: | def PrednaskyExportView(request: HttpRequest, seznam: int, **kwargs) -> HttpResponse: | ||||||
| 	""" | 	""" | ||||||
| 		Vrátí všechna :py:class:`Hlasování <prednasky.models.Hlasovani>` | 		Vrátí všechna :py:class:`Hlasování <prednasky.models.Hlasovani>` | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue