def nearest(request, template_name="locations/nearest.html"): locations = [] lat, lng = None, None query = request.GET.get('q') filters = get_query_filters(request.user, 'locations.view_location') if query: lat, lng = get_coordinates(address=query) all_locations = Location.objects.filter(filters).distinct() if not request.user.is_anonymous(): all_locations = all_locations.select_related() if all((lat,lng)): for location in all_locations: location.distance = location.get_distance2(lat, lng) if location.distance != None: locations.append(location) locations.sort(key=lambda x: x.distance) log_defaults = { 'event_id' : 834100, 'event_data': '%s nearest to %s' % ('Location', request.user), 'description': '%s nearest' % 'Location', 'user': request.user, 'request': request, 'source': 'locations' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, { 'locations':locations, 'origin': {'lat':lat,'lng':lng}, }, context_instance=RequestContext(request))
def search(request, template_name="staff/search.html"): """Staff plugin search list view""" query = request.GET.get('q', None) if get_setting('site', 'global', 'searchindex') and query: staff = Staff.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'staff.view_staff') staff = Staff.objects.filter(filters).distinct() if not request.user.is_anonymous(): staff = staff.select_related() staff = staff.order_by('-status','status_detail','start_date') log_defaults = { 'event_id' : 1080400, 'event_data': '%s searched by %s' % ('Staff', request.user), 'description': '%s searched' % 'Staff', 'user': request.user, 'request': request, 'source': 'staff' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {'staff_members':staff}, context_instance=RequestContext(request))
def search(request, template_name="discounts/search.html"): if not has_perm(request.user, 'discounts.view_discount'): raise Http403 filters = get_query_filters(request.user, 'discounts.view_discount') discounts = Discount.objects.filter(filters).distinct() query = request.GET.get('q', None) if query: discounts = discounts.filter(discount_code__icontains=query) log_defaults = { 'event_id' : 1010400, 'event_data': '%s searched by %s' % ('Discount', request.user), 'description': '%s searched' % 'Discount', 'user': request.user, 'request': request, 'source': 'discounts' } EventLog.objects.log(**log_defaults) return render_to_response( template_name, {'discounts':discounts}, context_instance=RequestContext(request) )
def search(request, template_name="case_studies/search.html"): query = request.GET.get('q', None) if get_setting('site', 'global', 'searchindex') and query: case_studies = CaseStudy.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'case_studies.view_casestudy') case_studies = CaseStudy.objects.filter(filters).distinct() if not request.user.is_anonymous(): case_studies = case_studies.select_related() case_studies = case_studies.order_by('-create_dt') services = Service.objects.all() technologies = Technology.objects.all() log_defaults = { 'event_id' : 1000400, 'event_data': '%s searched by %s' % ('Case Study', request.user), 'description': '%s searched' % 'Case Study', 'user': request.user, 'request': request, 'source': 'case_studies' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {'case_studies': case_studies, 'services': services, 'technologies': technologies}, context_instance=RequestContext(request))
def search(request, template_name="jobs/search.html"): query = request.GET.get('q', None) if get_setting('site', 'global', 'searchindex') and query: jobs = Job.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'jobs.view_job') jobs = Job.objects.filter(filters).distinct() if not request.user.is_anonymous(): jobs = jobs.select_related() jobs = jobs.order_by('status_detail','list_type','-post_dt') log_defaults = { 'event_id': 254000, 'event_data': '%s searched by %s' % ('Job', request.user), 'description': '%s searched' % 'Job', 'user': request.user, 'request': request, 'source': 'jobs' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {'jobs': jobs}, context_instance=RequestContext(request))
def search(request, template_name="resumes/search.html"): """ This page lists out all resumes from newest to oldest. If a search index is available, this page will also have the option to search through resumes. """ has_index = get_setting('site', 'global', 'searchindex') query = request.GET.get('q', None) if has_index and query: resumes = Resume.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'resumes.view_resume') resumes = Resume.objects.filter(filters).distinct() if request.user.is_authenticated(): resumes = resumes.select_related() resumes = resumes.order_by('-create_dt') EventLog.objects.log(**{ 'event_id' : 354000, 'event_data': '%s searched by %s' % ('Resume', request.user), 'description': '%s searched' % 'Resume', 'user': request.user, 'request': request, 'source': 'resumes' }) return render_to_response(template_name, {'resumes':resumes}, context_instance=RequestContext(request))
def search(request, template_name="services/search.html"): """Search view for Services plugin""" query = request.GET.get('q', None) if get_setting('site', 'global', 'searchindex') and query: services = Service.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'services.view_service') services = Service.objects.filter(filters).distinct() if not request.user.is_anonymous(): services = services.select_related() services = services.order_by('-create_dt') log_defaults = { 'event_id' : 354000, 'event_data': '%s searched by %s' % ('Service', request.user), 'description': '%s searched' % 'service', 'user': request.user, 'request': request, 'source': 'services' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {'services':services}, context_instance=RequestContext(request))
def search(request, template_name="user_groups/search.html"): """ This page lists out all user groups. If a search index is available, this page also allows you to search through user groups. """ has_index = get_setting('site', 'global', 'searchindex') query = request.GET.get('q', None) if has_index and query: groups = Group.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'groups.view_group', perms_field=False) groups = Group.objects.filter(filters).distinct() if request.user.is_authenticated(): groups = groups.select_related() groups = groups.order_by('slug') log_defaults = { 'event_id' : 164000, 'event_data': '%s searched by %s' % ('Group', request.user), 'description': '%s searched' % 'Group', 'user': request.user, 'request': request, 'source': 'user_groups' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {'groups':groups}, context_instance=RequestContext(request))
def index(request, cat_slug=None, template_name="videos/list.html"): """ This page lists out all videos. The order can be customized. Filtering by category only works if a search index is available. """ has_index = get_setting('site', 'global', 'searchindex') if has_index and cat_slug: videos = Video.objects.search('cat:%s' % cat_slug, user=request.user) videos = videos.order_by('-ordering','-create_dt') category = get_object_or_404(Category, slug=cat_slug) else: filters = get_query_filters(request.user, 'videos.view_video') videos = Video.objects.filter(filters).distinct() if request.user.is_authenticated(): videos = videos.select_related() videos = videos.order_by('-ordering', '-create_dt') categories = Category.objects.all() EventLog.objects.log(**{ 'event_id' : 1200400, 'event_data': '%s viewed by %s' % ('Video list', request.user), 'description': '%s viewed' % 'Video', 'user': request.user, 'request': request, 'source': 'video', }) return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def render(self, context): day = self.day.resolve(context) type_slug = self.type_slug.resolve(context) types = Type.objects.filter(slug=type_slug) type = None if types: type = types[0] day = datetime(day.year, day.month, day.day) weekday = day.strftime('%a') #one day offset so we can get all the events on that day bound = timedelta(hours=23, minutes=59) start_dt = day+bound end_dt = day filters = get_query_filters(context['user'], 'events.view_event') events = Event.objects.filter(filters).filter(start_dt__lte=start_dt, end_dt__gte=end_dt).distinct() if type: events = events.filter(type=type) if weekday == 'Sun' or weekday == 'Sat': events = events.filter(on_weekend=True) events = events.order_by(self.ordering or 'start_dt') context[self.context_var] = events return ''
def photoset_view_latest(request, template_name="photos/photo-set/latest.html"): """ View latest photo set """ query = request.GET.get('q', None) if get_setting('site', 'global', 'searchindex') and query: photo_sets = PhotoSet.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'photos.view_photoset') photo_sets = PhotoSet.objects.filter(filters).distinct() if not request.user.is_anonymous(): photo_sets = photo_sets.select_related() photo_sets = photo_sets.order_by('-create_dt') log_defaults = { 'event_id' : 991400, 'event_data': '%s searched by %s' % ('PhotoSet', request.user), 'description': '%s searched' % 'PhotoSet', 'user': request.user, 'request': request, 'source': 'photos' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {"photo_sets": photo_sets}, context_instance=RequestContext(request))
def search(request, template_name="locations/search.html"): query = request.GET.get('q', None) if get_setting('site', 'global', 'searchindex') and query: locations = Location.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'locations.view_location') locations = Location.objects.filter(filters).distinct() if not request.user.is_anonymous(): locations = locations.select_related() locations = locations.order_by('-create_dt') log_defaults = { 'event_id' : 834000, 'event_data': '%s listed by %s' % ('Location', request.user), 'description': '%s listed' % 'Location', 'user': request.user, 'request': request, 'source': 'locations' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {'locations':locations}, context_instance=RequestContext(request))
def get_images(self, user=None, status=True, status_detail='active'): """ Returns the images of this photosets and filters according to the given user's permissions. This makes use of the search index to avoid hitting the database. """ # user information user = user or AnonymousUser() filters = get_query_filters(user, 'photologue.view_photo') photos = Image.objects.filter(filters).filter(photoset=self.pk).distinct() return photos
def search(request, template_name="forms/search.html"): if not has_perm(request.user,'forms.view_form'): raise Http403 filters = get_query_filters(request.user, 'forms.view_form') forms = Form.objects.filter(filters).distinct() query = request.GET.get('q', None) if query: forms = forms.filter(Q(title__icontains=query)|Q(intro__icontains=query)|Q(response__icontains=query)) forms = forms.order_by('-pk') return render_to_response(template_name, {'forms':forms}, context_instance=RequestContext(request))
def get_box_list(user): """ Generate a list of 2-tuples of form id and form title This will be used as a special select """ from boxes.models import Box from perms.utils import get_query_filters filters = get_query_filters(user, 'boxes.view_box') boxes = Box.objects.filter(filters) #To avoid hitting the database n time by calling .object #We will use the values in the index field. l = [('','None')] for box in boxes: l.append((box.pk, box.title)) return l
def get_form_list(user): """ Generate a list of 2-tuples of form id and form title This will be used as a special select """ from forms_builder.forms.models import Form from perms.utils import get_query_filters filters = get_query_filters(user, 'forms.view_form') forms = Form.objects.filter(filters) #To avoid hitting the database n time by calling .object #We will use the values in the index field. l = [('','None')] for form in forms: l.append((form.pk, form.title)) return l
def search(request, template_name="entities/search.html"): filters = get_query_filters(request.user, 'entities.view_entity') entities = Entity.objects.filter(filters).distinct() log_defaults = { 'event_id' : 294000, 'event_data': '%s searched by %s' % ('Entity', request.user), 'description': '%s searched' % 'Entity', 'user': request.user, 'request': request, 'source': 'entities' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {'entities':entities}, context_instance=RequestContext(request))
def search(request, template_name="contacts/search.html"): if request.user.is_anonymous(): raise Http403 if not has_perm(request.user,'contacts.view_contact'): raise Http403 query = request.GET.get('q', None) if get_setting('site', 'global', 'searchindex') and query: contacts = Contact.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'contacts.view_contact') contacts = Contact.objects.filter(filters).distinct() if not request.user.is_anonymous(): contacts = contacts.select_related() contacts = contacts.order_by('-create_dt') return render_to_response(template_name, {'contacts':contacts}, context_instance=RequestContext(request))
def search(request, template_name="articles/search.html"): from datetime import datetime get = dict(request.GET) query = get.pop('q', []) get.pop('page', None) # pop page query string out; page ruins pagination query_extra = ['%s:%s' % (k,v[0]) for k,v in get.items() if v[0].strip()] query = ' '.join(query) if query_extra: query = '%s %s' % (query, ' '.join(query_extra)) if get_setting('site', 'global', 'searchindex') and query: articles = Article.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'articles.view_article') articles = Article.objects.filter(filters).distinct() articles = articles.filter(release_dt__lte==datetime.now()) if not request.user.is_anonymous(): articles = articles.select_related() articles = articles.order_by('-release_dt') log_defaults = { 'event_id': 434000, 'event_data': '%s searched by %s' % ('Article', request.user), 'description': '%s searched' % 'Article', 'user': request.user, 'request': request, 'source': 'articles' } EventLog.objects.log(**log_defaults) # Query list of category and subcategory for dropdown filters category = request.GET.get('category') try: category = int(category) except: category = 0 categories, sub_categories = Article.objects.get_categories(category=category) return render_to_response(template_name, {'articles': articles,'categories':categories, 'sub_categories':sub_categories}, context_instance=RequestContext(request))
def search(request, template_name="testimonials/search.html"): """ This page lists out all testimonials from newest to oldest. If a search index is available, this page will also have the option to search through testimonials. """ has_index = get_setting('site', 'global', 'searchindex') query = request.GET.get('q', None) if has_index and query: testimonials = Testimonial.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'testimonials.view_story') testimonials = Testimonial.objects.filter(filters).distinct() if request.user.is_authenticated(): testimonials = testimonials.select_related() testimonials = testimonials.order_by('-create_dt') return render_to_response(template_name, {'testimonials': testimonials}, context_instance=RequestContext(request))
def search(request, template_name="files/search.html"): """ This page lists out all files from newest to oldest. If a search index is available, this page will also have the option to search through files. """ has_index = get_setting('site', 'global', 'searchindex') query = request.GET.get('q', None) if has_index and query: files = File.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'files.view_file', perms_field=False) files = File.objects.filter(filters).distinct() if request.user.is_authenticated(): files = files.select_related() files = files.order_by('-update_dt') return render_to_response(template_name, {'files':files}, context_instance=RequestContext(request))
def render(self, context): user = AnonymousUser() if 'user' in context: if isinstance(context['user'], User): user = context['user'] try: filters = get_query_filters(user, 'boxes.view_box') box = Box.objects.filter(filters).filter(pk=self.pk).distinct() context['box'] = box[0] template = get_template('boxes/edit-link.html') output = '<div id="box-%s" class="boxes">%s %s</div>' % ( box[0].pk, box[0].content, template.render(context), ) return output except: return unicode()
def search(request, cat_slug=None, template_name="videos/list.html"): """ This page lists out all videos. The order can be customized. If a search index is available, this page will also have the option to search through videos. """ has_index = get_setting('site', 'global', 'searchindex') query = request.GET.get('q', None) categories = Category.objects.all() if has_index and query: cat = request.GET.get('cat', cat_slug) if cat: cat_query = 'cat:%s' % cat query = ' '.join([query, cat_query]) categories = Category.objects.filter(slug=cat) category = None if categories: category = category[0] videos = Video.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'videos.view_video') videos = Video.objects.filter(filters).distinct() if request.user.is_authenticated(): videos = videos.select_related() videos = videos.order_by('-ordering', '-create_dt') log_defaults = { 'event_id' : 1200400, 'event_data': '%s searched by %s' % ('Videos', request.user), 'description': '%s searched' % 'Videos', 'user': request.user, 'request': request, 'source': 'video', } EventLog.objects.log(**log_defaults) return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def search(request, template_name="news/search.html"): query = request.GET.get("q", None) if get_setting("site", "global", "searchindex") and query: news = News.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, "news.view_news") news = News.objects.filter(filters).distinct() if request.user.is_authenticated(): news = news.select_related() news = news.order_by("-release_dt") log_defaults = { "event_id": 305400, "event_data": "%s searched by %s" % ("News", request.user), "description": "%s searched" % "News", "user": request.user, "request": request, "source": "news", } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {"search_news": news}, context_instance=RequestContext(request))
def application_entries_search(request, template_name="memberships/entries/search.html"): """ Displays a page for searching membership application entries. """ query = request.GET.get('q') if get_setting('site', 'global', 'searchindex') and query: entries = AppEntry.objects.search(query, user=request.user) else: status = request.GET.get('status', None) filters = get_query_filters(request.user, 'memberships.view_appentry') entries = AppEntry.objects.filter(filters).distinct() if status: status_filter = get_status_filter(status) entries = entries.filter(status_filter) entries = entries.select_related() entries = entries.order_by('-entry_time') apps = App.objects.all() types = MembershipType.objects.all() # log entry search view EventLog.objects.log(**{ 'event_id' : 1084000, 'event_data': '%s listed by %s' % ('Membership Entries', request.user), 'description': '%s listed' % 'Membership Entries', 'user': request.user, 'request': request, 'source': 'memberships', }) return render_to_response(template_name, { 'entries':entries, 'apps':apps, 'types':types, }, context_instance=RequestContext(request))
def search(request, template_name="pages/search.html"): query = request.GET.get('q', None) if get_setting('site', 'global', 'searchindex') and query: pages = Page.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'pages.view_page') pages = Page.objects.filter(filters).distinct() if request.user.is_authenticated(): pages = pages.select_related() pages = pages.order_by('-create_dt') log_defaults = { 'event_id' : 584000, 'event_data': '%s searched by %s' % ('Page', request.user), 'description': '%s searched' % 'Page', 'user': request.user, 'request': request, 'source': 'pages' } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {'pages':pages}, context_instance=RequestContext(request))
def search(request, template_name="help_files/search.html"): """ Help Files Search """ query = request.GET.get("q", None) if get_setting("site", "global", "searchindex") and query: help_files = HelpFile.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, "help_files.view_helpfile") help_files = HelpFile.objects.filter(filters).distinct() if not request.user.is_anonymous(): help_files = help_files.select_related() log_defaults = { "event_id": 1000400, "event_data": "%s searched by %s" % ("Help File", request.user), "description": "%s searched" % "Help File", "user": request.user, "request": request, "source": "help_files", } EventLog.objects.log(**log_defaults) return render_to_response(template_name, {"help_files": help_files}, context_instance=RequestContext(request))
def topic(request, id, template_name="help_files/topic.html"): """ List of topic help files """ topic = get_object_or_404(Topic, pk=id) query = None filters = get_query_filters(request.user, "help_files.view_helpfile") help_files = HelpFile.objects.filter(filters).filter(topics__in=[topic.pk]).distinct() if not request.user.is_anonymous(): help_files = help_files.select_related() log_defaults = { "event_id": 1000400, "event_data": "%s topic searched by %s" % ("Help File", request.user), "description": "%s topic searched" % "Help File", "user": request.user, "request": request, "source": "help_files", } EventLog.objects.log(**log_defaults) return render_to_response( template_name, {"topic": topic, "help_files": help_files}, context_instance=RequestContext(request) )
def membership_search(request, template_name="memberships/search.html"): query = request.GET.get('q') if get_setting('site', 'global', 'searchindex') and query: members = Membership.objects.search(query, user=request.user) else: filters = get_query_filters(request.user, 'memberships.view_membership') members = Membership.objects.filter(filters).distinct() if not request.user.is_anonymous(): members = members.select_related() types = MembershipType.objects.all() EventLog.objects.log(**{ 'event_id' : 474000, 'event_data': '%s searched by %s' % ('Membership', request.user), 'description': '%s searched' % 'Membership', 'user': request.user, 'request': request, 'source': 'memberships' }) return render_to_response(template_name, {'members': members, 'types': types}, context_instance=RequestContext(request))
def search(request, template_name="navs/search.html"): query = request.GET.get('q', None) filters = get_query_filters(request.user, 'navs.view_nav') navs = Nav.objects.filter(filters).distinct() if query: navs = navs.filter(Q(title__icontains=query)|Q(description__icontains=query)) log_defaults = { 'event_id' : 195400, 'event_data': '%s searched by %s' % ('Nav', request.user), 'description': '%s searched' % 'Nav', 'user': request.user, 'request': request, 'source': 'navs' } EventLog.objects.log(**log_defaults) return render_to_response( template_name, {'navs':navs}, context_instance=RequestContext(request) )