Working on participants import
This commit is contained in:
parent
c07bb4ded9
commit
359cca07ed
8 changed files with 1370 additions and 8978 deletions
|
@ -7,6 +7,10 @@ import (
|
||||||
"github.com/jinzhu/gorm"
|
"github.com/jinzhu/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
categories = []string{"Junior", "Senior"}
|
||||||
|
)
|
||||||
|
|
||||||
type Category struct {
|
type Category struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,6 @@ var (
|
||||||
fns map[string]func(map[string]string, http.ResponseWriter, *http.Request) (interface{}, error)
|
fns map[string]func(map[string]string, http.ResponseWriter, *http.Request) (interface{}, error)
|
||||||
currDB *gorm.DB
|
currDB *gorm.DB
|
||||||
store = sessions.NewCookieStore([]byte(config.Config.Keys.CookieStoreKey))
|
store = sessions.NewCookieStore([]byte(config.Config.Keys.CookieStoreKey))
|
||||||
|
|
||||||
categories = []string{"Junior", "Senior"}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|
|
@ -2,6 +2,8 @@ package orm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -13,6 +15,8 @@ import (
|
||||||
"github.com/jinzhu/gorm"
|
"github.com/jinzhu/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ContestIDs []uint
|
||||||
|
|
||||||
type Participant struct {
|
type Participant struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
|
|
||||||
|
@ -35,7 +39,7 @@ type Participant struct {
|
||||||
|
|
||||||
Responses []*Response
|
Responses []*Response
|
||||||
|
|
||||||
ContestIDs []uint `schema:"contest_ids" gorm:"-"`
|
ContestIDs ContestIDs `schema:"contest_ids" gorm:"-"`
|
||||||
Contests []*Contest `gorm:"many2many:subscriptions"`
|
Contests []*Contest `gorm:"many2many:subscriptions"`
|
||||||
|
|
||||||
SelectedCategory map[uint]string `gorm:"-"`
|
SelectedCategory map[uint]string `gorm:"-"`
|
||||||
|
@ -48,6 +52,19 @@ type Participant struct {
|
||||||
AllSchools []*School `gorm:"-"`
|
AllSchools []*School `gorm:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ids *ContestIDs) UnmarshalCSV(csv string) error {
|
||||||
|
splits := strings.Split(csv, ",")
|
||||||
|
for _, s := range splits {
|
||||||
|
id, err := strconv.Atoi(s)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Println(id)
|
||||||
|
*ids = append(*ids, uint(id))
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (model *Participant) sanitize(s string) string {
|
func (model *Participant) sanitize(s string) string {
|
||||||
lower := strings.ToLower(s)
|
lower := strings.ToLower(s)
|
||||||
r := strings.NewReplacer("'", "", "-", "", " ", "", "ò", "o", "ì", "i")
|
r := strings.NewReplacer("'", "", "-", "", " ", "", "ò", "o", "ì", "i")
|
||||||
|
@ -390,7 +407,7 @@ func (model *Participant) Delete(args map[string]string, w http.ResponseWriter,
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateParticipant(participant *Participant) (*Participant, error) {
|
func CreateParticipant(participant *Participant) (*Participant, error) {
|
||||||
if err := DB().Where(participant.ContestIDs).Find(&participant.Contests).Error; err != nil {
|
if err := DB().Where([]uint(participant.ContestIDs)).Find(&participant.Contests).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := DB().Create(participant).Error; err != nil {
|
if err := DB().Create(participant).Error; err != nil {
|
||||||
|
|
|
@ -24,8 +24,9 @@ func newImporter(c *client.Client) *importer {
|
||||||
return &importer{
|
return &importer{
|
||||||
c,
|
c,
|
||||||
map[string]func(*client.Client, string) error{
|
map[string]func(*client.Client, string) error{
|
||||||
"contests": importContest,
|
"contests": importContest,
|
||||||
"schools": importSchools,
|
"schools": importSchools,
|
||||||
|
"participants": importParticipants,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,6 +61,28 @@ func importSchools(client *client.Client, filename string) error {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func importParticipants(client *client.Client, filename string) error {
|
||||||
|
var participants []*orm.Participant
|
||||||
|
data, err := ioutil.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := gocsv.Unmarshal(strings.NewReader(string(data)), &participants); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, p := range participants {
|
||||||
|
id, err := client.Create(p)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
log.Println("Create participant with ID", id)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func importContest(client *client.Client, filename string) error {
|
func importContest(client *client.Client, filename string) error {
|
||||||
log.Println("Reading contest data from toml file...")
|
log.Println("Reading contest data from toml file...")
|
||||||
var contest *orm.Contest
|
var contest *orm.Contest
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name = "Test Contest"
|
name = "JUNIOR Contest"
|
||||||
|
|
||||||
[[questions]]
|
[[questions]]
|
||||||
|
|
2002
scripts/import/testdata/participants.csv
vendored
2002
scripts/import/testdata/participants.csv
vendored
File diff suppressed because it is too large
Load diff
7970
scripts/import/testdata/schools.csv
vendored
7970
scripts/import/testdata/schools.csv
vendored
File diff suppressed because it is too large
Load diff
320
scripts/import/testdata/senior_contest.toml
vendored
Normal file
320
scripts/import/testdata/senior_contest.toml
vendored
Normal file
|
@ -0,0 +1,320 @@
|
||||||
|
name = "SENIOR Contest"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Analizzando l'insieme delle entrate annuali di un soggetto economico, definiamo:"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "il suo reddito"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "il suo patrimonio"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "la sua ricchezza complessiva"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "la sua capacità di risparmio"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Ogni 20 € guadagnati, ne risparmiate 3, quanto ammonta la vostra propensione al consumo?"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "85%"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "75%"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "70%"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "80%"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Usualmente si individuano quali soggetto economici operanti nel sistema"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "famiglie, imprese, Stato, resto del mondo"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "famiglie, resto del mondo, Stato, banche"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "famiglie, imprese, banche e resto del mondo"
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "famiglie, Stato, importazioni e imprese"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Ipotizzando una propensione pari al 70% in caso di aumento del vostro reddito di 500 €, la vostra spesa aumenterebbe di:"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "350 €"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "300 €"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "250 €"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "200 €"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Se per i miei investimenti ricevo un interesse, sarò probabilmente un"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "obbligazionista"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "lavoratore salariato"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "azionista"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "proprietario terriero"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "In caso di aumento del prezzo di un bene la quantià offerta dello stesso"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "aumenta"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "diminuisce"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "rimane costante"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "diminusce in misura minore"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "La quantità domandata di un bene da parte del singolo operatore economico dipende, a parità di altre condizioni"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "dall'utilità dell'ultima unità di bene che si sta per acquistare"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "dall'utilità in media del bene acquistato"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "dall'utilità totale fornita da quel tipo di bene"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "nessuna delle risposte indicate"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Dalla scarsità delle risorse, in contrapposizione alla tendenziale illimitatezza dei bisogni, ne consegue che"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "maggiore è la scarsità di un bene e maggiore diventa la sua utilità e quindi il suo valore"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "maggiore è la scarsità di un bene e maggiore è il suo consumo"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "maggiore è la scarsità di un bene e maggiore diventa la sua utilità e quindi il suo valore"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "maggioe è la scarsità di un bene e maggiore è l'interesse del consumatore"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "A parità di offerta, se la domanda di un bene aumenta, il prezzo di mercato"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "aumenta"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "diminuisce"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "diminuisce per poi tornare al livello precedente"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "rimane invariato"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Aumentando la produzione, l'incidenza dei costi fissi unitari, ossia dei costi fissi su ciascun elemento prodotto"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "diminuisce"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "rimane fissa"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "aumenta"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "prima aumenta e poi inizia a diminuire"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Per combattere l'inflazione da costi è opportuno:"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "promuovere accordi sui prezzi delle materie prime con i paesi produttori"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "rimane fissa"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "aumenta"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "prima aumenta e poi inizia a diminuire"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Le banche svolgono una attività di creazione di moneta, nel senso che"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "concedono prestti agli operatori economici a fronte dei depositati ricevuti"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "raccolgono il risparmio e mettono a disposizione degli strumenti di pagamento come il bancomat"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "emettono moneta avente corso legale"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "emettono carte di credito continuamente ricaricabili"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Cosa si intende per domanda di moneta?"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "la quantità di moneta richiesta dai soggetti del sistema economico per transazioni, per ragioni speculative o prudenziali o per altri motivi"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "la quantità di moneta che viene richiesta dalle imprese sotto forma di prestiti richiesti al sistema bancario"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "la quantità di moneta richiesta dalla Banca Centrale quando mette in vendita dei titoli per ridurre la moneta in circolazione"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "la quantità di moneta richiesta dalle famiglie per mantenere in forma liquida i loro risparmi"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Un macchinario di un'impresa costituisce"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "un bene che fa parte del capitale fisso dell'impresa"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "un bene immobile"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "un bene di consumo"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "un bene che fa parte del capitale circolante dell'impresa"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "In un sistema a economia mista"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "imprese e mezzi di produzione appartengono ai privati e allo Stato"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "imprese e mezzi di produzione appartengono ai privati"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "imprese e mezzi di produzione appartengono allo Stato"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "imprese e mezzi di produzione appartengono agli stranieri"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Quando nel bilancio dello Stato le spese superano le entrate si ha un:"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "deficit"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "utile"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "pareggio"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "avanzo"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Per il consumatore è preferibile:"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "la concorrenza perfetta"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "il monopolio"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "l'oligopolio"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "tutte e tre le forme di mercato a seconda dei casi"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "L'offerta dipende"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "dal prezzo del prodotto e dai costi di produzione"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "dal prezzo del prodotto"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "dai costi di produzione"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "dall'andamento del mercato"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "Nel monopolio il prezzo è:"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "più alto che in libera concorrenza"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "più basso che in libera concorrenza"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "identico a quello in libera concorrenza"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "variabile"
|
||||||
|
|
||||||
|
[[questions]]
|
||||||
|
|
||||||
|
text = "La produzione è:"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "l'attività di trasformazione materiale di beni e servizi (input) in altri (output) al fine di accrescerne l'utilità"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "un ciclo economico"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "l'insieme dei beni di produzione"
|
||||||
|
|
||||||
|
[[questions.answers]]
|
||||||
|
text = "il risultato del lavoro dei dipendenti dell'impresa"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue