# HG changeset patch # User František Kučera # Date 1294845337 -3600 # Node ID e146e2e3b80baeea9646e19a71a12e926169708b # Parent 5f0d5e1305b358d5105fcd100849b81c9ff4cae7 Spokojenost: soulad kuřáckosti podniku s výsledky hlasování. diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-ejb/src/conf/Kategorie.hbm.xml --- a/java/nekurak.net-ejb/src/conf/Kategorie.hbm.xml Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-ejb/src/conf/Kategorie.hbm.xml Wed Jan 12 16:15:37 2011 +0100 @@ -3,10 +3,6 @@ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> - - - kategorie_seq - - + \ No newline at end of file diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-ejb/src/conf/Kurackost.hbm.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-ejb/src/conf/Kurackost.hbm.xml Wed Jan 12 16:15:37 2011 +0100 @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-ejb/src/conf/Podnik.hbm.xml --- a/java/nekurak.net-ejb/src/conf/Podnik.hbm.xml Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-ejb/src/conf/Podnik.hbm.xml Wed Jan 12 16:15:37 2011 +0100 @@ -31,6 +31,6 @@ - + \ No newline at end of file diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java Wed Jan 12 16:15:37 2011 +0100 @@ -85,10 +85,10 @@ insert.executeUpdate(); } - public VysledekHlasovani getVysledekHlasovani(int podnik) { - VysledekHlasovani vysledek = new VysledekHlasovani(); + public VysledekHlasovani getVysledekHlasovani(Podnik podnik) { + VysledekHlasovani vysledek = new VysledekHlasovani(podnik); Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT)); - select.setParameter("podnik", podnik); + select.setParameter("podnik", podnik.getId()); List vysledekDotazu = select.getResultList(); for (Object[] radek : vysledekDotazu) { diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Wed Jan 12 16:15:37 2011 +0100 @@ -76,7 +76,7 @@ podnikDAO.hlasuj(podnik, hlas, ipAdresa); } - public VysledekHlasovani getVysledekHlasovani(int podnik) { + public VysledekHlasovani getVysledekHlasovani(Podnik podnik) { return podnikDAO.getVysledekHlasovani(podnik); } diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java Wed Jan 12 16:15:37 2011 +0100 @@ -48,7 +48,7 @@ } if (sirka == null || delka == null) { - log.log(Level.WARNING, "Selhalo zjišťování souřadnic – šířka nebo délka jsou null – pro adresu: " + adresa); + log.log(Level.WARNING, "Selhalo zjišťování souřadnic – šířka nebo délka jsou null – pro adresu: {0}", adresa); return null; } else { return new Souradnice(Double.parseDouble(sirka), Double.parseDouble(delka)); diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Kurackost.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Kurackost.java Wed Jan 12 16:15:37 2011 +0100 @@ -0,0 +1,19 @@ +package cz.frantovo.nekurak.dto; + +/** + * Kuřáckost podniku – zda se v něm kouří nebo ne. + * Číselník je v databázi, význam ID je v databázi a v lokalizačním souboru. + * @author fiki + */ +public class Kurackost { + + private int id; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } +} diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java Wed Jan 12 16:15:37 2011 +0100 @@ -28,6 +28,7 @@ private Set kategorie = new HashSet(); private Double sirka; private Double delka; + private Kurackost kurackost; public Podnik() { } @@ -171,5 +172,13 @@ public void setKategorie(Set kategorie) { this.kategorie = kategorie; } + + public Kurackost getKurackost() { + return kurackost; + } + + public void setKurackost(Kurackost kurackost) { + this.kurackost = kurackost; + } /** Půdou a sklepem projedete bez nebezpečí. */ } diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java Wed Jan 12 16:15:37 2011 +0100 @@ -1,5 +1,8 @@ package cz.frantovo.nekurak.dto; +import java.util.logging.Level; +import java.util.logging.Logger; + /** * Agregovaný výsledek hlasování o tom, * zda se má v daném (jednom) podniku kouřit nebo ne. @@ -7,8 +10,15 @@ */ public class VysledekHlasovani { + private static final Logger log = Logger.getLogger(VysledekHlasovani.class.getSimpleName()); + private int hlasuAno; private int hlasuNe; + private Podnik podnik; + + public VysledekHlasovani(Podnik podnik) { + this.podnik = podnik; + } /** * @return počet hlasů pro kuřácký podnik @@ -31,4 +41,26 @@ public void setHlasuNe(int pocet) { this.hlasuNe = pocet; } + + public Boolean getSpokojenost() { + int k = podnik.getKurackost().getId(); + + if (k == 0) { + /** neznámý stav → neznámá spokojenost */ + return null; + } else if (k == 1 || k == 4) { + /** zakouřený podnik */ + return hlasuAno > hlasuNe; + } else if (k == 2) { + /** nekuřácký podnik */ + return hlasuAno < hlasuNe; + } else if (k == 3) { + /** důkladně oddělené části → pokud hlasování vyšlo mezi 35% a 65% bude spokojenost */ + int soucet = hlasuAno + hlasuNe; + return hlasuAno > 0.35 * soucet && hlasuAno < 0.65 * soucet; + } else { + log.log(Level.SEVERE, "Neznámá hodnota kuřáckosti: {0} u podniku: {1}", new Integer[] {k, podnik.getId()}); + return null; + } + } } diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java Wed Jan 12 16:15:37 2011 +0100 @@ -34,10 +34,9 @@ public void hlasuj(int podnik, boolean hlas, String ipAdresa); /** - * @param podnik ID podniku * @return agregované výsledky hlasování pro daný podnik */ - public VysledekHlasovani getVysledekHlasovani(int podnik); + public VysledekHlasovani getVysledekHlasovani(Podnik podnik); /** * @param k komentář, který se má přidat k podniku diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties Wed Jan 12 16:15:37 2011 +0100 @@ -56,6 +56,25 @@ dto.podnik.cisloPopisne.tip=\u010d\u00edslo popisn\u00e9 dto.podnik.mesto=M\u011bsto +# \u010d\u00edslo je ID ku\u0159\u00e1ckosti v datab\u00e1zi +dto.podnik.kurackost.0.nazev=nezn\u00e1m\u00fd stav +dto.podnik.kurackost.0.popis=nev\u00edme, zda se zde kou\u0159\u00ed +dto.podnik.kurackost.1.nazev=zde se kou\u0159\u00ed +dto.podnik.kurackost.1.popis=v cel\u00e9m podniku je mo\u017eno kou\u0159it +dto.podnik.kurackost.2.nazev=zde se nekou\u0159\u00ed +dto.podnik.kurackost.2.popis=cel\u00fd podnik je neku\u0159\u00e1ck\u00fd +dto.podnik.kurackost.3.nazev=odd\u011blen\u00e9 \u010d\u00e1sti +dto.podnik.kurackost.3.popis=ku\u0159\u00e1ck\u00e1 a neku\u0159\u00e1ck\u00e1 \u010d\u00e1st jsou neprody\u0161n\u011b odd\u011blen\u00e9 +dto.podnik.kurackost.4.nazev=\u010d\u00e1ste\u010dn\u011b ku\u0159\u00e1ck\u00fd +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 + +dto.podnik.spokojenost..nazev=nezn\u00e1m\u00e1 spokojenost +dto.podnik.spokojenost..popis=nebylo mo\u017en\u00e9 vyhodnotit soulad ku\u0159\u00e1ckosti podniku s p\u0159\u00e1n\u00edm z\u00e1kazn\u00edk\u016f +dto.podnik.spokojenost.true.nazev=spokojenost +dto.podnik.spokojenost.true.popis=ku\u0159\u00e1ckost tohoto podniku je v souladu s p\u0159\u00e1n\u00edm n\u00e1v\u0161t\u011bvn\u00edk\u016f +dto.podnik.spokojenost.false.nazev=nespokojenost +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 + # \u010d\u00edslo je ID kategorie v datab\u00e1zi dto.kategorie.1.nazev=hospoda dto.kategorie.1.popis=Maj\u00ed tu pivo a otev\u0159eno i p\u0159es den. diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java Tue Jan 11 15:27:51 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -package cz.frantovo.nekurak.web; - -import cz.frantovo.nekurak.dto.VysledekHlasovani; - -/** - * - * @author fiki - */ -public class Hlasovani { - - private HledacSluzby hledac = new HledacSluzby(); - private int podnik; - private VysledekHlasovani vysledek; - - public void setPodnik(int podnik) { - this.podnik = podnik; - vysledek = null; - } - - public VysledekHlasovani getVysledek() { - if (vysledek == null) { - vysledek = hledac.getPodnikEJB().getVysledekHlasovani(podnik); - } - return vysledek; - } -} diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Zahlavi.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Zahlavi.java Wed Jan 12 16:15:37 2011 +0100 @@ -0,0 +1,27 @@ +package cz.frantovo.nekurak.web; + +import cz.frantovo.nekurak.dto.Podnik; +import cz.frantovo.nekurak.dto.VysledekHlasovani; + +/** + * Záhlaví podniku + * @author fiki + */ +public class Zahlavi { + + private HledacSluzby hledac = new HledacSluzby(); + private Podnik podnik; + private VysledekHlasovani vysledek; + + public void setPodnik(Podnik podnik) { + this.podnik = podnik; + vysledek = null; + } + + public VysledekHlasovani getVysledek() { + if (vysledek == null) { + vysledek = hledac.getPodnikEJB().getVysledekHlasovani(podnik); + } + return vysledek; + } +} diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag Wed Jan 12 16:15:37 2011 +0100 @@ -6,8 +6,8 @@ version="2.0"> - - + + @@ -15,14 +15,6 @@ - - - - - - - - + + +
@@ -20,39 +23,54 @@

