Redmine: Úkolyhttps://dev.freenetis.org/https://dev.freenetis.org/favicon.ico?16557888462023-04-27T10:59:12ZRedmine
Redmine FreenetIS - Chyba #1195 (Nový): Nefunkční sestavení docker obrazuhttps://dev.freenetis.org/issues/11952023-04-27T10:59:12ZMichal Klimentkliment@freenetis.org
<p>Nelze sestavit docker obraz - původní obraz PHP 5.6 výchozí z Debian Stretch a tomu skončila podpora. Než se vyřeší plná podpora PHP7 a výše, je nutné upravit Dockerfile, aby APT používal Debian archiv.</p> FreenetIS - Požadavek #1150 (Nový): Vyčíslení DPH u příspěvkůhttps://dev.freenetis.org/issues/11502020-04-08T06:09:06ZKocourek Pavelcatman@catman.info
<p>Jsme povinně plátci DPH, u oznámení o přijaté platbě = odesílaná zpráva je povinno být vyčíslení DPH 21%</p>
<p>V editaci zprávy by byly vhodné další speciální tagy
{základ} + {DPH} = {celkem} kde hodnota {celkem} je výše platby, kterou na účet poslal člen (hotové platby nebereme)</p>
<p>Další hodnoty vypočítat
{DPH} = {celkem} * 0,21 a
{základ} = {celkem} * 0,79</p>
<p>{datum} ...tj. datum zaúčtování
{pořčíslo} ...pořadové číslo dokladu - to by asi mohlo být ID z Účetního deníku...je to ucelená vzestupná řada</p>
<p>V editoru pak lze sestavit doklad o přijaté platbě se všemi náležitostmi</p> FreenetIS - Požadavek #1078 (Nový): Geografická mapa zařízeníhttps://dev.freenetis.org/issues/10782017-10-24T21:21:07ZOndřej Fibichfibich@freenetis.org
<p>Jedná se o doplňkový mapový výstup systému FreenetIS, který poskytuje přehledovou mapu zařízení evidovaných v systému. Mapový výstup je samostatná část systému, která je dostupná z jiných částí systému.</p>
<a name="Specifikace"></a>
<h2 >Specifikace<a href="#Specifikace" class="wiki-anchor">¶</a></h2>
<p>U každého zařízení/člena je zobrazena malá mapa (miniatura) s jeho vlastní polohou (stávající stav).</p>
<p>Po kliknutí na miniaturu se zobrazí velká mapa vycentrovaná na zvolený bod, která bude obsahovat i ostatní body pro všechny členy/zařízení v systému, u kterých je známá jejich GPS poloha.</p>
Po kliknutí na libovolný bod na mapě se zobrazí základní informace o bodu:
<ul>
<li>poštovní adresa + GPS,</li>
<li>zařízení obsažená na tomto bodě,</li>
<li>informace o členech, kteří mají poštovní adresu na tomto bodě,</li>
<li>zpětné odkazy na detailní informace pro jednotlivé položky zpět do systému.</li>
</ul>
<a name="Doplňkové-nepovinné-funkce"></a>
<h3 >Doplňkové (nepovinné) funkce<a href="#Doplňkové-nepovinné-funkce" class="wiki-anchor">¶</a></h3>
<ul>
<li>D.1 Odlišné barvy bodů dle dominantního typu zařízení v daném bodě (např. jiná barva/symbol pro AP a klientský přijímač).</li>
<li>D.2 Základní linie spojů – vzdušné čáry mezi bezdrátovými zařízeními typu AP a klient.</li>
<li>D.3 Mapová vrstva s českými a slovenskými katastrálními mapami.</li>
<li>D.4 Fullsearch vyhledávání v mapě pro rychlí zoom na bod.</li>
</ul>
<a name="Návrh"></a>
<h2 >Návrh<a href="#Návrh" class="wiki-anchor">¶</a></h2>
<p><em>TODO</em></p> FreenetIS - Požadavek #1077 (Nový): Navigace mezi detaily prvků dle filtrůhttps://dev.freenetis.org/issues/10772017-10-04T17:16:30ZOndřej Fibichfibich@freenetis.org
<p>Umožnit postupně procházet detaily (např. profil člena, detail zařízení atp.) pomocí tlačítek Zpět a Vpřed v pořadí, ve kterém byly prvky vyfiltrovány ve zdrojové tabulce.</p>
<p>Příklad: Uživatel si vyfiltruje 10 členů a u prvního z nich si zobrazí jeho profil. V profilu provede operaci, např. editaci. Následně chce přejít na dalšího člena v pořadí a opět provést nějakou operaci. Díky tlačítku Vpřed nemusí přecházet zpět na vyfiltrovanou tabulku, ale může okamžitě zobrazit dalšího nebo předchozího člena v pořadí.</p>
<a name="Návrh-realizace"></a>
<h2 >Návrh realizace<a href="#Návrh-realizace" class="wiki-anchor">¶</a></h2>
<ul>
<li>Po aplikaci filtru na tabulku s podporou navigace mezi detaily, se uloží seznam ID prvků zobrazených v tabulce.
<ul>
<li>Uložení proběhne pouze pro prvky z aktuální strany tabulky. Přechod mezi detaily na různých stranách tabulky tedy není možný (<em>protože je obtížné jej implementovat, může způsobit velké zatížení systému v případě vyfiltrování velkého počtu položek</em>).</li>
<li>Uložení probíhá lokálně pro aktuální tab webového prohlížeče a nepřenáší se do nových oken. Díky tomu je možné procházet různě vyfiltrované detaily v různých oknech.</li>
</ul>
</li>
<li>Zobrazený detail detekuje uložený seznam ID prvků. Pokud v seznamu nachází své ID, pak zobrazí v levém a pravém rohu obsahu stránky tlačítka Vpřed a Zpět.
<ul>
<li>Pokud je zobrazený detail první nebo poslední v pořadí, je příslušné tlačítko s neplatnou operací "zašedlé".</li>
</ul>
</li>
<li>V první fázi bude implementováno u:</li>
<ol>
<li>Profil člena,</li>
<li>Detail zařízení.</li>
</ol></li>
</ul>
<a name="Poznámky-k-implementaci"></a>
<h2 >Poznámky k implementaci<a href="#Poznámky-k-implementaci" class="wiki-anchor">¶</a></h2>
<ul>
<li>Uložení bude probíhat v rámci HTML5 localStorage.
<ul>
<li>Starší prohlížeče (<a href="https://www.w3schools.com/html/html5_webstorage.asp" class="external">IE 7 <=</a>) nebudou podporovány.</li>
<li>Musí být řešeno omezení velikosti úložiště mazáním starších záznamů. Lze realizovat <a href="http://chrisberkhout.com/blog/localstorage-errors" class="external">odchytávání výjimky</a>.</li>
</ul>
</li>
<li>JavaScriptová funkcionalita pro uložení by měla být součástí implementace gridu a aktivována jednoduchou volbou při jeho tvorbě v controlleru. Aktivace funkcionality v detailu musí probíhat jednoduše, aby bylo možné snadno rozšířit o další detaily.</li>
</ul> FreenetIS - Požadavek #1045 (Nový): Podpora pro novou hierarchii DEB balíků PHPhttps://dev.freenetis.org/issues/10452016-04-28T21:50:14ZOndřej Fibichfibich@freenetis.org
<p>PHP 7.0 minimálně na Ubuntu 16.04 má novou strukturu modulů a DEB závislostí. Je nutné upravit závislosti a instalační skripty.</p> FreenetIS - Požadavek #954 (Nový): Tarify do nekonečnahttps://dev.freenetis.org/issues/9542015-02-03T18:47:09ZOndřej Fibichfibich@freenetis.org
<p>UI formulářů pro přidání/editaci tarifu by mělo umožňovat jednoduché vyplnění platnosti do na "nekonečno". Lze vyřešit checkboxem.</p> FreenetIS - Požadavek #951 (Odeslaný): Servisní vrstvahttps://dev.freenetis.org/issues/9512014-12-02T21:23:20ZOndřej Fibichfibich@freenetis.org
<a name="Analýza-a-současný-stav"></a>
<h2 >Analýza a současný stav<a href="#Analýza-a-současný-stav" class="wiki-anchor">¶</a></h2>
<p>Servisní vrstva bude obsahovat business funkcionalitu FreenetISu jejíž složitost znemožňuje, aby byla implementována v rámci doménového objektu (modelu s návrhovým vzorem <a href="http://en.wikipedia.org/wiki/Active_record_pattern" class="external">active record</a>) nebo se dotýká více doménových objektů a ze své podstaty není vhodné ji zahrnovat v řadiči (controlleru), jelikož ten by měl pouze v interagovat s uživatelem.</p>
<p>Typicky se jedná např. o funkcionalitu stržení čl. příspěvků, která je implementována jako statická metoda řadiče a tím pádem zamíchána kódu s UI. Navíc statické volání této metody z jiného řadiče je architektonická prasárna. Pokud se to takto používá je nutné načítat mnohdy ne zrovna malou třídu řadiče kvůli jedné funkci (při jednom požadavku na aplikaci by se měl vždy použít pouze jeden řadič což v současném stavu není mnohdy pravda).</p>
<a name="Návrh"></a>
<h2 >Návrh<a href="#Návrh" class="wiki-anchor">¶</a></h2>
<p>Vznikne nová složka <code>/application/services</code>, která bude obsahovat třídy reprezentují jednotlivé services. Vnitřní hierarchie adresářů bude odpovídat použítým PHP namespace. Každá service třída sdružuje funkcionalitu z jedné oblasti a měla by být bezstavová (mezi voláními svých metod neuchovává žádný stav). Výjimkou bezstavovosti je kešování, které tato vrstva může efektivně spravovat.</p>
<p>Service třída musí implementovat rozhraní <code>IService</code>, které definuje přístup k továrně pro získání závislých services.</p>
<p>Jednotlivé services nepůjde získat jinak než pomocí třídy <code>ServiceFactory</code>, která bude dostupná z skrze proměnnou každého řadiče <code>services</code>.<br />Třída <code>ServiceFactory</code> bude metody pro vytvoření všech dostupných service (nepoužije se něco jako <code>ORM#factory</code>, protože pak by nešlo používat našeptávání v IDE). Metody budou pojmenovány následovně: <code>inject<JmenoService></code><br />Vnitřní implementace service továrny bude vytvářet singleton instance jednotlivých service tříd (toto chování půjde v budoucnu snadno upravit).<br />Továrna je nutná kvůli prozatimnímu přemostění, nekompatibility Kohany s PHP namespaces a zároveň umožňuje optimalizovat tvorbu a přidělování service instancí.</p>
<p>Závislosti mezi řadiči, modely, helpery a services bude následující:</p>
<pre>
[Controller A] --> [Service X] --> [Model H]
--> [Model F]
--> [Helper J]
--> [Service F]
--> [Service Y]
--> [Model G]
--> [Helper Q]
</pre>
<p>Řadič je tedy na jeden požadavek vždy pouze jeden. Každý řadič může používat vícero služeb, modelů, helperů a pohledů pro obsluhu jednoho požadavku. Service může používat helpery, modely a jiné services.</p> FreenetIS - Požadavek #948 (Nový): zamítnutí požadavku na připojeníhttps://dev.freenetis.org/issues/9482014-11-20T13:08:05ZJovák jowakoslafjovak@unart.cz
<p>při zamítnutí požadavku na připojení(zapsání nového zařízení [bylo by dobré to přejmenovat -formulace "Požadavek na připojení" je hrozná]) se pošle dotyčnému email, že požadavek byl zamítnut, ale už se nedozví proč, jelikož komentovat to lze až potom.<br />Prosím umožnit komentář před posláním emailu a komentář do emailu tak é vložit.</p>
<p>Děkuji za kladné vyřízení mého požadavku :-)</p> FreenetIS - Podpora #947 (Nový): Wiki stránka s návodem napsání jednoduchého koncového bodu službyhttps://dev.freenetis.org/issues/9472014-10-21T05:33:15ZOndřej Fibichfibich@freenetis.org
<p>Wiki stránka s návodem napsání jednoduchého koncového bodu služby.<br />Nebude obsahovat informace z <a href="https://github.com/freenetis/phpaxrs/blob/master/README.md" class="external">PHPAX-RS readme</a>, ale spíše informace přímo spojené s integrací do FreenetISu.</p> FreenetIS - Požadavek #932 (Odeslaný): Seznam podsití na lincehttps://dev.freenetis.org/issues/9322014-08-21T13:26:47ZOndřej Fibichfibich@freenetis.org
<p>Z důvodů napojení na externí systémy je nutné umět zjistit podsítě na lince.<br />Primárně tato funkce musí by dostupná přes API, sekundárně ji lze zařadit<br />také do pohledu zobrazení linky ve formě tabulky všech podsítí.</p>
<p>Při zjišťování podsítí musí být brán ohled na specifické přídady rozhraní<br />zařazených do dane linky - VLANy, Virtual WLANy a bridge.</p> FreenetIS - Požadavek #928 (Nový): Adresářová struktura pro podporou modulů s jmennými prostory P...https://dev.freenetis.org/issues/9282014-07-28T19:22:00ZOndřej Fibichfibich@freenetis.org
<p>Zavést systém adresářů s moduly <strong>/modules/</strong>, každá podsložka reprezentující modul bude obsahovat:</p>
<ul>
<li><strong>application</strong>
<ul>
<li><strong>controllers</strong></li>
<li><strong>helpers</strong></li>
<li><strong>i18n</strong></li>
<li><strong>libraries</strong></li>
<li><strong>models</strong></li>
<li><strong>views</strong></li>
</ul>
</li>
<li><strong>db_upgrades</strong></li>
<li><strong>doc</strong></li>
<li><strong>media</strong></li>
<li>module.php <em>(soubor s definicemi verze, názvu apod.)</em></li>
</ul>
<p>V repozitář modulu bude vypada následovně (tj. nebude v hlavním repozitáři):</p>
<ul>
<li><strong>src</strong> <em>(výše popsaný obsah)</em></li>
<li><strong>test</strong></li>
<li><strong>deb</strong></li>
<li>README</li>
<li>LICENCE</li>
</ul>
<p>PHP třídy bude mít každý modul ve vlastním PHP jmenném prostoru <strong>\freenetis\module\<jméno modulu>\<x>\<y>\<z></strong>.<br />x, y, z bude respektovat adresářovou strukturu (stejně jako balíček v Javě), pokud budu mít teda controller <em>Abc_Controller</em> modulu <em>abeceda</em> pak jeho jmenný prostor bude <em>\freenetis\module\abeceda\controllers</em>. Pokud by byl ve složce controllers/a/ pak by se tato podložka projevila ve jmenném prostoru.</p>
<p>Pro podporu jmenných prostorů musí být vyhozen starý Kohaňácký nepořádek (<strong><em>Core a My</em></strong> třídy) a musí být přespán autoloader tříd. Navíc je taky nutné PHP 5.3 >, ale to by snad neměl být problém.</p>
<p>Jmenné prostory by se nakonec měli použít i mimo moduly. Celý základní FreenetIS by byl namespace \core s podnamespacem \system atd.</p> FreenetIS - Chyba #890 (Čeká se): Po přijetí zájemce o připojení se změní jeho třída rychlostihttps://dev.freenetis.org/issues/8902014-02-25T15:03:35ZMichal Klimentkliment@freenetis.org
<p>Po přijetí zájemce o připojení se změní jeho třída rychlosti na výchozí hodnotu.</p> FreenetIS - Požadavek #848 (Nový): Sůl do heselhttps://dev.freenetis.org/issues/8482014-01-06T18:54:44ZOndřej Fibichfibich@freenetis.org
<p>Přidání soli do hashů hesel uživatelů proti Rainbow table attack.</p>
<p>Nutná změna všech částí, které s heslem pracují, se zachování fungování pro stávající hesla.<br />Vyřeší problém pro nové nasazení FN a uživatele, kteří si změní heslo/budou přidáni do nové .</p>
<p>Problém je co zvolit jako sůl. Obvykle se volí přihlašovací jméno, to se u nás ale mění.<br />Nabízí se použít ID uživatele v kombinaci s member ID, ty jsou neměnné.</p>
<a name="Postup-přihlášení"></a>
<h3 >Postup přihlášení<a href="#Postup-přihlášení" class="wiki-anchor">¶</a></h3>
<ol>
<li>odesláno: pepa password</li>
<li>zjistím ID ($mid, $uid) a hash hesla ($password) pro pepa v DB</li>
<li>if (hash_hmac('sha256', 'password', $mid . '-' . $uid) == $password) { přihlášen } else { proces starého přihlášení s SHA-1/MD5 hashem }</li>
</ol>
<p>Je možné taky vybírat způsob přihlášení dle délky hashe.</p> FreenetIS - Požadavek #89 (Nový): Automatizace testování - server pro kontinuální integracihttps://dev.freenetis.org/issues/892011-12-05T11:17:37ZJiří Svitákjsvitak@unart.cz
<p>Pro eliminaci velkého množství regresních (opakujících se) chyb by bylo vhodné vytvořit virtuál, na kterém by běžel server s kontinuální integrací. V práci na toto používáme Jenkins. Tento software využívá hromada firem na zajištění kvality softwaru. Umožňuje to hlavně definovat a automaticky pouštět testovací sady.</p>
<p>Příklad:<br />Po každém commitu v SVN by se automaticky stáhly zdrojáky, nastavil by se automaticky apache, pustila se instalace a dále testovací sady. Momentálně základní Ondrova sada, která by se dále rozšiřovala a vylepšovala. Různé chyby by byly velmi rychle odhaleny.</p>
<p>Bohužel jsem teď časově velmi zaneprázdněn, ale doufám, že někdy si udělám čas a rozjedu to.</p> FreenetIS - Požadavek #13 (Ve vývoji): APIhttps://dev.freenetis.org/issues/132011-10-31T06:33:25ZMichal Klimentkliment@freenetis.org
<p>Částečně to vychází z Modularity FreeNetISu.</p>
<p>Vytvoření aplikačního rozhraní, skrze které by freenetis komunikoval s jinými systémy. Jednalo by se jednak o čtení dat z freenetisu, tak i zápis dat do freenetisu.</p>
<p>Aktuálně je již základ API položen ve formě generování IP adres/rozsahů pro přesměrování (je to tuším web_interface kontroler).</p>
<p>API by mělo podporovat různé formáty (minimálně txt, xml a json).</p>