Project

General

Profile

Segnalazione #744

Assegnazione macchine a gruppi

Added by Enrico Zini almost 6 years ago. Updated over 5 years ago.

Status:
Chiuso
Priority:
Normale
Assignee:
Target version:
Start date:
02/19/2019
Due date:
% Done:

0%

Estimated time:
Resolution:

Description

Interfaccia per assegnare le macchine a dei gruppi

Associated revisions

Revision 3a6a812a (diff)
Added by Enrico Zini over 5 years ago

Serialize and deserialize machine groups. refs: #744

Revision fced29a2 (diff)
Added by Enrico Zini over 5 years ago

Use a Machine object on js's side, too. refs: #744

Revision fa5eb39a (diff)
Added by Enrico Zini over 5 years ago

Refactored js code. refs: #744

Revision 7c182416 (diff)
Added by Enrico Zini over 5 years ago

Show machines by group. refs: #744

Revision 99910868 (diff)
Added by Enrico Zini over 5 years ago

Render all machines in all groups in the same way. refs: #744

Revision 58ed4421 (diff)
Added by Enrico Zini over 5 years ago

Sort group names to remove UI nondeterminism. refs: #744

Revision cf2e666a (diff)
Added by Enrico Zini over 5 years ago

Readded machine detail view. refs: #744

Revision 07017f1a (diff)
Added by Enrico Zini over 5 years ago

Share some widget infrastructure. refs: #744

Revision 18016c04 (diff)
Added by Enrico Zini over 5 years ago

Turn on autoreload when debug==True. refs: #744

Revision 27ecb0c4 (diff)
Added by Enrico Zini over 5 years ago

Show more details in machine tables. refs: #744

Revision 1e29a099 (diff)
Added by Enrico Zini over 5 years ago

Show machine details in a table. refs: #744

Revision 52bab92b (diff)
Added by Enrico Zini over 5 years ago

Update backend information and machine details widget when new machine data is notified in an event. refs: #744

Revision 4e6f3b1d (diff)
Added by Enrico Zini over 5 years ago

Make machine group tables sortable. refs: #744

Revision 5004ab4b (diff)
Added by Enrico Zini over 5 years ago

Redone group rendering in a table to make space for actions. refs: #744

Revision 5c0f44c3 (diff)
Added by Enrico Zini over 5 years ago

Implemented the UI side of adding a new group to a machine. refs: #744

Revision 04ec80b0
Added by Enrico Zini over 5 years ago

Merge branch 't772' into t744. refs: #744

Revision 13788127 (diff)
Added by Enrico Zini over 5 years ago

Started modeling Operation objects in JS. refs: #744

Revision e9bc9338 (diff)
Added by Enrico Zini over 5 years ago

Test web api. refs: #744

Revision 061fcdd7 (diff)
Added by Enrico Zini over 5 years ago

New API for invoking operations. refs: #744

Revision 959b0b7d (diff)
Added by Enrico Zini over 5 years ago

Execute operation on submission. refs: #744

Revision b9f3508c (diff)
Added by Enrico Zini over 5 years ago

Encode the operation name from js. refs: #744

Revision c4be6c85
Added by Enrico Zini over 5 years ago

Merge branch 't772' into t744. refs: #744

Revision aed0e78d (diff)
Added by Enrico Zini over 5 years ago

Implemented MachineStore.add_machine_to_group. refs: #744

Revision 9f819ac3 (diff)
Added by Enrico Zini over 5 years ago

Call add_machine_to_group in AddGroup.execute. refs: #744

Revision 05ad335a (diff)
Added by Enrico Zini over 5 years ago

Implemented adding a machine to a group. refs: #744

Revision dc35b0eb (diff)
Added by Enrico Zini over 5 years ago

Use a base template, and add a navbar. refs: #744

Revision 77b240c9 (diff)
Added by Enrico Zini over 5 years ago

Split event monitor in a separate page. refs: #744