- :
- &#160; -
- + :
+ &#160; +
+

- - - - + + + +

- - - - +
- +
@@ -61,7 +79,7 @@ - +
diff -r 5f0d5e1305b3 -r e146e2e3b80b java/nekurak.net-web/web/styl.css --- a/java/nekurak.net-web/web/styl.css Tue Jan 11 15:27:51 2011 +0100 +++ b/java/nekurak.net-web/web/styl.css Wed Jan 12 16:15:37 2011 +0100 @@ -286,8 +286,8 @@ ul.stitky { margin: 0; padding: 0 0 32px 0; - list-style: none; + width: 680px; } ul.stitky li, ul.stitky a { @@ -296,6 +296,7 @@ line-height: 20px; position: relative; font-size: 11px; + margin-bottom: 4px; } ul.stitky a { @@ -349,4 +350,22 @@ ul.stitky a:hover:before{ border-color:transparent #555 transparent transparent; -} \ No newline at end of file +} + +ul.stitky li.kurackost_0 a { background: #eee; } +ul.stitky li.kurackost_0 a:before { border-color: transparent #eee transparent transparent; } +ul.stitky li.kurackost_1 a { background: #eee; } +ul.stitky li.kurackost_1 a:before { border-color: transparent #eee transparent transparent; } +ul.stitky li.kurackost_2 a { background: #4d4; } +ul.stitky li.kurackost_2 a:before { border-color: transparent #4d4 transparent transparent; } +ul.stitky li.kurackost_3 a { background: #eee; } +ul.stitky li.kurackost_3 a:before { border-color: transparent #eee transparent transparent; } +ul.stitky li.kurackost_4 a { background: #eee; } +ul.stitky li.kurackost_4 a:before { border-color: transparent #eee transparent transparent; } + +ul.stitky li.spokojenost_true a { background: #4d4; } +ul.stitky li.spokojenost_true a:before { border-color: transparent #4d4 transparent transparent; } +ul.stitky li.spokojenost_false a { background: #eee; } +ul.stitky li.spokojenost_false a:before { border-color: transparent #eee transparent transparent; } +ul.stitky li.spokojenost_ a { background: #eee; } +ul.stitky li.spokojenost_ a:before { border-color: transparent #eee transparent transparent; } diff -r 5f0d5e1305b3 -r e146e2e3b80b sql/data.sql --- a/sql/data.sql Tue Jan 11 15:27:51 2011 +0100 +++ b/sql/data.sql Wed Jan 12 16:15:37 2011 +0100 @@ -9,3 +9,11 @@ INSERT INTO nekurak.kategorie (id, nazev) VALUES (6, 'čajovna'); INSERT INTO nekurak.kategorie (id, nazev) VALUES (7, 'klub'); INSERT INTO nekurak.kategorie (id, nazev) VALUES (8, 'virtuální'); + +-- Kuřáckost podniku: +-- Pozn.: lokalizované stejně jako kategorie. +INSERT INTO nekurak.kurackost (id, popis) VALUES (0, 'neznámý stav'); +INSERT INTO nekurak.kurackost (id, popis) VALUES (1, 'kuřácký'); +INSERT INTO nekurak.kurackost (id, popis) VALUES (2, 'nekuřácký'); +INSERT INTO nekurak.kurackost (id, popis) VALUES (3, 'oddělené části (důkladně)'); +INSERT INTO nekurak.kurackost (id, popis) VALUES (4, 'částečně kuřácký (špatně oddělené, považujeme za kuřácký)');