diff options
Diffstat (limited to 'chimere/models.py')
| -rw-r--r-- | chimere/models.py | 53 | 
1 files changed, 36 insertions, 17 deletions
| diff --git a/chimere/models.py b/chimere/models.py index 755d43c..a37a548 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -193,6 +193,7 @@ class Category(models.Model):          ordering = ["order"]          verbose_name = _(u"Category") +  class Icon(models.Model):      '''Icon      ''' @@ -201,11 +202,18 @@ class Icon(models.Model):                                height_field='height', width_field='width')      height = models.IntegerField(_(u"Height"))      width = models.IntegerField(_(u"Width")) +    offset_x = models.IntegerField(_(u"Offset x"), default=10) +    offset_y = models.IntegerField(_(u"Offset y"), default=20) +    popup_offset_x = models.IntegerField(_(u"Popup offset x"), default=5) +    popup_offset_y = models.IntegerField(_(u"Popup offset y"), default=20) +      def __unicode__(self):          return self.name +      class Meta:          verbose_name = _(u"Icon") +  class SubCategory(models.Model):      '''Sub-category      ''' @@ -285,15 +293,20 @@ class SubCategory(models.Model):          return cats      def getJSONDict(self): -        items = {'id':self.pk, 'name':self.name, -                 'description':self.description if self.description\ -                               else '', -                 'icon':{'url':self.icon.image.url, -                         'width':self.icon.image.width, -                         'height':self.icon.image.height} -                } +        items = {'id': self.pk, 'name': self.name, +                 'description': self.description if self.description +                                else '', +                 'icon': {'url': self.icon.image.url, +                          'width': self.icon.image.width, +                          'height': self.icon.image.height, +                          'offset_x': self.icon.offset_x, +                          'offset_y': self.icon.offset_y, +                          'popup_offset_x': self.icon.popup_offset_x, +                          'popup_offset_y': self.icon.popup_offset_y} +                          } +          if self.hover_icon: -            items['icon_hover'] = {'url':self.hover_icon.image.url} +            items['icon_hover'] = {'url': self.hover_icon.image.url}          return items      def getJSON(self, categories_id=[]): @@ -698,22 +711,28 @@ class Marker(GeographicItem):          '''Return a GeoJSON string          '''          jsons = [] -        json_tpl = {"type":"Feature", "properties":{}} +        json_tpl = {"type": "Feature", "properties": {}}          for cat in self.categories.all():              if categories_id and cat.id not in categories_id:                  continue              items = copy.deepcopy(json_tpl)              items['geometry'] = json.loads(self.point.geojson)              items['properties'].update({ -                     'pk':self.id, -                     'name':self.name, -                     'icon_path':unicode(cat.icon.image), -                     'icon_hover_path':unicode(cat.hover_icon.image) \ -                                       if cat.hover_icon else '', -                     'category_name':cat.name}) +                'pk': self.id, +                'name': self.name, +                'icon_path': unicode(cat.icon.image), +                'icon_hover_path': unicode(cat.hover_icon.image) +                if cat.hover_icon else '', +                'icon_offset_x': cat.icon.offset_x, +                'icon_offset_y': cat.icon.offset_y, +                'icon_popup_offset_x': cat.icon.popup_offset_x, +                'icon_popup_offset_y': cat.icon.popup_offset_y, +                'category_name': cat.name})              try: -                items['properties'].update({'icon_width':cat.icon.image.width, -                                          'icon_height':cat.icon.image.height,}) +                items['properties'].update( +                    {'icon_width': cat.icon.image.width, +                     'icon_height': cat.icon.image.height, +                     })              except IOError:                  pass | 
