View difference between Paste ID: 87LAbhha and 07t4bdza
SHOW: | | - or go back to the newest paste.
1
    #urls
2-
    url(r'^media/images/(?P<rel_model_tag>(event|member|crag))/(?P<rel_object_id>\d+)/(?P<action>(view|edit))/$', views.image_list, name='image-list')
2+
          url(r'^media/images/(?P<rel_model_tag>(event|member|crag))/(?P<rel_object_id>\d+)/(?P<action>(view|edit))/$', views.video_list, name='image-list')
3-
    url(r'^media/videos/(?P<rel_model_tag>(event|member|crag))/(?P<rel_object_id>\d+)/(?P<action>(view|edit))/$', views.video_list, name='video-list')
3+
          url(r'^media/videos/(?P<rel_model_tag>(event|member|crag))/(?P<rel_object_id>\d+)/(?P<action>(view|edit))/$', views.image_list, name='video-list')
4-
        
4+
5
    
6-
        
6+
7
    def image_list(request, rel_model_tag, rel_object_id, action):
8-
    def image_list(request, rel_model_tag, rel_object_id, mode):
8+
        return media_list(request, Image, rel_model_tag, rel_object_id, action)
9-
        return media_list(request, Image, rel_model_tag, rel_object_id, mode)
9+
10
    
11
    def video_list(request, rel_model_tag, rel_object_id, action):
12-
    def video_list(request, rel_model_tag, rel_object_id, mode):
12+
        return media_list(request, Video, rel_model_tag, rel_object_id, action)
13-
        return media_list(request, Video, rel_model_tag, rel_object_id, mode)
13+
14
    
15
    def media_list(request, model, rel_model_tag, rel_object_id, action):
16-
    def media_list(request, model, rel_model_tag, rel_object_id, mode):
16+
17
        rel_object = get_object_or_404(rel_model, pk=rel_object_id)
18
    
19
        if model == Image:
20
            star_media = rel_object.star_image
21
        else:
22
            star_media = rel_object.star_video
23
    
24-
        
24+
        filter_params = {}
25-
        media_list = model.get_object_media(rel_object).filter(~Q(id=star_media.id)).order_by('date_added')
25+
        if rel_model == Event:
26
            filter_params['media__event'] = rel_object_id
27
        elif rel_model == Member:
28
            filter_params['media__members'] = rel_object_id
29
        elif rel_model == Crag:
30
            filter_params['media__crag'] = rel_object_id
31
    
32-
        if mode == 'edit':
32+
        media_list = model.objects.filter(~Q(id=star_media.id)).filter(**filter_params).order_by('media__date_added').all()
33-
            return media_edit_list(request, model, rel_model_tag, rel_object_id, context)
33+
34
        context = {
35-
        return media_view_list(request, model, rel_model_tag, rel_object_id, context)
35+
36
            'star_media': star_media,
37
        }
38-
    def media_view_list(request, model, rel_model_tag, rel_object_id, context):
38+
39-
        if request.is_ajax():
39+
        if action == 'edit':
40-
            context['base_template'] = 'boxes/base-lite.html'
40+
            return media_edit_list(request, model, rel_model_tag, rel_model_id, context)
41-
        return render(request, 'media/list-items.html', context)
41+
42
        return media_view_list(request, model, rel_model_tag, rel_model_id, context)
43
    
44-
    def media_edit_list(request, model, rel_model_tag, rel_object_id, context):
44+
45
  
46-
            get_media_edit_record = get_image_edit_record
46+
  def media_view_list(request, model, rel_model_tag, rel_object_id, context):
47
      if request.is_ajax():
48-
            get_media_edit_record = get_video_edit_record
48+
          context['base_template'] = 'boxes/base-lite.html'
49
      return render(request, 'media/list-items.html', context)
50-
        media_list = [get_media_edit_record(media, rel_model_tag, rel_object_id) for media in context['media_list']]
50+
  
51
  
52-
        if context['star_media']:
52+
  def media_edit_list(request, model, rel_model_tag, rel_object_id, context):
53-
            star_media = get_media_edit_record(context['star_media'], rel_model_tag, rel_object_id)
53+
      if model == Image:
54
          get_media_record = get_image_record
55-
            star_media = None
55+
      else:
56
          get_media_record = get_video_record
57-
        json = simplejson.dumps({
57+
  
58
      media_list = [get_media_record(media, rel_model_tag, rel_object_id) for media in context['media_list']]
59
  
60-
        })
60+
      if context['star_media']:
61-
        return HttpResponse(json, content_type=json_response_mimetype(request))
61+
          star_media = get_media_record(star_media, rel_model_tag, rel_object_id)
62
          star_media['starred'] = True
63
      else:
64-
    def get_image_edit_record(image, rel_model_tag, rel_object_id):
64+
          star_media = None
