Spokojenost: soulad kuřáckosti podniku s výsledky hlasování.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Wed, 12 Jan 2011 16:15:37 +0100
changeset 164e146e2e3b80b
parent 163 5f0d5e1305b3
child 165 cdfc1e9e3a1b
Spokojenost: soulad kuřáckosti podniku s výsledky hlasování.
java/nekurak.net-ejb/src/conf/Kategorie.hbm.xml
java/nekurak.net-ejb/src/conf/Kurackost.hbm.xml
java/nekurak.net-ejb/src/conf/Podnik.hbm.xml
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Kurackost.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Zahlavi.java
java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag
java/nekurak.net-web/web/WEB-INF/tags/nekurak/podnikZahlavi.tag
java/nekurak.net-web/web/styl.css
sql/data.sql
     1.1 --- a/java/nekurak.net-ejb/src/conf/Kategorie.hbm.xml	Tue Jan 11 15:27:51 2011 +0100
     1.2 +++ b/java/nekurak.net-ejb/src/conf/Kategorie.hbm.xml	Wed Jan 12 16:15:37 2011 +0100
     1.3 @@ -3,10 +3,6 @@
     1.4  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     1.5  <hibernate-mapping>
     1.6  	<class name="cz.frantovo.nekurak.dto.Kategorie" table="kategorie">
     1.7 -		<id name="id" column="id" type="integer">
     1.8 -			<generator class="sequence">
     1.9 -				<param name="sequence">kategorie_seq</param>
    1.10 -			</generator>
    1.11 -		</id>
    1.12 +		<id name="id" column="id" type="integer"/>
    1.13  	</class>
    1.14  </hibernate-mapping>
    1.15 \ No newline at end of file
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/java/nekurak.net-ejb/src/conf/Kurackost.hbm.xml	Wed Jan 12 16:15:37 2011 +0100
     2.3 @@ -0,0 +1,8 @@
     2.4 +<?xml version="1.0"?>
     2.5 +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     2.6 +"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     2.7 +<hibernate-mapping>
     2.8 +	<class name="cz.frantovo.nekurak.dto.Kurackost" table="kurackost">
     2.9 +		<id name="id" column="id" type="integer"/>
    2.10 +	</class>
    2.11 +</hibernate-mapping>
    2.12 \ No newline at end of file
     3.1 --- a/java/nekurak.net-ejb/src/conf/Podnik.hbm.xml	Tue Jan 11 15:27:51 2011 +0100
     3.2 +++ b/java/nekurak.net-ejb/src/conf/Podnik.hbm.xml	Wed Jan 12 16:15:37 2011 +0100
     3.3 @@ -31,6 +31,6 @@
     3.4  		</set>
     3.5  		<property name="sirka" column="sirka"/>
     3.6  		<property name="delka" column="delka"/>
     3.7 -
     3.8 +		<many-to-one name="kurackost" column="kurackost" not-null="true"/>
     3.9  	</class>
    3.10  </hibernate-mapping>
    3.11 \ No newline at end of file
     4.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java	Tue Jan 11 15:27:51 2011 +0100
     4.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java	Wed Jan 12 16:15:37 2011 +0100
     4.3 @@ -85,10 +85,10 @@
     4.4  		insert.executeUpdate();
     4.5  	}
     4.6  
     4.7 -	public VysledekHlasovani getVysledekHlasovani(int podnik) {
     4.8 -		VysledekHlasovani vysledek = new VysledekHlasovani();
     4.9 +	public VysledekHlasovani getVysledekHlasovani(Podnik podnik) {
    4.10 +		VysledekHlasovani vysledek = new VysledekHlasovani(podnik);
    4.11  		Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT));
    4.12 -		select.setParameter("podnik", podnik);
    4.13 +		select.setParameter("podnik", podnik.getId());
    4.14  		List<Object[]> vysledekDotazu = select.getResultList();
    4.15  
    4.16  		for (Object[] radek : vysledekDotazu) {
     5.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java	Tue Jan 11 15:27:51 2011 +0100
     5.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java	Wed Jan 12 16:15:37 2011 +0100
     5.3 @@ -76,7 +76,7 @@
     5.4  		podnikDAO.hlasuj(podnik, hlas, ipAdresa);
     5.5  	}
     5.6  
     5.7 -	public VysledekHlasovani getVysledekHlasovani(int podnik) {
     5.8 +	public VysledekHlasovani getVysledekHlasovani(Podnik podnik) {
     5.9  		return podnikDAO.getVysledekHlasovani(podnik);
    5.10  	}
    5.11  
     6.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java	Tue Jan 11 15:27:51 2011 +0100
     6.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java	Wed Jan 12 16:15:37 2011 +0100
     6.3 @@ -48,7 +48,7 @@
     6.4  			}
     6.5  
     6.6  			if (sirka == null || delka == null) {
     6.7 -				log.log(Level.WARNING, "Selhalo zjišťování souřadnic – šířka nebo délka jsou null – pro adresu: " + adresa);
     6.8 +				log.log(Level.WARNING, "Selhalo zjišťování souřadnic – šířka nebo délka jsou null – pro adresu: {0}", adresa);
     6.9  				return null;
    6.10  			} else {
    6.11  				return new Souradnice(Double.parseDouble(sirka), Double.parseDouble(delka));
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Kurackost.java	Wed Jan 12 16:15:37 2011 +0100
     7.3 @@ -0,0 +1,19 @@
     7.4 +package cz.frantovo.nekurak.dto;
     7.5 +
     7.6 +/**
     7.7 + * Kuřáckost podniku – zda se v něm kouří nebo ne.
     7.8 + * Číselník je v databázi, význam ID je v databázi a v lokalizačním souboru.
     7.9 + * @author fiki
    7.10 + */
    7.11 +public class Kurackost {
    7.12 +
    7.13 +	private int id;
    7.14 +
    7.15 +	public int getId() {
    7.16 +		return id;
    7.17 +	}
    7.18 +
    7.19 +	public void setId(int id) {
    7.20 +		this.id = id;
    7.21 +	}
    7.22 +}
     8.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java	Tue Jan 11 15:27:51 2011 +0100
     8.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java	Wed Jan 12 16:15:37 2011 +0100
     8.3 @@ -28,6 +28,7 @@
     8.4  	private Set<Kategorie> kategorie = new HashSet<Kategorie>();
     8.5  	private Double sirka;
     8.6  	private Double delka;
     8.7 +	private Kurackost kurackost;
     8.8  
     8.9  	public Podnik() {
    8.10  	}
    8.11 @@ -171,5 +172,13 @@
    8.12  	public void setKategorie(Set<Kategorie> kategorie) {
    8.13  		this.kategorie = kategorie;
    8.14  	}
    8.15 +
    8.16 +	public Kurackost getKurackost() {
    8.17 +		return kurackost;
    8.18 +	}
    8.19 +
    8.20 +	public void setKurackost(Kurackost kurackost) {
    8.21 +		this.kurackost = kurackost;
    8.22 +	}
    8.23  	/** Půdou a sklepem projedete bez nebezpečí. */
    8.24  }
     9.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java	Tue Jan 11 15:27:51 2011 +0100
     9.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java	Wed Jan 12 16:15:37 2011 +0100
     9.3 @@ -1,5 +1,8 @@
     9.4  package cz.frantovo.nekurak.dto;
     9.5  
     9.6 +import java.util.logging.Level;
     9.7 +import java.util.logging.Logger;
     9.8 +
     9.9  /**
    9.10   * Agregovaný výsledek hlasování o tom,
    9.11   * zda se má v daném (jednom) podniku kouřit nebo ne.
    9.12 @@ -7,8 +10,15 @@
    9.13   */
    9.14  public class VysledekHlasovani {
    9.15  
    9.16 +	private static final Logger log = Logger.getLogger(VysledekHlasovani.class.getSimpleName());
    9.17 +
    9.18  	private int hlasuAno;
    9.19  	private int hlasuNe;
    9.20 +	private Podnik podnik;
    9.21 +
    9.22 +	public VysledekHlasovani(Podnik podnik) {
    9.23 +		this.podnik = podnik;
    9.24 +	}
    9.25  
    9.26  	/**
    9.27  	 * @return počet hlasů pro kuřácký podnik
    9.28 @@ -31,4 +41,26 @@
    9.29  	public void setHlasuNe(int pocet) {
    9.30  		this.hlasuNe = pocet;
    9.31  	}
    9.32 +
    9.33 +	public Boolean getSpokojenost() {
    9.34 +		int k = podnik.getKurackost().getId();
    9.35 +
    9.36 +		if (k == 0) {
    9.37 +			/** neznámý stav → neznámá spokojenost */
    9.38 +			return null;
    9.39 +		} else if (k == 1 || k == 4) {
    9.40 +			/** zakouřený podnik */
    9.41 +			return hlasuAno > hlasuNe;
    9.42 +		} else if (k == 2) {
    9.43 +			/** nekuřácký podnik */
    9.44 +			return hlasuAno < hlasuNe;
    9.45 +		} else if (k == 3) {
    9.46 +			/** důkladně oddělené části → pokud hlasování vyšlo mezi 35% a 65% bude spokojenost */
    9.47 +			int soucet = hlasuAno + hlasuNe;
    9.48 +			return hlasuAno > 0.35 * soucet && hlasuAno < 0.65 * soucet;
    9.49 +		} else {
    9.50 +			log.log(Level.SEVERE, "Neznámá hodnota kuřáckosti: {0} u podniku: {1}", new Integer[] {k, podnik.getId()});
    9.51 +			return null;
    9.52 +		}
    9.53 +	}
    9.54  }
    10.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java	Tue Jan 11 15:27:51 2011 +0100
    10.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java	Wed Jan 12 16:15:37 2011 +0100
    10.3 @@ -34,10 +34,9 @@
    10.4  	public void hlasuj(int podnik, boolean hlas, String ipAdresa);
    10.5  
    10.6  	/**
    10.7 -	 * @param podnik ID podniku
    10.8  	 * @return agregované výsledky hlasování pro daný podnik
    10.9  	 */
   10.10 -	public VysledekHlasovani getVysledekHlasovani(int podnik);
   10.11 +	public VysledekHlasovani getVysledekHlasovani(Podnik podnik);
   10.12  
   10.13  	/**
   10.14  	 * @param k komentář, který se má přidat k podniku
    11.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties	Tue Jan 11 15:27:51 2011 +0100
    11.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties	Wed Jan 12 16:15:37 2011 +0100
    11.3 @@ -56,6 +56,25 @@
    11.4  dto.podnik.cisloPopisne.tip=\u010d\u00edslo popisn\u00e9
    11.5  dto.podnik.mesto=M\u011bsto
    11.6  
    11.7 +# \u010d\u00edslo je ID ku\u0159\u00e1ckosti v datab\u00e1zi
    11.8 +dto.podnik.kurackost.0.nazev=nezn\u00e1m\u00fd stav
    11.9 +dto.podnik.kurackost.0.popis=nev\u00edme, zda se zde kou\u0159\u00ed
   11.10 +dto.podnik.kurackost.1.nazev=zde se kou\u0159\u00ed
   11.11 +dto.podnik.kurackost.1.popis=v cel\u00e9m podniku je mo\u017eno kou\u0159it
   11.12 +dto.podnik.kurackost.2.nazev=zde se nekou\u0159\u00ed
   11.13 +dto.podnik.kurackost.2.popis=cel\u00fd podnik je neku\u0159\u00e1ck\u00fd
   11.14 +dto.podnik.kurackost.3.nazev=odd\u011blen\u00e9 \u010d\u00e1sti
   11.15 +dto.podnik.kurackost.3.popis=ku\u0159\u00e1ck\u00e1 a neku\u0159\u00e1ck\u00e1 \u010d\u00e1st jsou neprody\u0161n\u011b odd\u011blen\u00e9
   11.16 +dto.podnik.kurackost.4.nazev=\u010d\u00e1ste\u010dn\u011b ku\u0159\u00e1ck\u00fd
   11.17 +dto.podnik.kurackost.4.popis=ku\u0159\u00e1ck\u00e1 a neku\u0159\u00e1ck\u00e1 \u010d\u00e1st jsou \u0161patn\u011b odd\u011blen\u00e9 \u2192 pova\u017eujeme za ku\u0159\u00e1ck\u00fd
   11.18 +
   11.19 +dto.podnik.spokojenost..nazev=nezn\u00e1m\u00e1 spokojenost
   11.20 +dto.podnik.spokojenost..popis=nebylo mo\u017en\u00e9 vyhodnotit soulad ku\u0159\u00e1ckosti podniku s p\u0159\u00e1n\u00edm z\u00e1kazn\u00edk\u016f
   11.21 +dto.podnik.spokojenost.true.nazev=spokojenost
   11.22 +dto.podnik.spokojenost.true.popis=ku\u0159\u00e1ckost tohoto podniku je v souladu s p\u0159\u00e1n\u00edm n\u00e1v\u0161t\u011bvn\u00edk\u016f
   11.23 +dto.podnik.spokojenost.false.nazev=nespokojenost
   11.24 +dto.podnik.spokojenost.false.popis=ku\u0159\u00e1ckost tohoto podniku nen\u00ed v souladu s p\u0159\u00e1n\u00edm n\u00e1v\u0161t\u011bvn\u00edk\u016f
   11.25 +
   11.26  # \u010d\u00edslo je ID kategorie v datab\u00e1zi
   11.27  dto.kategorie.1.nazev=hospoda
   11.28  dto.kategorie.1.popis=Maj\u00ed tu pivo a otev\u0159eno i p\u0159es den.
    12.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java	Tue Jan 11 15:27:51 2011 +0100
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,26 +0,0 @@
    12.4 -package cz.frantovo.nekurak.web;
    12.5 -
    12.6 -import cz.frantovo.nekurak.dto.VysledekHlasovani;
    12.7 -
    12.8 -/**
    12.9 - *
   12.10 - * @author fiki
   12.11 - */
   12.12 -public class Hlasovani {
   12.13 -
   12.14 -	private HledacSluzby hledac = new HledacSluzby();
   12.15 -	private int podnik;
   12.16 -	private VysledekHlasovani vysledek;
   12.17 -
   12.18 -	public void setPodnik(int podnik) {
   12.19 -		this.podnik = podnik;
   12.20 -		vysledek = null;
   12.21 -	}
   12.22 -
   12.23 -	public VysledekHlasovani getVysledek() {
   12.24 -		if (vysledek == null) {
   12.25 -			vysledek = hledac.getPodnikEJB().getVysledekHlasovani(podnik);
   12.26 -		}
   12.27 -		return vysledek;
   12.28 -	}
   12.29 -}
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Zahlavi.java	Wed Jan 12 16:15:37 2011 +0100
    13.3 @@ -0,0 +1,27 @@
    13.4 +package cz.frantovo.nekurak.web;
    13.5 +
    13.6 +import cz.frantovo.nekurak.dto.Podnik;
    13.7 +import cz.frantovo.nekurak.dto.VysledekHlasovani;
    13.8 +
    13.9 +/**
   13.10 + * Záhlaví podniku
   13.11 + * @author fiki
   13.12 + */
   13.13 +public class Zahlavi {
   13.14 +
   13.15 +	private HledacSluzby hledac = new HledacSluzby();
   13.16 +	private Podnik podnik;
   13.17 +	private VysledekHlasovani vysledek;
   13.18 +
   13.19 +	public void setPodnik(Podnik podnik) {
   13.20 +		this.podnik = podnik;
   13.21 +		vysledek = null;
   13.22 +	}
   13.23 +
   13.24 +	public VysledekHlasovani getVysledek() {
   13.25 +		if (vysledek == null) {
   13.26 +			vysledek = hledac.getPodnikEJB().getVysledekHlasovani(podnik);
   13.27 +		}
   13.28 +		return vysledek;
   13.29 +	}
   13.30 +}
    14.1 --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag	Tue Jan 11 15:27:51 2011 +0100
    14.2 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag	Wed Jan 12 16:15:37 2011 +0100
    14.3 @@ -6,8 +6,8 @@
    14.4  		  version="2.0">
    14.5  
    14.6  	<jsp:directive.attribute name="podnik" type="java.lang.Integer" required="true" description="ID podniku"/>
    14.7 -	<jsp:directive.attribute name="hlasuAno" type="java.lang.Integer" required="false" description="počet hlasů pro ano – aby se tu kouřilo"/>
    14.8 -	<jsp:directive.attribute name="hlasuNe" type="java.lang.Integer" required="false" description="počet hlasů pro ne – aby se tu nekouřilo"/>
    14.9 +	<jsp:directive.attribute name="hlasuAno" type="java.lang.Integer" required="true" description="počet hlasů pro ano – aby se tu kouřilo"/>
   14.10 +	<jsp:directive.attribute name="hlasuNe" type="java.lang.Integer" required="true" description="počet hlasů pro ne – aby se tu nekouřilo"/>
   14.11  	<jsp:directive.attribute name="svgUvnitrXhtml" type="java.lang.Boolean" required="false" description="true = SVG vložené přímo do XHTML (XML) | false = SVG jako externí obrázek – &lt;img src='…'/&gt;"/>
   14.12  
   14.13  	<!-- výchozí hodnota -->
   14.14 @@ -15,14 +15,6 @@
   14.15  		<c:set var="svgUvnitrXhtml" value="${true}"/>
   14.16  	</c:if>
   14.17  
   14.18 -	<!-- hodnoty nejsou uvedeny → načteme si je -->
   14.19 -	<c:if test="${hlasuAno == null || hlasuNe == null || (hlasuAno == 0 &amp;&amp; hlasuNe == 0)}">
   14.20 -		<jsp:useBean id="hlasovani" class="cz.frantovo.nekurak.web.Hlasovani" scope="request"/>
   14.21 -		<jsp:setProperty name="hlasovani" property="podnik" value="${podnik}"/>
   14.22 -		<c:set var="hlasuAno" value="${hlasovani.vysledek.hlasuAno}"/>
   14.23 -		<c:set var="hlasuNe" value="${hlasovani.vysledek.hlasuNe}"/>
   14.24 -	</c:if>
   14.25 -
   14.26  	<c:choose>
   14.27  		<c:when test="${svgUvnitrXhtml}">
   14.28  			<svg:svg xmlns:svg="http://www.w3.org/2000/svg"
    15.1 --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/podnikZahlavi.tag	Tue Jan 11 15:27:51 2011 +0100
    15.2 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/podnikZahlavi.tag	Wed Jan 12 16:15:37 2011 +0100
    15.3 @@ -10,6 +10,9 @@
    15.4  	<jsp:directive.attribute name="podnik" type="cz.frantovo.nekurak.dto.Podnik" required="true"/>
    15.5  	<jsp:directive.attribute name="detailPodniku" type="Boolean" required="true" description="true = záhlaví podniku na stránce detail | false = výpis jednoho podniku na stránce s přehledem podniků"/>
    15.6  
    15.7 +	<jsp:useBean id="zahlavi" class="cz.frantovo.nekurak.web.Zahlavi" scope="request"/>
    15.8 +	<jsp:setProperty name="zahlavi" property="podnik" value="${podnik}"/>
    15.9 +
   15.10  	<div class="podnik oddelovac">
   15.11  		<!-- Tři bloky vedle sebe -->
   15.12  
   15.13 @@ -20,39 +23,54 @@
   15.14  			</c:if>
   15.15  			<p><c:out value="${podnik.popis}"/></p>
   15.16  			<p>
   15.17 -			<fmt:message key="uvod.adresa"/>:<br/>
   15.18 -			<c:out value="${podnik.ulice}"/>&amp;#160;
   15.19 -			<c:out value="${podnik.cisloPopisne}"/><br/>
   15.20 -			<c:out value="${podnik.mesto}"/>
   15.21 +				<fmt:message key="uvod.adresa"/>:<br/>
   15.22 +				<c:out value="${podnik.ulice}"/>&amp;#160;
   15.23 +				<c:out value="${podnik.cisloPopisne}"/><br/>
   15.24 +				<c:out value="${podnik.mesto}"/>
   15.25  			</p>
   15.26  			<c:set var="domena" value="${podnik.urlDomena}"/>
   15.27  			<c:if test="${domena != null}">
   15.28  				<p>
   15.29 -				<fmt:message key="uvod.www" var="titulekWwwStranka"/>
   15.30 -				<a href="${fn:escapeXml(podnik.url)}" title="${fn:escapeXml(titulekWwwStranka)}">
   15.31 -					<c:out value="${domena}"/>
   15.32 -				</a>
   15.33 +					<fmt:message key="uvod.www" var="titulekWwwStranka"/>
   15.34 +					<a href="${fn:escapeXml(podnik.url)}" title="${fn:escapeXml(titulekWwwStranka)}">
   15.35 +						<c:out value="${domena}"/>
   15.36 +					</a>
   15.37  				</p>
   15.38  			</c:if>
   15.39  
   15.40 -			<!-- Kategorie podniku (hospoda, vinárna atd.) -->
   15.41 -			<c:if test="${!empty podnik.kategorie}">
   15.42 -				<ul class="stitky">
   15.43 -					<c:forEach var="k" items="${podnik.kategorie}">
   15.44 -						<li>
   15.45 -							<fmt:message key="dto.kategorie.${k.id}.popis" var="popisKategorie"/>
   15.46 -							<a href="?akce=kategorie&amp;amp;id=${k.id}" title="${popisKategorie}">
   15.47 -								<fmt:message key="dto.kategorie.${k.id}.nazev"/>
   15.48 -							</a>
   15.49 -						</li>
   15.50 -					</c:forEach>
   15.51 -				</ul>
   15.52 -			</c:if>
   15.53 +			<ul class="stitky">
   15.54 +				<!-- Kategorie podniku (hospoda, vinárna atd.) -->
   15.55 +				<c:forEach var="k" items="${podnik.kategorie}">
   15.56 +					<li>
   15.57 +						<fmt:message key="dto.kategorie.${k.id}.popis" var="popisKategorie"/>
   15.58 +						<a href="?akce=kategorie&amp;amp;id=${k.id}" title="${popisKategorie}">
   15.59 +							<fmt:message key="dto.kategorie.${k.id}.nazev"/>
   15.60 +						</a>
   15.61 +					</li>
   15.62 +				</c:forEach>
   15.63 +
   15.64 +				<!-- Kuřáckost podniku -->
   15.65 +				<li class="kurackost_${podnik.kurackost.id}">
   15.66 +					<fmt:message key="dto.podnik.kurackost.${podnik.kurackost.id}.popis" var="popisKurackosti"/>
   15.67 +					<a href="?akce=kurackost&amp;amp;id=${podnik.kurackost.id}" title="${popisKurackosti}">
   15.68 +						<fmt:message key="dto.podnik.kurackost.${podnik.kurackost.id}.nazev"/>
   15.69 +					</a>
   15.70 +				</li>
   15.71 +
   15.72 +				<!-- Spokojenost-->
   15.73 +				<c:set var="spokojenost" value="${zahlavi.vysledek.spokojenost}"/>
   15.74 +				<li class="spokojenost_${spokojenost}">
   15.75 +					<fmt:message key="dto.podnik.spokojenost.${spokojenost}.popis" var="popisSpokojenosti"/>
   15.76 +					<a href="?akce=spokojenost&amp;amp;id=${spokojenost}" title="${popisSpokojenosti}">
   15.77 +						<fmt:message key="dto.podnik.spokojenost.${spokojenost}.nazev"/>
   15.78 +					</a>
   15.79 +				</li>
   15.80 +			</ul>
   15.81  		</div>
   15.82  
   15.83  		<!-- Hlasování a graf -->
   15.84  		<div class="hlasovani">
   15.85 -			<nk:hlasovani podnik="${podnik.id}"/>
   15.86 +			<nk:hlasovani podnik="${podnik.id}" hlasuAno="${zahlavi.vysledek.hlasuAno}" hlasuNe="${zahlavi.vysledek.hlasuNe}"/>
   15.87  		</div>
   15.88  
   15.89  		<!-- Fotky podniku -->
   15.90 @@ -61,7 +79,7 @@
   15.91  		</div>
   15.92  
   15.93  	</div>
   15.94 -		
   15.95 +
   15.96  	<c:if test="${detailPodniku}">
   15.97  		<!-- konec obtékaných bloků -->
   15.98  		<div class="cistic oddelovac"></div>
    16.1 --- a/java/nekurak.net-web/web/styl.css	Tue Jan 11 15:27:51 2011 +0100
    16.2 +++ b/java/nekurak.net-web/web/styl.css	Wed Jan 12 16:15:37 2011 +0100
    16.3 @@ -286,8 +286,8 @@
    16.4  ul.stitky {
    16.5  	margin: 0;
    16.6  	padding: 0 0 32px 0;
    16.7 -
    16.8  	list-style: none;
    16.9 +	width: 680px;
   16.10  }
   16.11  
   16.12  ul.stitky li, ul.stitky a {
   16.13 @@ -296,6 +296,7 @@
   16.14  	line-height: 20px;
   16.15  	position: relative;
   16.16  	font-size: 11px;
   16.17 +	margin-bottom: 4px;
   16.18  }
   16.19  
   16.20  ul.stitky a {
   16.21 @@ -349,4 +350,22 @@
   16.22  
   16.23  ul.stitky a:hover:before{
   16.24  	border-color:transparent #555 transparent transparent;
   16.25 -}
   16.26 \ No newline at end of file
   16.27 +}
   16.28 +
   16.29 +ul.stitky li.kurackost_0 a { background: #eee; }
   16.30 +ul.stitky li.kurackost_0 a:before { border-color: transparent #eee transparent transparent; }
   16.31 +ul.stitky li.kurackost_1 a { background: #eee; }
   16.32 +ul.stitky li.kurackost_1 a:before { border-color: transparent #eee transparent transparent; }
   16.33 +ul.stitky li.kurackost_2 a { background: #4d4; }
   16.34 +ul.stitky li.kurackost_2 a:before { border-color: transparent #4d4 transparent transparent; }
   16.35 +ul.stitky li.kurackost_3 a { background: #eee; }
   16.36 +ul.stitky li.kurackost_3 a:before { border-color: transparent #eee transparent transparent; }
   16.37 +ul.stitky li.kurackost_4 a { background: #eee; }
   16.38 +ul.stitky li.kurackost_4 a:before { border-color: transparent #eee transparent transparent; }
   16.39 +
   16.40 +ul.stitky li.spokojenost_true a { background: #4d4; }
   16.41 +ul.stitky li.spokojenost_true a:before { border-color: transparent #4d4 transparent transparent; }
   16.42 +ul.stitky li.spokojenost_false a { background: #eee; }
   16.43 +ul.stitky li.spokojenost_false a:before { border-color: transparent #eee transparent transparent; }
   16.44 +ul.stitky li.spokojenost_ a { background: #eee; }
   16.45 +ul.stitky li.spokojenost_ a:before { border-color: transparent #eee transparent transparent; }
    17.1 --- a/sql/data.sql	Tue Jan 11 15:27:51 2011 +0100
    17.2 +++ b/sql/data.sql	Wed Jan 12 16:15:37 2011 +0100
    17.3 @@ -9,3 +9,11 @@
    17.4  INSERT INTO nekurak.kategorie (id, nazev) VALUES (6, 'čajovna');
    17.5  INSERT INTO nekurak.kategorie (id, nazev) VALUES (7, 'klub');
    17.6  INSERT INTO nekurak.kategorie (id, nazev) VALUES (8, 'virtuální');
    17.7 +
    17.8 +-- Kuřáckost podniku:
    17.9 +-- Pozn.: lokalizované stejně jako kategorie.
   17.10 +INSERT INTO nekurak.kurackost (id, popis) VALUES (0, 'neznámý stav');
   17.11 +INSERT INTO nekurak.kurackost (id, popis) VALUES (1, 'kuřácký');
   17.12 +INSERT INTO nekurak.kurackost (id, popis) VALUES (2, 'nekuřácký');
   17.13 +INSERT INTO nekurak.kurackost (id, popis) VALUES (3, 'oddělené části (důkladně)');
   17.14 +INSERT INTO nekurak.kurackost (id, popis) VALUES (4, 'částečně kuřácký (špatně oddělené, považujeme za kuřácký)');