def index(req, images=None, template_name='user_image/index.html', context={}): if images is None: images = UserImage.objects.public_only(req.user) form_data = req.GET.copy() if not (req.GET.get('calibrated') or req.GET.get('processing') or req.GET.get('failed')): form_data['calibrated'] = 'on' form = ShowImagesForm(form_data) calibrated = True processing = False failed = False if form.is_valid(): calibrated = form.cleaned_data.get('calibrated') processing = form.cleaned_data.get('processing') failed = form.cleaned_data.get('failed') if calibrated is False: images = images.exclude(jobs__status='S') if processing is False: images = images.exclude(jobs__status='') if failed is False: images = images.exclude(jobs__status='F') images = images.order_by('-submission__submitted_on') page_number = req.GET.get('page', 1) page = get_page(images, 27, page_number) context.update({ 'image_page': page, 'show_images_form': form, }) return render(req, template_name, context)
def users(req): users = User.objects.all() form = UserSearchForm(req.GET) if form.is_valid(): query_string = urllib.urlencode(form.cleaned_data) query = form.cleaned_data.get('query') if query: users = users.filter(profile__display_name__icontains=query) sort = req.GET.get('sort', 'name') order = 'profile__display_name' if sort == 'name': #profiles = (UserProfilek.extra(select={'lower_name':'lower(profile.display_name)'}) # .order_by('lower_name')) order = 'profile__display_name' elif sort == 'date': order = 'date_joined' elif sort == 'images': users = users.annotate(Count('user_images')) order = '-user_images__count' users = users.order_by(order) #users = users.order_by(order) page_number = req.GET.get('page',1) user_page = get_page(users,20,page_number) context = { 'user_search_form': form, 'user_page': user_page, 'query_string': query_string, } return render(req, 'search/users.html', context)
def index(req, users=User.objects.all(), template_name='user/index.html', context={}): form = UserSearchForm(req.GET) if form.is_valid(): query = form.cleaned_data.get('query') if query: users = users.filter(profile__display_name__icontains=query) sort = req.GET.get('sort', 'name') order = 'profile__display_name' if sort == 'name': #profiles = (UserProfilek.extra(select={'lower_name':'lower(profile.display_name)'}) # .order_by('lower_name')) order = 'profile__display_name' elif sort == 'date': order = 'date_joined' elif sort == 'images': users = users.annotate(Count('user_images')) order = '-user_images__count' users = users.order_by(order) page_number = req.GET.get('page',1) user_page = get_page(users,20,page_number) context.update({ 'user_page': user_page, 'user_search_form': form, }) return render(req, template_name, context)
def index(req, tags=Tag.objects.all(), template_name='tag/index.html', context={}): logmsg('tags:', tags.count()) form = TagSearchForm(req.GET) if form.is_valid(): query = form.cleaned_data.get('query') if query: tags = tags.filter(text__icontains=query) logmsg('query for "%s":' % query, tags.count()) else: logmsg('no query') tags = tags.annotate(Count('user_images')) sort = req.GET.get('sort', 'freq') order = '-user_images__count' if sort == 'name': order = 'text' elif sort == 'freq': tags = tags.annotate(Count('user_images')) order = '-user_images__count' tags = tags.order_by(order) logmsg('tags:', tags.count()) page_number = req.GET.get('page', 1) page = get_page(tags, 50, page_number) context.update({ 'tag_page': page, 'tags': tags, 'tag_search_form': form, }) return render(req, template_name, context)
def users(req): users = User.objects.all() form = UserSearchForm(req.GET) if form.is_valid(): query_string = urllib.urlencode(form.cleaned_data) query = form.cleaned_data.get('query') if query: users = users.filter(profile__display_name__icontains=query) sort = req.GET.get('sort', 'name') order = 'profile__display_name' if sort == 'name': #profiles = (UserProfilek.extra(select={'lower_name':'lower(profile.display_name)'}) # .order_by('lower_name')) order = 'profile__display_name' elif sort == 'date': order = 'date_joined' elif sort == 'images': users = users.annotate(Count('user_images')) order = '-user_images__count' users = users.order_by(order) #users = users.order_by(order) page_number = req.GET.get('page', 1) user_page = get_page(users, 20, page_number) context = { 'user_search_form': form, 'user_page': user_page, 'query_string': query_string, } return render(req, 'search/users.html', context)
def dashboard_submissions(req): page_number = req.GET.get('page',1) page = get_page(req.user.submissions.all().order_by('-submitted_on'),15,page_number) context = { 'submission_page': page } return render(req, "dashboard/submissions.html", context)
def album(req, album_id=None): album = get_object_or_404(Album, pk=album_id) comment_form = get_session_form(req.session, PartialCommentForm) page_number = req.GET.get('page', 1) page = get_page(album.user_images.public_only(req.user), 4 * 3, page_number) context = { 'album': album, 'comment_form': comment_form, 'image_page': page, 'request': req, } if album.is_public() or (album.user == req.user and req.user.is_authenticated()): template = 'album/view.html' #elif SharedHideable.objects.filter(shared_with=req.user.id, hideable=album).count(): # template = 'album/view.html' else: messages.error( req, "Sorry, you don't have permission to view this content.") template = 'album/permission_denied.html' return render(req, template, context)
def index(req, images=None, template_name='user_image/index.html', context={}): if images is None: images = UserImage.objects.public_only(req.user) form_data = req.GET.copy() if not (req.GET.get('calibrated') or req.GET.get('processing') or req.GET.get('failed')): form_data['calibrated'] = 'on' form = ShowImagesForm(form_data) calibrated = True processing = False failed = False if form.is_valid(): calibrated = form.cleaned_data.get('calibrated') processing = form.cleaned_data.get('processing') failed = form.cleaned_data.get('failed') stats = ['S', 'F', ''] if calibrated is False: stats.remove('S') if processing is False: stats.remove('') if failed is False: stats.remove('F') if len(stats) < 3: images = images.filter(jobs__status__in=stats) #print 'index 1:', images.query images = images.order_by('-submission__submitted_on') #print 'index 2:', images.query page_number = req.GET.get('page', 1) page = get_page(images, 27, page_number) context.update({ 'image_page': page, 'show_images_form': form, }) return render(req, template_name, context)
def index(req, users=User.objects.all(), template_name='user/index.html', context={}): form = UserSearchForm(req.GET) if form.is_valid(): query = form.cleaned_data.get('query') if query: users = users.filter(profile__display_name__icontains=query) sort = req.GET.get('sort', 'name') order = 'profile__display_name' if sort == 'name': #profiles = (UserProfilek.extra(select={'lower_name':'lower(profile.display_name)'}) # .order_by('lower_name')) order = 'profile__display_name' elif sort == 'date': order = 'date_joined' elif sort == 'images': users = users.annotate(Count('user_images')) order = '-user_images__count' users = users.order_by(order) page_number = req.GET.get('page', 1) user_page = get_page(users, 20, page_number) context.update({ 'user_page': user_page, 'user_search_form': form, }) return render(req, template_name, context)
def user_submissions(req, user_id=None): user = get_object_or_404(User, pk=user_id) page_number = req.GET.get('page', 1) page = get_page(user.submissions.all().order_by('-submitted_on'), 15, page_number) context = {'display_user': user, 'submission_page': page} return render(req, "user/submissions.html", context)
def dashboard_submissions(req): page_number = req.GET.get('page', 1) page = get_page(req.user.submissions.all().order_by('-submitted_on'), 15, page_number) context = {'submission_page': page} return render_to_response("dashboard/submissions.html", context, context_instance=RequestContext(req))
def dashboard_albums(req): page_number = req.GET.get('page',1) page = get_page(req.user.albums.all(),3*10,page_number) context = { 'user': req.user, 'album_page': page } return render(req, 'dashboard/albums.html', context)
def dashboard_user_images(req): page_number = req.GET.get('page',1) page = get_page(req.user.user_images.public_only(req.user),3*10,page_number) context = { 'user':req.user, 'image_page':page } return render(req, 'dashboard/user_images.html', context)
def dashboard_albums(req): page_number = req.GET.get('page', 1) page = get_page(req.user.albums.all(), 3 * 10, page_number) context = {'user': req.user, 'album_page': page} return render_to_response('dashboard/albums.html', context, context_instance=RequestContext(req))
def dashboard_submissions(req): page_number = req.GET.get('page',1) page = get_page(req.user.submissions.all().order_by('-submitted_on'),15,page_number) context = { 'submission_page': page } return render_to_response("dashboard/submissions.html", context, context_instance = RequestContext(req))
def user_submissions(req, user_id=None): user = get_object_or_404(User, pk=user_id) page_number = req.GET.get('page',1) page = get_page(user.submissions.all().order_by('-submitted_on'),15,page_number) context = { 'display_user': user, 'submission_page': page } return render(req, "user/submissions.html", context)
def user_albums(req, user_id=None): user = get_object_or_404(User, pk=user_id) page_number = req.GET.get('page',1) page = get_page(user.albums.all(),3*10,page_number) context = { 'display_user': user, 'album_page': page } return render(req, 'user/albums.html', context)
def user_images(req, user_id=None): user = get_object_or_404(User, pk=user_id) page_number = req.GET.get('page',1) page = get_page(user.user_images.public_only(req.user),3*10,page_number) context = { 'display_user': user, 'image_page': page, } return render(req, 'user/user_images.html', context)
def dashboard_user_images(req): page_number = req.GET.get('page', 1) page = get_page(req.user.user_images.public_only(req.user), 3 * 10, page_number) context = {'user': req.user, 'image_page': page} return render_to_response('dashboard/user_images.html', context, context_instance=RequestContext(req))
def user_albums(req, user_id=None): user = get_object_or_404(User, pk=user_id) page_number = req.GET.get('page', 1) page = get_page(user.albums.all(), 3 * 10, page_number) context = {'display_user': user, 'album_page': page} return render_to_response('user/albums.html', context, context_instance=RequestContext(req))
def dashboard_albums(req): page_number = req.GET.get('page',1) page = get_page(req.user.albums.all(),3*10,page_number) context = { 'user': req.user, 'album_page': page } return render_to_response('dashboard/albums.html', context, context_instance = RequestContext(req))
def dashboard_user_images(req): page_number = req.GET.get('page',1) page = get_page(req.user.user_images.public_only(req.user),3*10,page_number) context = { 'user':req.user, 'image_page':page } return render_to_response('dashboard/user_images.html', context, context_instance = RequestContext(req))
def user_images(req, user_id=None): user = get_object_or_404(User, pk=user_id) page_number = req.GET.get('page',1) page = get_page(user.user_images.public_only(req.user),3*10,page_number) context = { 'display_user': user, 'image_page': page } return render_to_response('user/user_images.html', context, context_instance = RequestContext(req))
def user_albums(req, user_id=None): user = get_object_or_404(User, pk=user_id) page_number = req.GET.get('page',1) page = get_page(user.albums.all(),3*10,page_number) context = { 'display_user': user, 'album_page': page } return render_to_response('user/albums.html', context, context_instance = RequestContext(req))
def user_images(req, user_id=None): user = get_object_or_404(User, pk=user_id) page_number = req.GET.get('page',1) page = get_page(user.user_images.public_only(req.user),3*10,page_number) context = { 'display_user': user, 'image_page': page, } return render_to_response('user/user_images.html', context, context_instance = RequestContext(req))
def album(req, album_id=None): album = get_object_or_404(Album, pk=album_id) comment_form = get_session_form(req.session, PartialCommentForm) page_number = req.GET.get("page", 1) page = get_page(album.user_images.public_only(req.user), 4 * 3, page_number) context = {"album": album, "comment_form": comment_form, "image_page": page, "request": req} if album.is_public() or (album.user == req.user and req.user.is_authenticated()): template = "album/view.html" # elif SharedHideable.objects.filter(shared_with=req.user.id, hideable=album).count(): # template = 'album/view.html' else: messages.error(req, "Sorry, you don't have permission to view this content.") template = "album/permission_denied.html" return render(req, template, context)
def images(req): images = UserImage.objects.all_visible() form = ImageSearchForm(req.GET) if form.is_valid(): query_string = urllib.urlencode(form.cleaned_data) query = form.cleaned_data.get('query') if query: images = images.filter(tags__text__icontains=query) images = images.order_by('submission__submitted_on').distinct() page_number = req.GET.get('page',1) image_page = get_page(images,3*10,page_number) context = { 'image_search_form': form, 'image_page': image_page, 'query_string': query_string, } return render(req, 'search/user_images.html', context)
def images(req): images = UserImage.objects.all_visible() form = ImageSearchForm(req.GET) if form.is_valid(): query_string = urllib.urlencode(form.cleaned_data) query = form.cleaned_data.get('query') if query: images = images.filter(tags__text__icontains=query) images = images.order_by('submission__submitted_on').distinct() page_number = req.GET.get('page', 1) image_page = get_page(images, 3 * 10, page_number) context = { 'image_search_form': form, 'image_page': image_page, 'query_string': query_string, } return render(req, 'search/user_images.html', context)
def index(req, images=None, template_name='user_image/index.html', context={}): if images is None: images = UserImage.objects.public_only(req.user) form_data = req.GET.copy() if not (req.GET.get('calibrated') or req.GET.get('processing') or req.GET.get('failed')): form_data['calibrated'] = 'on' form = ShowImagesForm(form_data) calibrated = True processing = False failed = False if form.is_valid(): calibrated = form.cleaned_data.get('calibrated') processing = form.cleaned_data.get('processing') failed = form.cleaned_data.get('failed') stats = ['S', 'F', ''] if calibrated is False: stats.remove('S') if processing is False: stats.remove('') if failed is False: stats.remove('F') if len(stats) < 3: images = images.filter(jobs__status__in=stats) #print 'index 1:', images.query # the public_only() view already sorts them #images = images.order_by('-submission__submitted_on') #print 'index 2:', images.query page_number = req.GET.get('page', 1) page = get_page(images, 27, page_number) context.update({ 'image_page': page, 'show_images_form': form, }) return render(req, template_name, context)
def search(req): if req.GET: form_data = req.GET.copy() if not (req.GET.get('calibrated') or req.GET.get('processing') or req.GET.get('failed')): form_data['calibrated'] = 'on' else: form_data = None form = ImageSearchForm(form_data) context = {} images = UserImage.objects.all_visible() page_number = req.GET.get('page', 1) category = 'tag' calibrated = True processing = False failed = False if form.is_valid(): calibrated = form.cleaned_data.get('calibrated') processing = form.cleaned_data.get('processing') failed = form.cleaned_data.get('failed') category = form.cleaned_data.get('search_category') if category == 'tag': tags = form.cleaned_data.get('tags', '') if tags.strip(): images = UserImage.objects.none() tag_objs = [] tags = map(strip, tags.split(',')) tags = list(set(tags)) # remove duplicate tags images = UserImage.objects.all_visible().filter( tags__text__in=tags).distinct() tag_objs = Tag.objects.filter(text__in=tags) context['tags'] = tag_objs elif category == 'user': username = form.cleaned_data.get('user', '') if username.strip(): user = User.objects.filter(profile__display_name=username)[:1] images = UserImage.objects.none() if len(user) > 0: images = UserImage.objects.all_visible().filter(user=user) context['display_user'] = user[0] else: context['display_users'] = User.objects.filter( profile__display_name__startswith=username)[:5] elif category == 'location': ra = form.cleaned_data.get('ra', 0) dec = form.cleaned_data.get('dec', 0) radius = form.cleaned_data.get('radius', 0) if ra and dec and radius: ra *= math.pi / 180 dec *= math.pi / 180 tempr = math.cos(dec) x = tempr * math.cos(ra) y = tempr * math.sin(ra) z = math.sin(dec) r = radius / 180 * math.pi # HACK - there's probably a better way to do this..? where = ( '(x-(%(x)f))*(x-(%(x)f))+(y-(%(y)f))*(y-(%(y)f))+(z-(%(z)f))*(z-(%(z)f)) < (%(r)f)*(%(r)f)' % dict(x=x, y=y, z=z, r=r)) where2 = '(r <= %f)' % r cals = Calibration.objects.extra(where=[where, where2]) images = UserImage.objects.filter(jobs__calibration__in=cals) elif category == 'image': image_id = form.cleaned_data.get('image') if image_id: image = get_object_or_404(UserImage, pk=image_id) context['image'] = image images = image.get_neighbouring_user_images() if calibrated is False: images = images.exclude(jobs__status='S') if processing is False: images = images.exclude(jobs__status__isnull=True) if failed is False: images = images.exclude(jobs__status='F') page = get_page(images, 4 * 5, page_number) context.update({ 'form': form, 'search_category': category, 'image_page': page }) return render_to_response('user_image/search.html', context, context_instance=RequestContext(req))
def search(req): if req.GET: form_data = req.GET.copy() if not (req.GET.get('calibrated') or req.GET.get('processing') or req.GET.get('failed')): form_data['calibrated'] = 'on' else: form_data = None form = ImageSearchForm(form_data) context = {} images = UserImage.objects.all_visible() page_number = req.GET.get('page',1) category = 'tag' calibrated = True processing = False failed = False if form.is_valid(): calibrated = form.cleaned_data.get('calibrated') processing = form.cleaned_data.get('processing') failed = form.cleaned_data.get('failed') category = form.cleaned_data.get('search_category'); if category == 'tag': tags = form.cleaned_data.get('tags','') if tags.strip(): images = UserImage.objects.none() tag_objs = [] tags = map(strip,tags.split(',')) tags = list(set(tags)) # remove duplicate tags images = UserImage.objects.all_visible().filter(tags__text__in=tags).distinct() tag_objs = Tag.objects.filter(text__in=tags) context['tags'] = tag_objs elif category == 'user': username = form.cleaned_data.get('user','') if username.strip(): user = User.objects.filter(profile__display_name=username)[:1] images = UserImage.objects.none() if len(user) > 0: images = UserImage.objects.all_visible().filter(user=user) context['display_user'] = user[0] else: context['display_users'] = User.objects.filter(profile__display_name__startswith=username)[:5] elif category == 'location': ra = form.cleaned_data.get('ra', 0) dec = form.cleaned_data.get('dec', 0) radius = form.cleaned_data.get('radius', 0) if ra and dec and radius: ra *= math.pi/180 dec *= math.pi/180 tempr = math.cos(dec) x = tempr*math.cos(ra) y = tempr*math.sin(ra) z = math.sin(dec) r = radius/180*math.pi # HACK - there's probably a better way to do this..? where = ('(x-(%(x)f))*(x-(%(x)f))+(y-(%(y)f))*(y-(%(y)f))+(z-(%(z)f))*(z-(%(z)f)) < (%(r)f)*(%(r)f)' % dict(x=x,y=y,z=z,r=r)) where2= '(r <= %f)' % r cals = Calibration.objects.extra(where=[where,where2]) images = UserImage.objects.filter(jobs__calibration__in=cals) elif category == 'image': image_id = form.cleaned_data.get('image') if image_id: image = get_object_or_404(UserImage, pk=image_id) context['image'] = image images = image.get_neighbouring_user_images() if calibrated is False: images = images.exclude(jobs__status='S') if processing is False: images = images.exclude(jobs__status__isnull=True) if failed is False: images = images.exclude(jobs__status='F') page = get_page(images, 4*5, page_number) context.update({'form': form, 'search_category': category, 'image_page': page}) return render_to_response('user_image/search.html', context, context_instance = RequestContext(req))