Revision e80c19be (diff)
Added by Enrico Zini over 5 years ago

Added group selector. refs: #744

Revision e1228bf0 (diff)
Added by Enrico Zini over 5 years ago

Show one group at a time. refs: #744

Revision e3ce6a13 (diff)
Added by Enrico Zini over 5 years ago

Enlarged datatables machine list. refs: #744

Revision 2e6a3758 (diff)
Added by Enrico Zini over 5 years ago

Add group information. refs: #744

Revision eb6b06ac (diff)
Added by Enrico Zini over 5 years ago

Show machine details in popup. refs: #744

Revision b657affa (diff)
Added by Enrico Zini over 5 years ago

Reactivate AddGroup action. refs: #744

Revision caa2c38d (diff)
Added by Enrico Zini over 5 years ago

Implemented removing a machine from a group. refs: #744

Revision 294e2623 (diff)
Added by Enrico Zini over 5 years ago

Added ops support for DelGroup. refs: #744

Revision b6a99b84 (diff)
Added by Enrico Zini over 5 years ago

Implemented group removal. refs: #744

Revision 956fa604 (diff)
Added by Enrico Zini over 5 years ago

Allow to configure what machine fields to serialize to json. refs: #744

History

#1

Updated by Enrico Zini over 5 years ago

  • Assignee set to Enrico Zini
#2

Updated by Enrico Zini over 5 years ago

  • Status changed from Nuovo to In elaborazione
#3

Updated by Enrico Zini over 5 years ago

  • Status changed from In elaborazione to Commenti
  • Assignee changed from Enrico Zini to Elena Grandi

Ho aggiunto manager/ops.py, con una gerarchia di classi che descrivono operazioni da compiere. manager/web/static/fussmanager/js/operations.js è il suo parallelo in JavaScript, e questo permette di generare operazioni da JavaScript, passarle al server via API, eseguirle, ed eventualmente loggarle (#743).

Ho aggiunto il supporto per template in moustache (classe Widget in manager/web/static/fussmanager/js/widgets/machines.js), in modo da spostare tutto il layout possibile nei template html renderizzati da tornado, in modo che, oltre ad avere tutto l'HTML nello stesso posto, il tutto sia anche localizzabile. Ho scelto moustache perché è pacchettizzato in Debian (libjs-moustache), ma come motore di template mi piace molto poco. Ad ogni modo, per il momento risolve un problema. Ho cambiato i tag di moustache da {{ a [[ per non conflittare con tornado.

Ho riorganizzato i RequestHandler che renderizzano HTML in un sistema tipo class-based-view di Django manager/web/views.py, che ho poi usato per creare la navbar.

Ho riorganizzato i template HTML dal prototipo di prima a qualcosa di piú solido, con un base template i template delle varie view.

La logica JavaScript è organizzata in un Manager manager/web/static/fussmanager/js/api.js che indicizza le informazioni sulle varie macchine, e vari widget che pescano dal manager. Quando arrivano eventi via WebSocket, il manager aggiorna le sue strutture dati di conseguenza, e i widget si aggiornano. Se per esempio si ordinano le macchine in un gruppo per last-seen, si vede cambiare nel tempo l'ordine delle macchine. Se si mostrano i dettagli di una macchina, sono aggiornati in real time.

La pagina principale è un grosso DataTables con le macchine senza gruppo. C'è un elenco di gruppi in cima alla pagina che permette di selezionare un gruppo e mostrarne le macchine, o deselezionare il gruppo corrente per mostrare di nuovo le macchine senza gruppo.

Scegliendo una macchina dalla tabella, compare un popup di dettagli che permette di aggiungere/togliere gruppi.

#4

Updated by Elena Grandi over 5 years ago

mergiato in master

#5

Updated by Elena Grandi over 5 years ago

  • Status changed from Commenti to Chiuso
  • Assignee changed from Elena Grandi to Enrico Zini

Also available in: Atom PDF