diff --git a/helios/datatypes/__init__.py b/helios/datatypes/__init__.py index cee651e4e14c103426a15385ad9f00221e12c6ac..2a641e68095db4fddbdb3a10fe1f9458aaedfa13 100644 --- a/helios/datatypes/__init__.py +++ b/helios/datatypes/__init__.py @@ -80,8 +80,8 @@ class LDObjectContainer(object): return self._ld_object - def toJSONDict(self): - return self.ld_object.toJSONDict() + def toJSONDict(self, complete=False): + return self.ld_object.toJSONDict(complete=complete) def toJSON(self): return self.ld_object.serialize() @@ -177,12 +177,10 @@ class LDObject(object): self._setattr_wrapped(f, new_val) def serialize(self): - d = self.toDict() - if self.USE_JSON_LD: - d['#'] = {'_': 'http://heliosvoting.org/ns#'} + d = self.toDict(complete = True) return utils.to_json(d) - def toDict(self, alternate_fields=None): + def toDict(self, alternate_fields=None, complete=False): val = {} for f in (alternate_fields or self.FIELDS): # is it a structured subfield? @@ -190,6 +188,10 @@ class LDObject(object): val[f] = recursiveToDict(self.structured_fields[f]) else: val[f] = self.process_value_out(f, self._getattr_wrapped(f)) + + if complete and self.USE_JSON_LD: + val['#'] = {'_': 'http://heliosvoting.org/ns#'} + return val toJSONDict = toDict diff --git a/helios/models.py b/helios/models.py index 54aa59e9ba8cbf4b410ba3fdb9f001fd9bf3085e..084d585ad0674114450019e91db5b8ded5da1868 100644 --- a/helios/models.py +++ b/helios/models.py @@ -26,11 +26,6 @@ from helios.datatypes.djangofield import LDObjectField import csv, copy -# global counters -GLOBAL_COUNTER_VOTERS = 'global_counter_voters' -GLOBAL_COUNTER_CAST_VOTES = 'global_counter_cast_votes' -GLOBAL_COUNTER_ELECTIONS = 'global_counter_elections' - class HeliosModel(models.Model, datatypes.LDObjectContainer): class Meta: abstract = True diff --git a/helios/views.py b/helios/views.py index 3a4f1d606916b23130aa49e24623d5afbabbe756..fe5154299d1219a22146235441bddc473dff6b51 100644 --- a/helios/views.py +++ b/helios/views.py @@ -214,7 +214,7 @@ def one_election_schedule(request, election): def one_election(request, election): if not election: raise Http404 - return datatypes.LDObject.instantiate(election, datatype='legacy/Election') + return election.toJSONDict(complete=True) @election_view() def election_badge(request, election):