Skip to content

Commit

Permalink
Merge pull request #388 from wettenhj/facility-overview-verifications
Browse files Browse the repository at this point in the history
Facility overview now shows verification status of datafiles.
  • Loading branch information
grischa committed Feb 19, 2015
2 parents de5441a + 956d69c commit 62136cc
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 11 deletions.
8 changes: 7 additions & 1 deletion tardis/tardis_portal/models/datafile.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,8 @@ def _has_delete_perm(self, user_obj):

@property
def verified(self):
return all([obj.verified for obj in self.file_objects.all()])
return all([obj.verified for obj in self.file_objects.all()]) \
and len(self.file_objects.all()) > 0

def verify(self, reverify=False):
return all([obj.verify() for obj in self.file_objects.all()
Expand Down Expand Up @@ -361,6 +362,11 @@ def file_object(self, file_object):
.save(self._get_identifier(), file_object)
self.save()

@property
def size(self):
return self.storage_box.get_initialised_storage_instance().size(
self._get_identifier())

def delete(self):
super(DataFileObject, self).delete()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,15 @@ <h2>Latest {{selectedFacilityName}} datasets</h2>
<i class="icon-list-alt"></i>
<span ng-hide="isFileListVisible(dataset.id)">Show</span><span
ng-show="isFileListVisible(dataset.id)">Hide</span> file list
</a> <span class="badge" ng-class="(!dataset.datafiles.length)?'badge-important':''"><ng-pluralize
count="dataset.datafiles.length"
when="{'0': 'no files', 'one': '1 file', 'other': '{} files'}"></ng-pluralize> / {{dataset.size | filesize}}</span>
</a> <span class="badge" ng-class="(dataset.verified_datafiles_count<dataset.datafiles.length||!dataset.datafiles.length)?'badge-important':''">
<ng-pluralize count="dataset.verified_datafiles_count"
when="{'0': 'no verified files', 'one': '1 verified file', 'other': '{} verified files'}"></ng-pluralize>
({{dataset.verified_datafiles_size | filesize}})
/
<ng-pluralize count="dataset.datafiles.length"
when="{'0': 'no files', 'one': '1 file', 'other': '{} files'}"></ng-pluralize>
({{dataset.size | filesize}})
</span>
</td>
</tr>
<tr ng-repeat-end ng-show="isFileListVisible(dataset.id)">
Expand All @@ -131,6 +137,7 @@ <h2>Latest {{selectedFacilityName}} datasets</h2>
<th>File name</th>
<th>Size</th>
<th>Created</th>
<th>Verified?</th>
</tr>
<tr ng-repeat="file in dataset.datafiles">
<td>{{file.filename}}</td>
Expand All @@ -139,6 +146,7 @@ <h2>Latest {{selectedFacilityName}} datasets</h2>
<span ng-show="file.created_time">{{file.created_time | date:'yyyy-MM-dd h:mma'}}</span>
<span ng-hide="file.created_time">unknown</span>
</td>
<td>{{file.verified}}</td>
</tr>
</table>
</td>
Expand Down Expand Up @@ -170,9 +178,15 @@ <h2>Latest {{selectedFacilityName}} datasets by instrument</h2>
<i class="icon-list-alt"></i>
<span ng-hide="isFileListVisible(dataset.id)">Show</span><span
ng-show="isFileListVisible(dataset.id)">Hide</span> file list
</a> <span class="badge" ng-class="(!dataset.datafiles.length)?'badge-important':''"><ng-pluralize
count="dataset.datafiles.length"
when="{'0': 'no files', 'one': '1 file', 'other': '{} files'}"></ng-pluralize> / {{dataset.size | filesize}}</span>
</a> <span class="badge" ng-class="(dataset.verified_datafiles_count<dataset.datafiles.length||!dataset.datafiles.length)?'badge-important':''">
<ng-pluralize count="dataset.verified_datafiles_count"
when="{'0': 'no verified files', 'one': '1 verified file', 'other': '{} verified files'}"></ng-pluralize>
({{dataset.verified_datafiles_size | filesize}})
/
<ng-pluralize count="dataset.datafiles.length"
when="{'0': 'no files', 'one': '1 file', 'other': '{} files'}"></ng-pluralize>
({{dataset.size | filesize}})
</span>
</td>
</tr>
<tr ng-repeat-end ng-show="isFileListVisible(dataset.id)">
Expand All @@ -182,6 +196,7 @@ <h2>Latest {{selectedFacilityName}} datasets by instrument</h2>
<th>File name</th>
<th>Size</th>
<th>Created</th>
<th>Verified?</th>
</tr>
<tr ng-repeat="file in dataset.datafiles">
<td>{{file.filename}}</td>
Expand All @@ -190,6 +205,7 @@ <h2>Latest {{selectedFacilityName}} datasets by instrument</h2>
<span ng-show="file.created_time">{{file.created_time | date:'yyyy-MM-dd h:mma'}}</span>
<span ng-hide="file.created_time">unknown</span>
</td>
<td>{{file.verified}}</td>
</tr>
</table>
</td>
Expand Down Expand Up @@ -221,9 +237,15 @@ <h2>Latest {{selectedFacilityName}} datasets by user</h2>
<i class="icon-list-alt"></i>
<span ng-hide="isFileListVisible(dataset.id)">Show</span><span
ng-show="isFileListVisible(dataset.id)">Hide</span> file list
</a> <span class="badge" ng-class="(!dataset.datafiles.length)?'badge-important':''"><ng-pluralize
count="dataset.datafiles.length"
when="{'0': 'no files', 'one': '1 file', 'other': '{} files'}"></ng-pluralize> / {{dataset.size | filesize}}</span>
</a> <span class="badge" ng-class="(dataset.verified_datafiles_count<dataset.datafiles.length||!dataset.datafiles.length)?'badge-important':''">
<ng-pluralize count="dataset.verified_datafiles_count"
when="{'0': 'no verified files', 'one': '1 verified file', 'other': '{} verified files'}"></ng-pluralize>
({{dataset.verified_datafiles_size | filesize}})
/
<ng-pluralize count="dataset.datafiles.length"
when="{'0': 'no files', 'one': '1 file', 'other': '{} files'}"></ng-pluralize>
({{dataset.size | filesize}})
</span>
</td>
</tr>
<tr ng-repeat-end ng-show="isFileListVisible(dataset.id)">
Expand All @@ -233,6 +255,7 @@ <h2>Latest {{selectedFacilityName}} datasets by user</h2>
<th>File name</th>
<th>Size</th>
<th>Created</th>
<th>Verified?</th>
</tr>
<tr ng-repeat="file in dataset.datafiles">
<td>{{file.filename}}</td>
Expand All @@ -241,6 +264,7 @@ <h2>Latest {{selectedFacilityName}} datasets by user</h2>
<span ng-show="file.created_time">{{file.created_time | date:'yyyy-MM-dd h:mma'}}</span>
<span ng-hide="file.created_time">unknown</span>
</td>
<td>{{file.verified}}</td>
</tr>
</table>
</td>
Expand Down
24 changes: 23 additions & 1 deletion tardis/tardis_portal/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -425,13 +425,33 @@ def datetime_to_us(dt):
owners = parent_experiment.get_owners()
datafiles = []
dataset_size = 0
verified_datafiles_count = 0
verified_datafiles_size = 0
for datafile in datafile_objects:
if datafile.verified:
verified = "Yes"
verified_datafiles_count += 1
verified_datafiles_size += int(datafile.size)
else:
verified = "No"
try:
file_object_size = \
datafile.file_object.size \
if datafile.file_object else 0
if file_object_size < int(datafile.size):
verified = "No (%s of %s bytes uploaded)" \
% ('{:,}'.format(file_object_size),
'{:,}'.format(int(datafile.size)))
except IOError, e:
verified = "No (0 of %s bytes uploaded)" \
% '{:,}'.format(int(datafile.size))
datafiles.append({
"id": datafile.id,
"filename": datafile.filename,
"size": int(datafile.size),
"created_time": datetime_to_us(datafile.created_time),
"modification_time": datetime_to_us(datafile.modification_time)
"modification_time": datetime_to_us(datafile.modification_time),
"verified": verified,
})
dataset_size = dataset_size + int(datafile.size)
obj = {
Expand All @@ -445,6 +465,8 @@ def datetime_to_us(dt):
"institution": parent_experiment.institution_name,
"datafiles": datafiles,
"size": dataset_size,
"verified_datafiles_count": verified_datafiles_count,
"verified_datafiles_size": verified_datafiles_size,
"owner": ', '.join([o.username for o in owners]),
"instrument": {
"id": instrument.id,
Expand Down

0 comments on commit 62136cc

Please sign in to comment.