Premier jet d'une contrib de gestion de matériels pour a-d-u.
authorProgfou <jean-christophe.andre@auf.org>
Fri, 10 Feb 2012 08:24:17 +0000 (15:24 +0700)
committerProgfou <jean-christophe.andre@auf.org>
Fri, 10 Feb 2012 08:24:17 +0000 (15:24 +0700)
17 files changed:
gestionmateriel/INSTALL.aufusers-contrib [new file with mode: 0644]
gestionmateriel/__init__.py [new file with mode: 0644]
gestionmateriel/fixtures/materiel-20100128.json [new file with mode: 0644]
gestionmateriel/manage.py [new file with mode: 0755]
gestionmateriel/materiel/__init__.py [new file with mode: 0644]
gestionmateriel/materiel/admin.py [new file with mode: 0644]
gestionmateriel/materiel/models.py [new file with mode: 0644]
gestionmateriel/materiel/templates/fichier_dhcpd.txt [new file with mode: 0644]
gestionmateriel/materiel/templates/fichier_dns-inverse.txt [new file with mode: 0644]
gestionmateriel/materiel/templates/fichier_dns.txt [new file with mode: 0644]
gestionmateriel/materiel/templates/fichier_ethers.txt [new file with mode: 0644]
gestionmateriel/materiel/templates/machine_list.html [new file with mode: 0644]
gestionmateriel/materiel/urls.py [new file with mode: 0644]
gestionmateriel/materiel/views.py [new file with mode: 0644]
gestionmateriel/settings.py [new file with mode: 0644]
gestionmateriel/templates/materiel [new symlink]
gestionmateriel/urls.py [new file with mode: 0644]

