FUSS at work: Issueshttps://work.fuss.bz.it/https://work.fuss.bz.it/favicon.ico?15861920342017-06-14T13:55:39ZFUSS at work
Redmine octonet - Segnalazione #312 (Chiuso): Problema gruppi con spazio durante l'edit di un utentehttps://work.fuss.bz.it/issues/3122017-06-14T13:55:39ZMark Caglienzimark@truelite.it
<p>Se un utente è in un gruppo il cui nome contiene uno spazio, durante l'edit questo gruppo non compare nella select, e quindi l'utente ne viene rimosso al momento della POST.</p> octonet - Segnalazione #255 (Chiuso): Eccezione se un utente non root visita manualmente un url p...https://work.fuss.bz.it/issues/2552017-05-12T14:06:06ZMark Caglienzimark@truelite.it
<p>Se un utente non root mette nella barra degli indirizzi un'url corretta ma che non gli dovrebbe essere usabile (ad esempio <code>/firewall</code> se l'utente non ha i permessi per il plugin firewall) si ha un'eccezione non gestita.</p> octonet - Segnalazione #230 (Chiuso): Autocompletare il campo home durante la creazione di un utentehttps://work.fuss.bz.it/issues/2302017-04-14T14:34:15ZMark Caglienzimark@truelite.it
<p>Come detto nel <a href="https://work.fuss.bz.it/issues/225#note-7" class="external">ticket 225</a></p> octonet - Segnalazione #174 (Chiuso): Controllare "Rimuovi macchina da cluster"https://work.fuss.bz.it/issues/1742017-01-25T14:46:51ZMark Caglienzimark@truelite.it
Controllare che l'action di rimozione macchina da cluster faccia le cose giuste:
<ul>
<li>Mostri solo i cluster in cui l'host è incluso fra le opzioni della select</li>
<li>All'atto del clic rimuova correttamente l'host dal cluster</li>
</ul> octonet - Segnalazione #172 (Chiuso): Non riesco a creare un utentehttps://work.fuss.bz.it/issues/1722017-01-25T11:40:47ZMark Caglienzimark@truelite.it
<p>Quando creo un utente, ho questa eccezione:</p>
<pre>
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/users/user/create
Django Version: 1.8.8
Python Version: 3.5.3
Installed Applications:
['django.contrib.sessions',
'django.contrib.messages',
'whitenoise.runserver_nostatic',
'django.contrib.staticfiles',
'octonet',
'hostqueue.apps.HostQueue',
'firewall.apps.Firewall',
'dhcp.apps.Dhcp',
'dansguardian.apps.DansGuardian',
'host.apps.Host',
'polygen.apps.Polygen',
'upgrade.apps.Upgrade',
'asterisk.apps.Asterisk',
'samba.apps.Samba',
'users.apps.Users',
'script.apps.Script',
'quota.apps.Quota',
'printers.apps.Printers',
'auth.apps.Auth']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'octonet.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/home/mark/truelite/FUSS/octonet/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/mark/truelite/FUSS/octonet/django/views/generic/base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "/home/mark/truelite/FUSS/octonet/octonet/mixins.py" in dispatch
105. return super().dispatch(request, *args, **kw)
File "/home/mark/truelite/FUSS/octonet/django/views/generic/base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "/home/mark/truelite/FUSS/octonet/django/views/generic/edit.py" in post
215. return self.form_valid(form)
File "/home/mark/truelite/FUSS/octonet/users/views.py" in form_valid
510. self.user = self.root_tree.lcreate(["users", "users", name], user_data)
File "/home/mark/truelite/FUSS/octonet/octofuss/xmlrpc.py" in lcreate
84. return self._wrap_call(self.server.create, "/".join(path), dumps(value))
File "/home/mark/truelite/FUSS/octonet/octofuss/xmlrpc.py" in _wrap_call
42. raise globals().get(name, UnknownException)(msg)
Exception Type: UnknownException at /users/user/create
Exception Value: ' is not a valid group'
</pre>
<p>E il campo di gruppo non mi permette di inserire nessun gruppo, mi dice "No results found" quando ci clicco sopra, quindi non ho modo di inserire nessun gruppo, e la creazione fallisce per questo.</p> octonet - Segnalazione #162 (Chiuso): Altra eccezione nell'edit del cluster, quando si ha un host...https://work.fuss.bz.it/issues/1622017-01-19T15:40:43ZMark Caglienzimark@truelite.it
<p>Eccezione nell'edit di cluster (secondo me dovuta sempre al problema della creazione di un host con nome vuoto...da indagare per evitare problemi)</p>
<pre>
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/host/group/edit/paperopoli
Django Version: 1.8.8
Python Version: 3.5.3
Installed Applications:
['django.contrib.sessions',
'django.contrib.messages',
'whitenoise.runserver_nostatic',
'django.contrib.staticfiles',
'octonet',
'hostqueue.apps.HostQueue',
'firewall.apps.Firewall',
'dhcp.apps.Dhcp',
'dansguardian.apps.DansGuardian',
'host.apps.Host',
'polygen.apps.Polygen',
'upgrade.apps.Upgrade',
'asterisk.apps.Asterisk',
'samba.apps.Samba',
'users.apps.Users',
'script.apps.Script',
'quota.apps.Quota',
'printers.apps.Printers',
'auth.apps.Auth']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'octonet.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/home/mark/truelite/FUSS/octonet/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/mark/truelite/FUSS/octonet/django/views/generic/base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "/home/mark/truelite/FUSS/octonet/host/views.py" in dispatch
100. return super().dispatch(*args, **kwargs)
File "/home/mark/truelite/FUSS/octonet/octonet/mixins.py" in dispatch
105. return super().dispatch(request, *args, **kw)
File "/home/mark/truelite/FUSS/octonet/host/views.py" in dispatch
25. return super().dispatch(*args, **kwargs)
File "/home/mark/truelite/FUSS/octonet/django/views/generic/base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "/home/mark/truelite/FUSS/octonet/django/views/generic/base.py" in get
158. context = self.get_context_data(**kwargs)
File "/home/mark/truelite/FUSS/octonet/host/views.py" in get_context_data
128. context['hosts_with_logged_user'] = len([x for x in hosts if x['logged_user']])
File "/home/mark/truelite/FUSS/octonet/host/views.py" in <listcomp>
128. context['hosts_with_logged_user'] = len([x for x in hosts if x['logged_user']])
Exception Type: TypeError at /host/group/edit/paperopoli
Exception Value: list indices must be integers or slices, not str
</pre> octonet - Segnalazione #158 (Chiuso): Sidebar destra non scorrehttps://work.fuss.bz.it/issues/1582017-01-19T09:20:23ZMark Caglienzimark@truelite.it
<p>Se la lunghezza del content della pagina non supera la schermata del computer, la sidebar a destra non è utilizzabile fino in fondo, perché non scorre (l'unico modo che ho trovato per utilizzarla e cliccare sulle voci che normalmente non si vedono è fare zoom out della pagina con <code>Ctrl -</code>).</p>
<p>Allego screenshot</p> octonet - Segnalazione #151 (In elaborazione): Aggiungere test minimalihttps://work.fuss.bz.it/issues/1512017-01-18T15:35:10ZMark Caglienzimark@truelite.it
<p>Almeno un test per view che verifichi che la view risponda e che non ci siano errori tipo HTTP 500 (per evitare problemi di template, o di context con dati mancanti, eccetera)</p> octofussd - Segnalazione #144 (Chiuso): Possibile bug in octofussd nell'aggiunta utente a gruppohttps://work.fuss.bz.it/issues/1442017-01-16T16:28:29ZMark Caglienzimark@truelite.it
<p>Quando si aggiunge un utente a un gruppo e l'utente è già nel gruppo, vengono create due voci nel database.</p> octonet - Segnalazione #134 (Chiuso): Sorting nella tabella degli utentihttps://work.fuss.bz.it/issues/1342017-01-11T10:13:24ZMark Caglienzimark@truelite.it
<p>Aggiungere il sorting delle colonne nella tabella degli utenti, implementandolo nella view AJAX di backend.</p>
<p>Attenzione a controllare che il sorting sia monocolonna, che altrimenti rischia di diventare pesante visto che non si può usare il database e l'ORM di django per farla.</p> octonet - Segnalazione #92 (Chiuso): Correggere il comportamento della view di loginhttps://work.fuss.bz.it/issues/922016-11-30T08:37:21ZMark Caglienzimark@truelite.it
<p>La view di login deve redirigere a next (o home) se l'utente è già loggato</p> octonet - Segnalazione #82 (Chiuso): Sidebar e navigazione tra i pluginhttps://work.fuss.bz.it/issues/822016-11-23T14:58:41ZMark Caglienzimark@truelite.it
<p>Aggiungere una sidebar per la navigazione tra i plugin.</p>
Alcuni esempi da cui trarre spunto:
<ul>
<li><a class="external" href="http://bootsnipp.com/snippets/featured/admin-side-menu">http://bootsnipp.com/snippets/featured/admin-side-menu</a></li>
<li><a class="external" href="https://github.com/BlackrockDigital/startbootstrap-simple-sidebar">https://github.com/BlackrockDigital/startbootstrap-simple-sidebar</a></li>
</ul> octonet - Segnalazione #77 (Chiuso): Fixare la select di cambio linguahttps://work.fuss.bz.it/issues/772016-11-23T10:58:06ZMark Caglienzimark@truelite.it
<p>Così com'è ora mostra <strong>tutte</strong> le lingue possibili, magari vogliamo limitarlo (in modo pulito, possibilmente non manuale nel template) solo a 3-4 lingue.</p>
<ul>
<li>Aggiungere nel repository tutte le bandierine necessarie (relative alle lingue che vogliamo attivare). Ho in locale tutto il pacchetto per avere le bandiere coerenti, mi basterà aggiungere quelle che servono senza magari metterle tutte (sono diverse centinaia)</li>
<li>In ogni caso, quando clicco su una lingua nuova (ad esempio per passare da en-us a it) la bandierina al reload rimane en-us, sembra che la view di cambio lingua di django non faccia la cosa giusta</li>
</ul> PyHearing - Segnalazione #26 (Chiuso): Permettere l'invio di mail a tutti gli utentihttps://work.fuss.bz.it/issues/262014-04-11T13:24:49ZMark Caglienzimark@truelite.it
<p>A seguito di heartbleed, permettere di inviare una mail a tutti gli utenti del sito (ad esempio per consigliare di cambiare la password).</p> octomon - Segnalazione #8 (Chiuso): Controlli su utenti e permessi, e cosa può vedere ogni utentehttps://work.fuss.bz.it/issues/82013-08-29T17:27:01ZMark Caglienzimark@truelite.it
<ul>
<li>Tutte le view sono protette dal decoratore <code>@login_required</code></li>
<li>Prima dell'integrazione degli utenti, non c'erano controlli su cosa si potesse vedere (tutti gli utenti vedevano tutto)</li>
</ul>
Controlli aggiunti, situazione commit <a class="changeset" title="More update_stats cleaning..." href="https://work.fuss.bz.it/projects/octomon/repository/3/revisions/ec39a0a4189a99472de3ea93c2aec3ea7b5a6e89">ec39a0a4</a>:
<ul>
<li>'My School': vengono visualizzate solo le scuole amministrate dall'utente attualmente loggato (mediante la m2m <code>School.managed</code>), come si era già detto al telefono ieri. Un superuser le vede tutte, ovviamente.</li>
<li>Se un utente non ha scuole, viene visualizzato un messaggio nella pagina.</li>
</ul>
<p>Aggiunta la lista degli utenti che amministrano la scuola in <code>show_school.html</code>, con link a una nuova view chiamata <code>review_user()</code> che contiene le stesse informazioni del vecchio Octomon (nome, mail, elenco delle scuole amministrate).</p>