Browse Source

Let user choose if trap config changes should update traps in database

ToDo#44

Signed-off-by: Sven Velt <sven@velt.de>
Sven Velt 10 years ago
parent
commit
fe2928ca2f
3 changed files with 9 additions and 3 deletions
  1. 1 1
      ToDo
  2. 4 1
      traps/templates/traps/config_trapoid.html
  3. 4 1
      traps/views.py

+ 1 - 1
ToDo

@@ -3,6 +3,7 @@ DONE
 #41: STATIC_URL ersetzen
 #42: Traps als gelesen markieren oder löschen
 #43: States als gelesen markieren oder löschen
+#44: Wird eine Trap-Config geändert, werden die Änderungen NICHT in die DB übernommen (bei resolve schon!)
 #47: Alle Traps durch einen klick markieren, für "alle gelesen" u.ä.
 #48: Alle States durch einen klick markieren, für "alle gelesen" u.ä.
 #58: Traps: Filter auf leeren Trap-Namen ("trapname=__") funktioniert nicht
@@ -11,7 +12,6 @@ TODO
 ~~~~
 #39: SNMPTT komplett ersetzen
 #40: SNMPTT-EXEC-Weg implementieren
-#44: Wird eine Trap-Config geändert, werden die Änderungen NICHT in die DB übernommen (bei resolve schon!)
 #45: Traps archivieren
 #46: States archivieren
 #49: VarBinds Namen auflösen

+ 4 - 1
traps/templates/traps/config_trapoid.html

@@ -17,7 +17,10 @@
 			</tr>
 			{{ form }}
 			<tr>
-				<td colspan=2><input type="submit" value="Submit" /></td>
+				<td colspan=2>
+					<button type="submit" name="action" value="save">Save config only</button>
+					<button type="submit" name="action" value="save_update">Save config and update all traps</button>
+				</td>
 			</tr>
 		</form>
 	</table>

+ 4 - 1
traps/views.py

@@ -138,7 +138,10 @@ def config_trapoid(Request, trapoid):
 	if Request.method == 'POST':
 		form = CfgTrapForm(Request.POST, instance=cfgtrap)
 		if form.is_valid():
-			form.save()
+			cfgtrap = form.save()
+			if Request.POST.get('action') == 'save_update':
+				with connection.cursor() as c:
+					c.execute('UPDATE ' + Trap._meta.db_table + ' SET trapname=%s, category=%s, severity=%s WHERE trapoid=%s', [cfgtrap.trapname, cfgtrap.category, cfgtrap.severity, trapoid,])
 			return HttpResponseRedirect( reverse('trap_config_index') )
 	else:
 		form = CfgTrapForm(instance=cfgtrap)