55
66
77class City (TimeStampedModel ):
8- slug = models .CharField (max_length = 255 , db_index = True , null = False , blank = False )
9- name = models .CharField (max_length = 255 , db_index = True , null = False , blank = False )
10- country = models .CharField (max_length = 255 , db_index = True , null = False , blank = False )
11- location = models .CharField (max_length = 255 , db_index = True , null = False , blank = False )
12- latitude = models .DecimalField (max_digits = 14 , decimal_places = 11 , null = True , blank = True )
13- longitude = models .DecimalField (max_digits = 14 , decimal_places = 11 , null = True , blank = True )
8+ slug = models .CharField (
9+ max_length = 255 , db_index = True , null = False , blank = False )
10+ name = models .CharField (
11+ max_length = 255 , db_index = True , null = False , blank = False )
12+ country = models .CharField (
13+ max_length = 255 , db_index = True , null = False , blank = False )
14+ location = models .CharField (
15+ max_length = 255 , db_index = True , null = False , blank = False )
16+ latitude = models .DecimalField (
17+ max_digits = 14 , decimal_places = 11 , null = True , blank = True )
18+ longitude = models .DecimalField (
19+ max_digits = 14 , decimal_places = 11 , null = True , blank = True )
1420
1521 class Meta :
1622 verbose_name_plural = "Cities"
@@ -20,36 +26,6 @@ def save(self, *args, **kwargs):
2026 return super (City , self ).save (* args , ** kwargs )
2127
2228
23- class SensorDataStat (TimeStampedModel ):
24- node = models .ForeignKey (Node )
25- sensor = models .ForeignKey (Sensor )
26- location = models .ForeignKey (SensorLocation )
27-
28- city_slug = models .CharField (max_length = 255 , db_index = True , null = False , blank = False )
29- value_type = models .CharField (max_length = 255 , db_index = True , null = False , blank = False )
30-
31- average = models .FloatField (null = False , blank = False )
32- maximum = models .FloatField (null = False , blank = False )
33- minimum = models .FloatField (null = False , blank = False )
34-
35- # Number of data points averaged
36- sample_size = models .IntegerField (null = False , blank = False )
37- # Last datetime of calculated stats
38- last_datetime = models .DateTimeField ()
39-
40- timestamp = models .DateTimeField ()
41-
42- def __str__ (self ):
43- return "%s %s %s avg=%s min=%s max=%s" % (
44- self .timestamp ,
45- self .city_slug ,
46- self .value_type ,
47- self .average ,
48- self .minimum ,
49- self .maximum ,
50- )
51-
52-
5329class LastActiveNodes (TimeStampedModel ):
5430 node = models .ForeignKey (Node )
5531 location = models .ForeignKey (SensorLocation )
0 commit comments