summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xreports/brpt/importscript.py12
-rw-r--r--reports/brpt/reports/models.py13
-rw-r--r--reports/brpt/reports/templatetags/django_templating_sigh.py1
-rw-r--r--reports/brpt/reports/views.py4
4 files changed, 20 insertions, 10 deletions
diff --git a/reports/brpt/importscript.py b/reports/brpt/importscript.py
index 9122e7846..585018f0e 100755
--- a/reports/brpt/importscript.py
+++ b/reports/brpt/importscript.py
@@ -64,6 +64,8 @@ if __name__ == '__main__':
for node in statsdata.findall('Node'):
#if client_rec.name == node.get('name'):
(client_rec, cr_created) = Client.objects.get_or_create(name=node.get('name'), defaults={'name': node.get('name'), 'creation': datetime.now()})
+# if cr_created:
+# client_rec.save()
for statistics in node.findall('Statistics'):
t = strptime(statistics.get('time'))
(interaction_rec, ir_created) = Interaction.objects.get_or_create(client=client_rec.id,timestamp=datetime(t[0],t[1],t[2],t[3],t[4],t[5]),
@@ -74,6 +76,8 @@ if __name__ == '__main__':
'client_version':statistics.get('client_version'),
'goodcount':statistics.get('good', default="unknown"),
'totalcount':statistics.get('total', default="unknown")})
+# if ir_created:
+# interaction_rec.save()
for bad in statistics.findall('Bad'):
for ele in bad.getchildren():
(ele_rec, er_created) = Bad.objects.get_or_create(name=ele.get('name'), kind=ele.tag,
@@ -81,6 +85,9 @@ if __name__ == '__main__':
'kind':ele.tag,
'problemcode':'',
'reason':'Unknown'})
+# if er_created:
+# ele_rec.save()
+
if not ele_rec in interaction_rec.bad_items.all():
interaction_rec.bad_items.add(ele_rec)
@@ -91,6 +98,8 @@ if __name__ == '__main__':
'kind':ele.tag,
'problemcode':'',
'reason':'Unknown'})
+ # if er_created:
+ # ele_rec.save()
if not ele_rec in interaction_rec.modified_items.all():
interaction_rec.modified_items.add(ele_rec)
@@ -101,6 +110,9 @@ if __name__ == '__main__':
'kind':ele.tag,
'problemcode':'',
'reason':'Unknown'})
+ # if er_created:
+ # ele_rec.save()
+
if not ele_rec in interaction_rec.extra_items.all():
interaction_rec.extra_items.add(ele_rec)
diff --git a/reports/brpt/reports/models.py b/reports/brpt/reports/models.py
index 2960a9669..23ad65045 100644
--- a/reports/brpt/reports/models.py
+++ b/reports/brpt/reports/models.py
@@ -34,7 +34,7 @@ class Client(models.Model):
#This exists for clients that are no longer in the repository even! (timeless)
creation = models.DateTimeField()
name = models.CharField(maxlength=128, core=True)
- current_interaction = models.ForeignKey('Interaction')
+ current_interaction = models.ForeignKey('Interaction', null=True,blank=True, related_name="parent_client")
def __str__(self):
return self.name
@@ -99,7 +99,7 @@ class Interaction(models.Model):
return False
def isstale(self):
- if (self == self.client.interactions.latest('timestamp')):#Is Mostrecent
+ if (self == self.client.current_interaction):#Is Mostrecent
if(datetime.now()-self.timestamp > timedelta(hours=25) ):
return True
else:
@@ -112,11 +112,10 @@ class Interaction(models.Model):
return True
else:
return False
- def _post_save(self):
- self.client.latest_interaction = self.client.interactions.latest()
- self.client.save()
- #do i need to save the self.client manually?
-
+ def save(self):
+ super(Interaction,self).save() #call the real save...
+ self.client.current_interaction = self.client.interactions.latest()
+ self.client.save()#do i need to save the self.client manually?
objects = InteractiveManager()
diff --git a/reports/brpt/reports/templatetags/django_templating_sigh.py b/reports/brpt/reports/templatetags/django_templating_sigh.py
index 321881891..2d5f76e06 100644
--- a/reports/brpt/reports/templatetags/django_templating_sigh.py
+++ b/reports/brpt/reports/templatetags/django_templating_sigh.py
@@ -18,7 +18,6 @@ class SetInteraction(template.Node):
def __init__(self, times):
self.times = times#do soemthing to select different interaction with host
def render(self, context):
- #context['interaction'] = context['client'].interactions.latest('timestamp')
context['interaction'] = context['client_interaction_dict'][context['client'].id]
return ''
diff --git a/reports/brpt/reports/views.py b/reports/brpt/reports/views.py
index 40a1323dd..6dbc86c82 100644
--- a/reports/brpt/reports/views.py
+++ b/reports/brpt/reports/views.py
@@ -18,7 +18,7 @@ def client_detail(request, hostname = -1, pk = -1):
#SETUP error pages for when you specify a client or interaction that doesn't exist
client = get_object_or_404(Client, name=hostname)
if(pk == -1):
- interaction = client.interactions.latest('timestamp')
+ interaction = client.current_interaction
else:
interaction = client.interactions.get(pk=pk)
@@ -55,7 +55,7 @@ def display_timing(request):
#performance_items = client.interactions.latest().performance_items.all()#allow this to be selectable(hist)
d = {}
#[d.update({x:y}) for x,y in [a.values() for a in client.interactions.latest().performance_items.all().values('metric','value')]]
- [d.update({x["metric"]:x["value"]}) for x in client.interactions.latest().performance_items.all().values('metric','value')]
+ [d.update({x["metric"]:x["value"]}) for x in client.current_interaction.performance_items.all().values('metric','value')]
dict_unit = {}
try: