gofmt -s -w . — formatiranje celog projekta

This commit is contained in:
2026-06-22 02:05:46 +02:00
parent afbc0b6083
commit 63a5c72ca9
13 changed files with 70 additions and 69 deletions
+4 -2
View File
@@ -49,7 +49,8 @@ func nadjiLokalneAdrese() []string {
func PokreniSetup(fsys fs.FS, envFajl string) { func PokreniSetup(fsys fs.FS, envFajl string) {
port := NadjiSlobodanPort() port := NadjiSlobodanPort()
if port == 0 { if port == 0 {
slog.Error("setup: nije pronađen nijedan slobodan port"); os.Exit(1) slog.Error("setup: nije pronađen nijedan slobodan port")
os.Exit(1)
} }
gotov := make(chan struct{}) gotov := make(chan struct{})
@@ -103,7 +104,8 @@ func PokreniSetup(fsys fs.FS, envFajl string) {
go func() { go func() {
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed { if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
slog.Error("setup server", "error", err); os.Exit(1) slog.Error("setup server", "error", err)
os.Exit(1)
} }
}() }()
+2 -2
View File
@@ -19,8 +19,8 @@ func TestIzvestajArtikliBrojaci(t *testing.T) {
} }
} }
dodaj(&model.Artikal{Naziv: "A", Kolicina: 10, KolicinMin: 5}) dodaj(&model.Artikal{Naziv: "A", Kolicina: 10, KolicinMin: 5})
dodaj(&model.Artikal{Naziv: "B", Kolicina: 2, KolicinMin: 5}) // kritičan dodaj(&model.Artikal{Naziv: "B", Kolicina: 2, KolicinMin: 5}) // kritičan
dodaj(&model.Artikal{Naziv: "C", Kolicina: 0, KolicinMin: 5}) // kritičan, nula dodaj(&model.Artikal{Naziv: "C", Kolicina: 0, KolicinMin: 5}) // kritičan, nula
if n, err := izv.BrojArtikala(ctx); err != nil || n != 3 { if n, err := izv.BrojArtikala(ctx); err != nil || n != 3 {
t.Fatalf("BrojArtikala = %d, err=%v; očekivano 3", n, err) t.Fatalf("BrojArtikala = %d, err=%v; očekivano 3", n, err)
+1 -1
View File
@@ -129,7 +129,7 @@ func (h *Handler) Dashboard(w http.ResponseWriter, r *http.Request) {
ps.NaslovStranice = "Dashboard" ps.NaslovStranice = "Dashboard"
podaci := model.PodaciDashboarda{ podaci := model.PodaciDashboarda{
PodaciStranice: ps, PodaciStranice: ps,
BrojArtikala: brojArtikala, BrojArtikala: brojArtikala,
AktivniServisi: aktivniServisi, AktivniServisi: aktivniServisi,
PrihodOvogMeseca: prihodOvogMeseca, PrihodOvogMeseca: prihodOvogMeseca,
+6 -6
View File
@@ -209,10 +209,10 @@ func (h *Handler) Izvestaji(w http.ResponseWriter, r *http.Request) {
// PodaciPrometногLista su podaci za prometni list magacina // PodaciPrometногLista su podaci za prometni list magacina
type PodaciPrometногLista struct { type PodaciPrometногLista struct {
model.PodaciStranice model.PodaciStranice
Promene []model.PrometniRed Promene []model.PrometniRed
Od string Od string
Do string Do string
Ukupno int Ukupno int
} }
// PrometniListMagacina renderuje prometni list magacina za odabrani period // PrometniListMagacina renderuje prometni list magacina za odabrani period
@@ -264,9 +264,9 @@ func (h *Handler) PrometniListMagacina(w http.ResponseWriter, r *http.Request) {
// PodaciStanjaZaliha su podaci za izveštaj o stanju zaliha // PodaciStanjaZaliha su podaci za izveštaj o stanju zaliha
type PodaciStanjaZaliha struct { type PodaciStanjaZaliha struct {
model.PodaciStranice model.PodaciStranice
Zalihe []model.StanjeZalihaRed Zalihe []model.StanjeZalihaRed
UkupnaVrednost float64 UkupnaVrednost float64
BrojArtikala int BrojArtikala int
} }
// StanjeZalihaIzvestaj renderuje izveštaj o trenutnom stanju zaliha // StanjeZalihaIzvestaj renderuje izveštaj o trenutnom stanju zaliha
+1 -1
View File
@@ -66,7 +66,7 @@ func artikalUJSON(artikli []model.ArtikalSaKategorijom, vezeDobavljaca map[int64
ID: a.ID, Naziv: a.Naziv, PdvStopa: a.PdvStopa, ID: a.ID, Naziv: a.Naziv, PdvStopa: a.PdvStopa,
NabavnaCena: a.NabavnaCena, NabavnaCena: a.NabavnaCena,
Marza: a.Marza, KategorijaMarza: a.KategorijaMarza, Marza: a.Marza, KategorijaMarza: a.KategorijaMarza,
Dobavljaci: dob, Dobavljaci: dob,
}) })
} }
b, _ := json.Marshal(lista) b, _ := json.Marshal(lista)
-1
View File
@@ -15,7 +15,6 @@ import (
"github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5"
) )
// podaciPodsetnici su podaci za stranicu sa listom podsetnika // podaciPodsetnici su podaci za stranicu sa listom podsetnika
type podaciPodsetnici struct { type podaciPodsetnici struct {
model.PodaciStranice model.PodaciStranice
+3 -3
View File
@@ -56,9 +56,9 @@ func (h *Handler) ProfilTema(w http.ResponseWriter, r *http.Request) {
ps.NaslovStranice = "Moja tema" ps.NaslovStranice = "Moja tema"
podaci := podaciProfilTema{ podaci := podaciProfilTema{
PodaciStranice: ps, PodaciStranice: ps,
LokalnaTema: svezi.LokalnaTema, LokalnaTema: svezi.LokalnaTema,
KoristiLokalnuTemu: svezi.KoristiLokalnuTemu, KoristiLokalnuTemu: svezi.KoristiLokalnuTemu,
LokalnaPozadina: svezi.LokalnaPozadina, LokalnaPozadina: svezi.LokalnaPozadina,
LokalnaPozadinaOpacity: svezi.LokalnaPozadinaOpacity, LokalnaPozadinaOpacity: svezi.LokalnaPozadinaOpacity,
LokalnaPozadinaBlur: svezi.LokalnaPozadinaBlur, LokalnaPozadinaBlur: svezi.LokalnaPozadinaBlur,
+7 -7
View File
@@ -73,12 +73,12 @@ type PrometniRed struct {
// StanjeZalihaRed je jedan red izveštaja o stanju zaliha // StanjeZalihaRed je jedan red izveštaja o stanju zaliha
type StanjeZalihaRed struct { type StanjeZalihaRed struct {
Naziv string Naziv string
Sifra string Sifra string
Kategorija string Kategorija string
Kolicina int Kolicina int
KolicinMin int KolicinMin int
NabavnaCena float64 NabavnaCena float64
ProdajnaCena float64 ProdajnaCena float64
VrednostZalihe float64 // kolicina × nabavna_cena VrednostZalihe float64 // kolicina × nabavna_cena
} }
+18 -18
View File
@@ -4,24 +4,24 @@ import "time"
// Korisnik predstavlja nalog korisnika u sistemu // Korisnik predstavlja nalog korisnika u sistemu
type Korisnik struct { type Korisnik struct {
ID int64 ID int64
KorisnickoIme string KorisnickoIme string
LozinkaHash string LozinkaHash string
Uloga string // "superadmin" | "admin" | "radnik" Uloga string // "superadmin" | "admin" | "radnik"
Aktivan bool Aktivan bool
TotpTajna string TotpTajna string
LokalnaTema string // "tamna" | "svetla" | "" LokalnaTema string // "tamna" | "svetla" | ""
KoristiLokalnuTemu bool KoristiLokalnuTemu bool
DatumKreiranja time.Time DatumKreiranja time.Time
LokalnaPozadina string LokalnaPozadina string
LokalnaPozadinaOpacity string LokalnaPozadinaOpacity string
LokalnaPozadinaBlur string LokalnaPozadinaBlur string
LokalnaPozadinaBlurPozadine string LokalnaPozadinaBlurPozadine string
LokalnaPozadinaGlassOpacity string LokalnaPozadinaGlassOpacity string
AvatarPutanja string AvatarPutanja string
LokalnaAnimacija string // "" | "fadeInUp" | "fadeIn" | "scaleIn" | "slideLeft" LokalnaAnimacija string // "" | "fadeInUp" | "fadeIn" | "scaleIn" | "slideLeft"
LokalniHover string // "" | "bez" | "podizanje" | "svetlost" LokalniHover string // "" | "bez" | "podizanje" | "svetlost"
LokalnaBrzinaAnimacije string // "" | "0.2" | "0.4" | "0.6" | "0.8" | "1.2" (sekunde) LokalnaBrzinaAnimacije string // "" | "0.2" | "0.4" | "0.6" | "0.8" | "1.2" (sekunde)
} }
// Sesija predstavlja aktivnu sesiju prijavljenog korisnika // Sesija predstavlja aktivnu sesiju prijavljenog korisnika
+1 -1
View File
@@ -4,7 +4,7 @@ import "time"
// Tipovi magacinskih promena // Tipovi magacinskih promena
const ( const (
PromenaUlazNabavka = "ulaz_nabavka" PromenaUlazNabavka = "ulaz_nabavka"
PromenaIzlazProdaja = "izlaz_prodaja" PromenaIzlazProdaja = "izlaz_prodaja"
PromenaIzlazServis = "izlaz_servis" PromenaIzlazServis = "izlaz_servis"
PromenaPovracaj = "povracaj" PromenaPovracaj = "povracaj"
+3 -3
View File
@@ -40,9 +40,9 @@ func TestArtikalCenaBezPdvIPdvIznos(t *testing.T) {
func TestKlijentPunoIme(t *testing.T) { func TestKlijentPunoIme(t *testing.T) {
testovi := []struct { testovi := []struct {
naziv string naziv string
k Klijent k Klijent
ocek string ocek string
}{ }{
{"pravno lice", Klijent{Tip: "pravno", NazivFirme: "Firma DOO", Ime: "x", Prezime: "y"}, "Firma DOO"}, {"pravno lice", Klijent{Tip: "pravno", NazivFirme: "Firma DOO", Ime: "x", Prezime: "y"}, "Firma DOO"},
{"fizičko lice", Klijent{Tip: "fizicko", Ime: "Petar", Prezime: "Petrović"}, "Petar Petrović"}, {"fizičko lice", Klijent{Tip: "fizicko", Ime: "Petar", Prezime: "Petrović"}, "Petar Petrović"},
+8 -8
View File
@@ -7,14 +7,14 @@ const TipOpsti = "opsti"
// Podsetnik predstavlja jedan podsetnik // Podsetnik predstavlja jedan podsetnik
type Podsetnik struct { type Podsetnik struct {
ID int64 ID int64
Naslov string Naslov string
Napomena string Napomena string
DatumPodsecanja time.Time DatumPodsecanja time.Time
Zavrseno bool Zavrseno bool
Tip string Tip string
DatumUnosa time.Time DatumUnosa time.Time
KorisnikID *int64 // ako nil — podsetnik nije dodeljen konkretnom korisniku KorisnikID *int64 // ako nil — podsetnik nije dodeljen konkretnom korisniku
} }
// JePrekoracen vraća true ako datum podsećanja je prošao a podsetnik nije završen // JePrekoracen vraća true ako datum podsećanja je prošao a podsetnik nije završen
+16 -16
View File
@@ -31,22 +31,22 @@ type FlashPoruka struct {
// PodaciStranice su zajednički podaci koje svaka stranica prima // PodaciStranice su zajednički podaci koje svaka stranica prima
type PodaciStranice struct { type PodaciStranice struct {
Stranica string Stranica string
NaslovStranice string NaslovStranice string
Tema string Tema string
NazivFirme string NazivFirme string
Podnazlov string Podnazlov string
LogoPutanja string // putanja do slike loga firme LogoPutanja string // putanja do slike loga firme
TopbarLogoSlika bool // prikaži logo sliku u topbaru TopbarLogoSlika bool // prikaži logo sliku u topbaru
AvatarPutanja string // putanja do lične avatar slike korisnika AvatarPutanja string // putanja do lične avatar slike korisnika
Korisnik string Korisnik string
KorisnikIme string // korisničko ime prijavljenog korisnika KorisnikIme string // korisničko ime prijavljenog korisnika
KorisnikUloga string // uloga: "superadmin", "admin", "radnik" KorisnikUloga string // uloga: "superadmin", "admin", "radnik"
CsrfToken string // CSRF zaštitni token za forme CsrfToken string // CSRF zaštitni token za forme
AssetV string // verzija statičkih fajlova (cache-busting za CSS/JS) AssetV string // verzija statičkih fajlova (cache-busting za CSS/JS)
Dozvole map[string]bool // mapa akcija → dozvoljeno/nije Dozvole map[string]bool // mapa akcija → dozvoljeno/nije
Moduli map[string]bool // mapa zakonskih modula → uključen za firmu (profil firme) Moduli map[string]bool // mapa zakonskih modula → uključen za firmu (profil firme)
Flash *FlashPoruka // jednokratna poruka nakon redirecta Flash *FlashPoruka // jednokratna poruka nakon redirecta
// app pozadina — popunjava se iz podešavanja za sve stranice // app pozadina — popunjava se iz podešavanja za sve stranice
AppPozadina string AppPozadina string
AppPozadinaOpacity string // vrednost 0-80 (% overlay zatamnjivanja) AppPozadinaOpacity string // vrednost 0-80 (% overlay zatamnjivanja)