Skip to content

Commit 55b7821

Browse files
committed
Merge pull request tobami#120 from a8/add_benchmark_hierarchy
Add benchmark hierarchy in model
2 parents afb518c + 3c67485 commit 55b7821

2 files changed

Lines changed: 114 additions & 0 deletions

File tree

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# -*- coding: utf-8 -*-
2+
import datetime
3+
from south.db import db
4+
from south.v2 import SchemaMigration
5+
from django.db import models
6+
7+
8+
class Migration(SchemaMigration):
9+
10+
def forwards(self, orm):
11+
# Adding field 'Benchmark.parent'
12+
db.add_column('codespeed_benchmark', 'parent',
13+
self.gf('django.db.models.fields.related.ForeignKey')(default=None, to=orm['codespeed.Benchmark'], null=True),
14+
keep_default=False)
15+
16+
# Adding field 'Project.commit_browsing_url'
17+
db.add_column('codespeed_project', 'commit_browsing_url',
18+
self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True),
19+
keep_default=False)
20+
21+
22+
def backwards(self, orm):
23+
# Deleting field 'Benchmark.parent'
24+
db.delete_column('codespeed_benchmark', 'parent_id')
25+
26+
# Deleting field 'Project.commit_browsing_url'
27+
db.delete_column('codespeed_project', 'commit_browsing_url')
28+
29+
30+
models = {
31+
'codespeed.benchmark': {
32+
'Meta': {'object_name': 'Benchmark'},
33+
'benchmark_type': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '1'}),
34+
'default_on_comparison': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
35+
'description': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
36+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
37+
'lessisbetter': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
38+
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),
39+
'parent': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['codespeed.Benchmark']", 'null': 'True'}),
40+
'units': ('django.db.models.fields.CharField', [], {'default': "'seconds'", 'max_length': '20'}),
41+
'units_title': ('django.db.models.fields.CharField', [], {'default': "'Time'", 'max_length': '30'})
42+
},
43+
'codespeed.branch': {
44+
'Meta': {'unique_together': "(('name', 'project'),)", 'object_name': 'Branch'},
45+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
46+
'name': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
47+
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'branches'", 'to': "orm['codespeed.Project']"})
48+
},
49+
'codespeed.environment': {
50+
'Meta': {'object_name': 'Environment'},
51+
'cpu': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
52+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
53+
'kernel': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
54+
'memory': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
55+
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),
56+
'os': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'})
57+
},
58+
'codespeed.executable': {
59+
'Meta': {'unique_together': "(('name', 'project'),)", 'object_name': 'Executable'},
60+
'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
61+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
62+
'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
63+
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'executables'", 'to': "orm['codespeed.Project']"})
64+
},
65+
'codespeed.project': {
66+
'Meta': {'object_name': 'Project'},
67+
'commit_browsing_url': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
68+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
69+
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),
70+
'repo_pass': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
71+
'repo_path': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
72+
'repo_type': ('django.db.models.fields.CharField', [], {'default': "'N'", 'max_length': '1'}),
73+
'repo_user': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
74+
'track': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
75+
},
76+
'codespeed.report': {
77+
'Meta': {'unique_together': "(('revision', 'executable', 'environment'),)", 'object_name': 'Report'},
78+
'_tablecache': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
79+
'colorcode': ('django.db.models.fields.CharField', [], {'default': "'none'", 'max_length': '10'}),
80+
'environment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reports'", 'to': "orm['codespeed.Environment']"}),
81+
'executable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reports'", 'to': "orm['codespeed.Executable']"}),
82+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
83+
'revision': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reports'", 'to': "orm['codespeed.Revision']"}),
84+
'summary': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'})
85+
},
86+
'codespeed.result': {
87+
'Meta': {'unique_together': "(('revision', 'executable', 'benchmark', 'environment'),)", 'object_name': 'Result'},
88+
'benchmark': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'results'", 'to': "orm['codespeed.Benchmark']"}),
89+
'date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
90+
'environment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'results'", 'to': "orm['codespeed.Environment']"}),
91+
'executable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'results'", 'to': "orm['codespeed.Executable']"}),
92+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
93+
'revision': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'results'", 'to': "orm['codespeed.Revision']"}),
94+
'std_dev': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
95+
'val_max': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
96+
'val_min': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
97+
'value': ('django.db.models.fields.FloatField', [], {})
98+
},
99+
'codespeed.revision': {
100+
'Meta': {'unique_together': "(('commitid', 'branch'),)", 'object_name': 'Revision'},
101+
'author': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
102+
'branch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['codespeed.Branch']"}),
103+
'commitid': ('django.db.models.fields.CharField', [], {'max_length': '42'}),
104+
'date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
105+
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
106+
'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
107+
'project': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'revisions'", 'null': 'True', 'to': "orm['codespeed.Project']"}),
108+
'tag': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'})
109+
}
110+
}
111+
112+
complete_apps = ['codespeed']

codespeed/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ class Benchmark(models.Model):
132132
)
133133

134134
name = models.CharField(unique=True, max_length=30)
135+
parent = models.ForeignKey('self', verbose_name="parent",
136+
help_text="allows to group benchmarks in hierarchies", null=True, default=None)
135137
benchmark_type = models.CharField(max_length=1, choices=B_TYPES, default='C')
136138
description = models.CharField(max_length=300, blank=True)
137139
units_title = models.CharField(max_length=30, default='Time')

0 commit comments

Comments
 (0)