65-
        record = {
65+
  
66-
            'url': image.image.url,
66+
      json = simplejson.dumps({
67-
            'name': image.title or image.filename,
67+
          'star_media': star_media,
68-
            'type': mimetypes.guess_type(image.image.path)[0] or 'image/png',
68+
          'media_list': media_list,
69-
            'thumbnailUrl': image.thumbnail_2.url,
69+
      })
70-
            'size': image.image.size,
70+
      return HttpResponse(json, content_type=json_response_mimetype(request))
71-
            'id': image.id,
71+
72-
            'media_id': image.media_ptr.id,
72+
73-
            'starUrl':reverse('image-star', kwargs={'image_id': image.id, 'rel_model_tag': rel_model_tag, 'rel_object_id': rel_object_id}),
73+
74
        title = models.CharField('title', max_length=128, default='', db_index=True, blank=True)
75-
        return record
75+
76
        crag = models.ForeignKey(Crag, null=True, default=None, blank=True)
77
        members = models.ManyToManyField(Member, blank=True)
78-
    def get_video_edit_record(video, rel_model_tag, rel_object_id):
78+
79-
        record = {
79+
80-
            'url': video.embed_url,
80+
81-
            'name': video.title or video.url,
81+
        def __unicode__(self):
82-
            'type': None,
82+
            return self.title
83-
            'thumbnailUrl': video.thumbnail_2.url,
83+
84-
            'size': None,
84+
        def get_absolute_url(self):
85-
            'id': video.id,
85+
            return self.image.url if self.image else self.video.embed_url
86-
            'media_id': video.media_ptr.id,
86+
87-
            'starUrl': reverse('video-star', kwargs={'video_id': video.id, 'rel_model_tag': rel_model_tag, 'rel_object_id': rel_object_id}),
87+
88
    class Image(Media):
89-
        return record
89+
90
                                    processors=[ResizeToFit(width=1024, height=1024, upscale=False)],
91
                                    format='JPEG',
92
                                    options={'quality': 75})
93
        thumbnail_1 = ImageSpecField(source='image',
94
                                    processors=[SmartResize(width=178, height=134)],
95
                                    format='JPEG',
96
                                    options={'quality': 75})
97
        thumbnail_2 = ImageSpecField(source='image',
98
                                    #processors=[SmartResize(width=256, height=192)],
99-
        member = models.ForeignKey(Member, null=True, default=None, blank=True)
99+
100-
        tagged_in_members = models.ManyToManyField(Member, blank=True, related_name="tagged_in_media_set")
100+
101
                                    options={'quality': 75})
102
    
103
    
104-
        @classmethod
104+
105-
        def get_object_media(cls, rel_object):
105+
106-
            filter_params = {}
106+
107
        author = models.CharField('author', max_length=64, default='', blank=True)
108-
            if rel_object.__class__ == Event:
108+
109-
                filter_params['event'] = rel_object.id
109+
110-
            elif rel_object.__class__ == Member:
110+
111-
                filter_params['member'] = rel_object.id
111+
112-
            elif rel_object.__class__ == Crag:
112+
113-
                filter_params['crag'] = rel_object.id
113+
114
                                    format='JPEG',
115-
            return cls.objects.filter(**filter_params).all()
115+
116
        thumbnail_2 = ImageSpecField(source='thumbnail',
117
                                    #processors=[SmartResize(width=256, height=192)],
118
                                    processors=[ResizeToFit(height=164)],
119
                                    format='JPEG',
120
                                    options={'quality': 75})
121
    
122
      class Crag(models.Model, WebModel):
123
          name = models.CharField('name', max_length=64, default='', db_index=True)
124
          normalized_name = models.CharField('normalized name', max_length=64, default='', editable=False)
125
          type = models.IntegerField('crag type', null=True, default=None, choices=crag_types)
126
          description = models.TextField('description', default='', blank=True)
127
          country = models.ForeignKey('country', null=True, default=None) #TODO: make this not null when db enables it
128
          latitude = models.FloatField('latitude', null=True, default=None)
129
          longitude = models.FloatField('longitude', null=True, default=None)
130
          location_index = FixedCharField('location index', length=24, default='', editable=False, db_index=True) # handled by db, used for marker clustering
131
          added_by = models.ForeignKey('member', null=True, default=None)
132
          #route_count = models.IntegerField('route count', null=True, default=None, editable=False)
133
          date_created = models.DateTimeField('date created', auto_now_add=True, null=True, default=None, editable=False)
134
          last_modified = models.DateTimeField('last modified', auto_now=True, null=True, default=None, editable=False)
135
          star_image = models.OneToOneField('Image', null=True, default=None, related_name='star_crags', on_delete=models.SET_NULL)
136
          star_video = models.OneToOneField('Video', null=True, default=None, related_name='star_crags', on_delete=models.SET_NULL)