diff --git a/gestionmateriel/INSTALL.aufusers-contrib b/gestionmateriel/INSTALL.aufusers-contrib
new file mode 100644 (file)
index 0000000..cb956a8
--- /dev/null
@@ -0,0 +1,16 @@
+rsync -avPHS root@dmha.vn.auf:~de/tech/django/gestionmateriel /srv/python/
+cd /srv/python/gestionmateriel/
+chown -R root:root .
+ln -s /srv/python/gestionmateriel/materiel /usr/lib/auf-django-users/contrib/
+ln -s /usr/lib/auf-django-users/contrib/materiel/templates /usr/share/auf-django-users/templates/materiel
+vi /etc/auf-django-users/conf.py # activer la contrib + une URL de contrib
+#INSTALLED_APPS_MORE = (
+#    'aufusers.contrib.materiel',
+#…
+#urlpatterns = patterns('',
+#    (r'^materiel/', include('aufusers.contrib.materiel.urls')),
+#…
+auf-django-users-manage.py validate
+auf-django-users-manage.py syncdb
+auf-django-users-manage.py loaddata fixtures/materiel-20100128.json 
+/etc/init.d/apache2 restart
diff --git a/gestionmateriel/__init__.py b/gestionmateriel/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gestionmateriel/fixtures/materiel-20100128.json b/gestionmateriel/fixtures/materiel-20100128.json
new file mode 100644 (file)
index 0000000..c86cb4a
--- /dev/null
@@ -0,0 +1 @@
+[{"pk": 2, "model": "materiel.categorie", "fields": {"nom_categorie": "Imprimante"}}, {"pk": 5, "model": "materiel.categorie", "fields": {"nom_categorie": "Mat\u00e9riel r\u00e9seau"}}, {"pk": 3, "model": "materiel.categorie", "fields": {"nom_categorie": "Ordinateur (fixe)"}}, {"pk": 4, "model": "materiel.categorie", "fields": {"nom_categorie": "Ordinateur (portable)"}}, {"pk": 1, "model": "materiel.categorie", "fields": {"nom_categorie": "T\u00e9l\u00e9phone"}}, {"pk": 6, "model": "materiel.categorie", "fields": {"nom_categorie": "Visio-conf\u00e9rence"}}, {"pk": 51, "model": "materiel.machine", "fields": {"nom_dns_complet": "virus.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.31", "adresse_mac": "00:01:4A:84:DE:74", "categorie": 4}}, {"pk": 12, "model": "materiel.machine", "fields": {"nom_dns_complet": "movirus.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.30", "adresse_mac": "00:01:4a:84:de:74", "categorie": 4}}, {"pk": 23, "model": "materiel.machine", "fields": {"nom_dns_complet": "vandung.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.44", "adresse_mac": "00:02:44:28:3c:7c", "categorie": 3}}, {"pk": 24, "model": "materiel.machine", "fields": {"nom_dns_complet": "ngan.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.45", "adresse_mac": "00:02:44:2a:d3:03", "categorie": 3}}, {"pk": 28, "model": "materiel.machine", "fields": {"nom_dns_complet": "stagiaire1.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.51", "adresse_mac": "00:02:44:2d:d7:54", "categorie": 3}}, {"pk": 68, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-bich.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.73", "adresse_mac": "00:09:45:41:22:5d", "categorie": 1}}, {"pk": 70, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-hung.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.74", "adresse_mac": "00:09:45:41:3b:7d", "categorie": 1}}, {"pk": 69, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-hang.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.71", "adresse_mac": "00:09:45:41:3c:07", "categorie": 1}}, {"pk": 44, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-regis.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.79", "adresse_mac": "00:09:45:41:3c:33", "categorie": 1}}, {"pk": 42, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-nhung.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.81", "adresse_mac": "00:09:45:41:3c:46", "categorie": 1}}, {"pk": 38, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-yen.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.70", "adresse_mac": "00:09:45:41:3c:47", "categorie": 1}}, {"pk": 46, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-emmanuel2.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.82", "adresse_mac": "00:09:45:41:3c:9e", "categorie": 1}}, {"pk": 41, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-giang.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.69", "adresse_mac": "00:09:45:41:3c:a6", "categorie": 1}}, {"pk": 45, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-vandung.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.76", "adresse_mac": "00:09:45:41:3c:ac", "categorie": 1}}, {"pk": 43, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-ngan.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.77", "adresse_mac": "00:09:45:41:3c:ce", "categorie": 1}}, {"pk": 66, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-minh.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.69", "adresse_mac": "00:09:45:41:3d:8e", "categorie": 1}}, {"pk": 37, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-tu.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.75", "adresse_mac": "00:09:45:41:3d:dd", "categorie": 1}}, {"pk": 40, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-vananh.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.78", "adresse_mac": "00:09:45:41:3d:ea", "categorie": 1}}, {"pk": 36, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-nga.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.72", "adresse_mac": "00:09:45:41:3d:fa", "categorie": 1}}, {"pk": 13, "model": "materiel.machine", "fields": {"nom_dns_complet": "oldjc.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.33", "adresse_mac": "00:0d:61:0d:d7:06", "categorie": 3}}, {"pk": 8, "model": "materiel.machine", "fields": {"nom_dns_complet": "wifitech.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.8", "adresse_mac": "00:12:17:05:58:29", "categorie": 5}}, {"pk": 17, "model": "materiel.machine", "fields": {"nom_dns_complet": "yen.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.38", "adresse_mac": "00:13:d3:8f:80:c0", "categorie": 3}}, {"pk": 27, "model": "materiel.machine", "fields": {"nom_dns_complet": "nhung.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.49", "adresse_mac": "00:13:d3:f4:ca:b6", "categorie": 3}}, {"pk": 56, "model": "materiel.machine", "fields": {"nom_dns_complet": "giang.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.37", "adresse_mac": "00:13:d3:f4:ca:b7", "categorie": 3}}, {"pk": 60, "model": "materiel.machine", "fields": {"nom_dns_complet": "myly.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.36", "adresse_mac": "00:13:D3:F4:CA:E5", "categorie": 3}}, {"pk": 21, "model": "materiel.machine", "fields": {"nom_dns_complet": "minh.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.37", "adresse_mac": "00:13:d3:f4:cb:06", "categorie": 3}}, {"pk": 15, "model": "materiel.machine", "fields": {"nom_dns_complet": "ubutest.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.50", "adresse_mac": "00:13:d3:f4:cb:82", "categorie": 3}}, {"pk": 53, "model": "materiel.machine", "fields": {"nom_dns_complet": "hung.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.42", "adresse_mac": "00:13:d3:f4:cb:86", "categorie": 3}}, {"pk": 25, "model": "materiel.machine", "fields": {"nom_dns_complet": "vananh.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.46", "adresse_mac": "00:13:d3:f4:cb:ad", "categorie": 3}}, {"pk": 50, "model": "materiel.machine", "fields": {"nom_dns_complet": "hp4345.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.22", "adresse_mac": "00:1A:4B:1E:79:A0", "categorie": 2}}, {"pk": 54, "model": "materiel.machine", "fields": {"nom_dns_complet": "emmanuel.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.35", "adresse_mac": "00:1b:fc:70:48:68", "categorie": 3}}, {"pk": 20, "model": "materiel.machine", "fields": {"nom_dns_complet": "stephane.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.41", "adresse_mac": "00:1b:fc:72:80:07", "categorie": 3}}, {"pk": 19, "model": "materiel.machine", "fields": {"nom_dns_complet": "nga.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.40", "adresse_mac": "00:1b:fc:93:3f:cb", "categorie": 3}}, {"pk": 52, "model": "materiel.machine", "fields": {"nom_dns_complet": "huong.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.41", "adresse_mac": "00:1c:c0:3f:25:d4", "categorie": 3}}, {"pk": 26, "model": "materiel.machine", "fields": {"nom_dns_complet": "regis.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.47", "adresse_mac": "00:1c:c0:3f:26:11", "categorie": 3}}, {"pk": 57, "model": "materiel.machine", "fields": {"nom_dns_complet": "huyen.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.40", "adresse_mac": "00:1c:c0:3f:26:37", "categorie": 3}}, {"pk": 18, "model": "materiel.machine", "fields": {"nom_dns_complet": "hong.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.39", "adresse_mac": "00:1c:c0:3f:46:e9", "categorie": 3}}, {"pk": 22, "model": "materiel.machine", "fields": {"nom_dns_complet": "tu.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.43", "adresse_mac": "00:1c:c0:43:0f:3b", "categorie": 3}}, {"pk": 59, "model": "materiel.machine", "fields": {"nom_dns_complet": "hang.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.39", "adresse_mac": "00:1c:c0:43:0f:82", "categorie": 3}}, {"pk": 10, "model": "materiel.machine", "fields": {"nom_dns_complet": "hp4345.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.25", "adresse_mac": "00:1e:0b:15:cd:cd", "categorie": 2}}, {"pk": 33, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-jc.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.66", "adresse_mac": "00:1f:9f:16:da:c0", "categorie": 1}}, {"pk": 67, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-huyen.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.72", "adresse_mac": "00:1F:9F:16:DA:F5", "categorie": 1}}, {"pk": 35, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-hong.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.71", "adresse_mac": "00:1f:9f:16:da:f6", "categorie": 1}}, {"pk": 71, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-myly.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.68", "adresse_mac": "00:1f:9f:16:da:fa", "categorie": 1}}, {"pk": 64, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-olivier.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.66", "adresse_mac": "00:1F:9F:16:da:fe", "categorie": 1}}, {"pk": 72, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-my.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.70", "adresse_mac": "00:1F:9F:16:DB:02", "categorie": 1}}, {"pk": 65, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-emmanuel.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.67", "adresse_mac": "00:1f:9f:16:dd:87", "categorie": 1}}, {"pk": 39, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-stephane.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.73", "adresse_mac": "00:1f:9f:16:df:0a", "categorie": 1}}, {"pk": 34, "model": "materiel.machine", "fields": {"nom_dns_complet": "voip-ha.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.67", "adresse_mac": "00:1f:9f:16:e4:5e", "categorie": 1}}, {"pk": 11, "model": "materiel.machine", "fields": {"nom_dns_complet": "hp1515.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.26", "adresse_mac": "00:23:7d:7d:e5:24", "categorie": 2}}, {"pk": 58, "model": "materiel.machine", "fields": {"nom_dns_complet": "my.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.38", "adresse_mac": "00:24:8c:c0:70:91", "categorie": 3}}, {"pk": 29, "model": "materiel.machine", "fields": {"nom_dns_complet": "eeebox0.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.52", "adresse_mac": "00:24:8c:c0:70:c4", "categorie": 3}}, {"pk": 14, "model": "materiel.machine", "fields": {"nom_dns_complet": "jc.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.34", "adresse_mac": "00:24:8c:c0:71:30", "categorie": 3}}, {"pk": 16, "model": "materiel.machine", "fields": {"nom_dns_complet": "ha.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.35", "adresse_mac": "00:24:8c:c0:71:35", "categorie": 3}}, {"pk": 48, "model": "materiel.machine", "fields": {"nom_dns_complet": "weap1a.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.7", "adresse_mac": "00:25:9C:58:C6:E5", "categorie": 5}}, {"pk": 49, "model": "materiel.machine", "fields": {"nom_dns_complet": "weap1b.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.8", "adresse_mac": "00:25:9C:58:CA:09", "categorie": 5}}, {"pk": 55, "model": "materiel.machine", "fields": {"nom_dns_complet": "olivier.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.34", "adresse_mac": "00:90:f5:8b:87:49", "categorie": 3}}, {"pk": 77, "model": "materiel.machine", "fields": {"nom_dns_complet": "visio.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.15", "adresse_mac": "00:e0:db:03:ef:22", "categorie": 6}}, {"pk": 5, "model": "materiel.machine", "fields": {"nom_dns_complet": "visio.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.15", "adresse_mac": "00:e0:db:09:f5:83", "categorie": 6}}, {"pk": 9, "model": "materiel.machine", "fields": {"nom_dns_complet": "xerox.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.21", "adresse_mac": "08:00:37:0f:7c:a8", "categorie": 2}}, {"pk": 47, "model": "materiel.machine", "fields": {"nom_dns_complet": "iphone-stephane.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.86", "adresse_mac": "24:1B:81:68:9F:32", "categorie": 1}}, {"pk": 76, "model": "materiel.machine", "fields": {"nom_dns_complet": "iphone-stephane.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.86", "adresse_mac": "24:1B:81:68:9F:32", "categorie": 1}}, {"pk": 75, "model": "materiel.machine", "fields": {"nom_dns_complet": "iphone-emmanuel.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.85", "adresse_mac": "24:AB:81:4E:75:23", "categorie": 1}}, {"pk": 1, "model": "materiel.machine", "fields": {"nom_dns_complet": "iphone-emmanuel.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.84", "adresse_mac": "24:AB:81:4E:75:23", "categorie": 1}}, {"pk": 3, "model": "materiel.machine", "fields": {"nom_dns_complet": "iphone-olivier.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.85", "adresse_mac": "24:AB:81:4E:F5:33", "categorie": 1}}, {"pk": 74, "model": "materiel.machine", "fields": {"nom_dns_complet": "iphone-olivier.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.84", "adresse_mac": "24:AB:81:4E:F5:33", "categorie": 1}}, {"pk": 63, "model": "materiel.machine", "fields": {"nom_dns_complet": "vn1eeepc3.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.45", "adresse_mac": "48:5d:60:2b:51:f4", "categorie": 4}}, {"pk": 32, "model": "materiel.machine", "fields": {"nom_dns_complet": "vn1eeepc3.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.55", "adresse_mac": "48:5d:60:2b:51:f4", "categorie": 4}}, {"pk": 31, "model": "materiel.machine", "fields": {"nom_dns_complet": "vn1eeepc2.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.54", "adresse_mac": "48:5d:60:2b:5a:e4", "categorie": 4}}, {"pk": 62, "model": "materiel.machine", "fields": {"nom_dns_complet": "vn1eeepc2.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.44", "adresse_mac": "48:5d:60:2b:5a:e4", "categorie": 4}}, {"pk": 30, "model": "materiel.machine", "fields": {"nom_dns_complet": "vn1eeepc1.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.53", "adresse_mac": "48:5d:60:2b:64:94", "categorie": 4}}, {"pk": 61, "model": "materiel.machine", "fields": {"nom_dns_complet": "vn1eeepc1.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.43", "adresse_mac": "48:5d:60:2b:64:94", "categorie": 4}}, {"pk": 73, "model": "materiel.machine", "fields": {"nom_dns_complet": "iphone-jc.bap1.vn.auf", "emplacement": "BAP1", "adresse_ip": "10.230.1.83", "adresse_mac": "7C:C5:37:EA:CA:75", "categorie": 1}}, {"pk": 2, "model": "materiel.machine", "fields": {"nom_dns_complet": "iphone-jc.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.83", "adresse_mac": "7C:C5:37:EA:CA:75", "categorie": 1}}, {"pk": 6, "model": "materiel.machine", "fields": {"nom_dns_complet": "wificb.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.6", "adresse_mac": "99:99:99:99:99:00", "categorie": 5}}, {"pk": 7, "model": "materiel.machine", "fields": {"nom_dns_complet": "wififuf.bap2.vn.auf", "emplacement": "BAP2", "adresse_ip": "10.230.2.7", "adresse_mac": "99:99:99:99:99:01", "categorie": 5}}, {"pk": 4, "model": "materiel.machine", "fields": {"nom_dns_complet": "test1", "emplacement": "test", "adresse_ip": "10.230.2.91", "adresse_mac": "99:99:99:99:99:99", "categorie": 3}}]
diff --git a/gestionmateriel/manage.py b/gestionmateriel/manage.py
new file mode 100755 (executable)
index 0000000..bcdd55e
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/python
+from django.core.management import execute_manager
+try:
+    import settings # Assumed to be in the same directory.
+except ImportError:
+    import sys
+    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
+    sys.exit(1)
+
+if __name__ == "__main__":
+    execute_manager(settings)
diff --git a/gestionmateriel/materiel/__init__.py b/gestionmateriel/materiel/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gestionmateriel/materiel/admin.py b/gestionmateriel/materiel/admin.py
new file mode 100644 (file)
index 0000000..da7f28c
--- /dev/null
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from django.contrib import admin
+from django import forms
+from models import *
+
+class MyMachineAdminForm(forms.ModelForm):
+    class Meta:
+        model = Machine
+
+    def clean_adresse_mac(self):
+        return self.cleaned_data['adresse_mac'].lower()
+
+class MachineAdmin(admin.ModelAdmin):
+    form = MyMachineAdminForm
+    list_display = ['nom_dns_complet', 'adresse_ip', 'adresse_mac', 'categorie', 'emplacement']
+    list_filter = ['emplacement', 'categorie']
+
+admin.site.register(Categorie)
+admin.site.register(Machine, MachineAdmin)
diff --git a/gestionmateriel/materiel/models.py b/gestionmateriel/materiel/models.py
new file mode 100644 (file)
index 0000000..4dbec02
--- /dev/null
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+from django.db import models
+
+class Categorie(models.Model):
+    nom_categorie = models.CharField("Nom de catégorie", max_length=32)
+
+    def __unicode__(self):
+       return u'%s' % (self.nom_categorie,)
+
+    class Meta:
+        ordering = ['nom_categorie']
+
+class Machine(models.Model):
+    adresse_mac = models.CharField("Adresse MAC", max_length=17)
+    adresse_ip = models.IPAddressField("Adresse IP", unique=True)
+    nom_dns_complet = models.CharField("Nom DNS complet", max_length=64, unique=True)
+    emplacement = models.CharField("Emplacement", max_length=16)
+    categorie = models.ForeignKey(Categorie)
+
+    def numero_machine(self):
+        return self.adresse_ip.split('.')[3] # découper et prendre le 4ème
+
+    def reseau_ip_inverse(self):
+        l = self.adresse_ip.split('.')[:3] # découper et prendre les 3 premiers
+        l.reverse() # inverser l'ordre
+        return '.'.join(l) # relier ensemble avec le point (.)
+
+    def nom_machine(self):
+        return self.nom_dns_complet.split('.',1)[0]
+
+    def domaine_dns(self):
+        return self.nom_dns_complet.split('.',1)[1]
+
+    def is_st2030(self):
+        return "ST2030" in str(self.categorie)
+
+    def __unicode__(self):
+        return u'%s' % (self.nom_dns_complet,)
+
+    class Meta:
+        ordering = ['adresse_mac']
+
diff --git a/gestionmateriel/materiel/templates/fichier_dhcpd.txt b/gestionmateriel/materiel/templates/fichier_dhcpd.txt
new file mode 100644 (file)
index 0000000..ac9441c
--- /dev/null
@@ -0,0 +1,5 @@
+# Fichier: /etc/dhcp3/dhcpd.conf
+# Généré automatiquement depuis l'application "materiel",
+# ne pas éditer manuellement !
+{% for o in object_list %}host {{ o.nom_machine }}     { hardware ethernet {{ o.adresse_mac }}; fixed-address {{ o.nom_dns_complet }};{% if o.is_st2030 %} option st2030-http "http://10.230.2.10/provisioning/ST2030.inf";{% endif %} }
+{% endfor %}
diff --git a/gestionmateriel/materiel/templates/fichier_dns-inverse.txt b/gestionmateriel/materiel/templates/fichier_dns-inverse.txt
new file mode 100644 (file)
index 0000000..779dd32
--- /dev/null
@@ -0,0 +1,5 @@
+; Fichier: /etc/bind/db.numero.reseau.inverse
+; Généré automatiquement depuis l'application "materiel",
+; ne pas éditer manuellement !
+{% for o in object_list %}{{ o.numero_machine }}       PTR {{ o.nom_dns_complet }}.
+{% endfor %}
diff --git a/gestionmateriel/materiel/templates/fichier_dns.txt b/gestionmateriel/materiel/templates/fichier_dns.txt
new file mode 100644 (file)
index 0000000..835195f
--- /dev/null
@@ -0,0 +1,5 @@
+; Fichier: /etc/bind/db.domaine.dns
+; Généré automatiquement depuis l'application "materiel",
+; ne pas éditer manuellement !
+{% for o in object_list %}{{ o.nom_machine }}  A {{ o.adresse_ip }}
+{% endfor %}
diff --git a/gestionmateriel/materiel/templates/fichier_ethers.txt b/gestionmateriel/materiel/templates/fichier_ethers.txt
new file mode 100644 (file)
index 0000000..4740a25
--- /dev/null
@@ -0,0 +1,5 @@
+# Fichier: /etc/ethers
+# Généré automatiquement depuis l'application "materiel",
+# ne pas éditer manuellement !
+{% for o in object_list %}{{ o.adresse_mac }}  {{ o.nom_machine }}
+{% endfor %}
diff --git a/gestionmateriel/materiel/templates/machine_list.html b/gestionmateriel/materiel/templates/machine_list.html
new file mode 100644 (file)
index 0000000..f2c1374
--- /dev/null
@@ -0,0 +1,19 @@
+<h2>Machines</h2>
+<table border="1" cellpadding="2">
+<tr>
+ <th>Nom DNS complet</th>
+ <th>Adresse IP</th>
+ <th>Adresse MAC</th>
+ <th>Catégorie</th>
+ <th>Emplacement</th>
+</tr>
+{% for machine in object_list %}
+<tr>
+ <td>{{ machine.nom_dns_complet }}</td>
+ <td>{{ machine.adresse_ip }}</td>
+ <td>{{ machine.adresse_mac }}</td>
+ <td>{{ machine.categorie }}</td>
+ <td>{{ machine.emplacement }}</td>
+</tr>
+{% endfor %}
+</table>
diff --git a/gestionmateriel/materiel/urls.py b/gestionmateriel/materiel/urls.py
new file mode 100644 (file)
index 0000000..0ffef81
--- /dev/null
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+from django.conf.urls.defaults import *
+from django.views.generic.list_detail import object_list
+from models import Machine
+from views import export_fichier
+
+urlpatterns = patterns('',
+    (r'^$', object_list, {'queryset': Machine.objects.all()}),
+    (r'^fichier/(?P<fichier>[\w-]+)$', export_fichier),
+    (r'^emplacement/(?P<emplacement>\w+)/(?P<fichier>[\w-]+)$', export_fichier),
+)
diff --git a/gestionmateriel/materiel/views.py b/gestionmateriel/materiel/views.py
new file mode 100644 (file)
index 0000000..b0e8683
--- /dev/null
@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+from django.views.generic.list_detail import object_list
+from models import Machine
+
+def export_fichier(request, fichier, emplacement=None):
+    if emplacement is not None:
+        queryset = Machine.objects.filter(emplacement=emplacement)
+    else:
+        queryset = Machine.objects.all()
+    return object_list(
+        request,
+        queryset=queryset,
+        template_name="materiel/fichier_%s.txt" % fichier,
+        mimetype="text/plain; charset=utf-8"
+    )
diff --git a/gestionmateriel/settings.py b/gestionmateriel/settings.py
new file mode 100644 (file)
index 0000000..12152c4
--- /dev/null
@@ -0,0 +1,83 @@
+# Django settings for gestionmateriel project.
+import os
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+    # ('Your Name', 'your_email@domain.com'),
+)
+
+MANAGERS = ADMINS
+
+DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = '/tmp/materiel.db'             # Or path to database file if using sqlite3.
+DATABASE_USER = ''             # Not used with sqlite3.
+DATABASE_PASSWORD = ''         # Not used with sqlite3.
+DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
+DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'Asia/Ho_Chi_Minh'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'fr-fr'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash if there is a path component (optional in other cases).
+# Examples: "http://media.lawrence.com", "http://example.com/media/"
+MEDIA_URL = ''
+
+# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
+# trailing slash.
+# Examples: "http://foo.com/media/", "/media/".
+ADMIN_MEDIA_PREFIX = '/media/'
+
+# Make this unique, and don't share it with anybody.
+SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.load_template_source',
+    'django.template.loaders.app_directories.load_template_source',
+#     'django.template.loaders.eggs.load_template_source',
+)
+
+MIDDLEWARE_CLASSES = (
+    'django.middleware.common.CommonMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+)
+
+ROOT_URLCONF = 'gestionmateriel.urls'
+
+TEMPLATE_DIRS = (
+    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+    os.path.join(os.path.dirname(__file__), 'templates'),
+)
+
+INSTALLED_APPS = (
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.sites',
+    'django.contrib.admin', 
+    'gestionmateriel.materiel', 
+)
diff --git a/gestionmateriel/templates/materiel b/gestionmateriel/templates/materiel
new file mode 120000 (symlink)
index 0000000..24cb02f
--- /dev/null
@@ -0,0 +1 @@
+../materiel/templates
\ No newline at end of file
diff --git a/gestionmateriel/urls.py b/gestionmateriel/urls.py
new file mode 100644 (file)
index 0000000..2f4cf6d
--- /dev/null
@@ -0,0 +1,20 @@
+#from django.conf import settings
+from django.conf.urls.defaults import *
+from django.views.generic.simple import direct_to_template, redirect_to
+
+# Uncomment the next two lines to enable the admin:
+from django.contrib import admin
+admin.autodiscover()
+
+urlpatterns = patterns('',
+    #(r'^$', direct_to_template, {'template': 'index.html'}),
+    (r'^$', redirect_to, {'url': '/materiel/'}),
+    (r'^materiel/', include('materiel.urls')),
+
+    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
+    # to INSTALLED_APPS to enable admin documentation:
+    (r'^admin/doc/', include('django.contrib.admindocs.urls')),
+
+    # Uncomment the next line to enable the admin:
+    (r'^admin/(.*)', admin.site.root),
+)