def dashboard(request): """ Returns user's unique dashboard. Displays new comments since last_login from any discussions including user. Ex: Felicity S. replied to Series: "Palmer Tech Innovation Conference" discussion Displays table of new content created since last_login Displays any content with deadlines sameday/next day for any content where user is part of team. Displays log of other user activity since last_login Ex: Oliver Q. added "Dhark Indicted" to Story: "Star City Organized Crime Leader Arrested" """ # query for new comments since last_login from any discussions the user has participated in recent_comments = User.recent_comments(request.user) # if no new comments, display 10 most recent older comments older_comments = User.inbox_comments(request.user)[:10] # query for any new content created since last_login new_stories = Story.objects.filter(creation_date__gte=request.user.last_login)[:8] # if no new stories, display 10 most recent stories old_stories = Story.objects.filter(organization = request.user.organization)[:10] # TODO: query for other user activity since last_login return render(request, 'editorial/dashboard.html', { 'recent_comments': recent_comments, 'older_comments': older_comments, 'new_stories': new_stories, 'old_stories': old_stories, })
def dashboard(request): """ Returns user's unique dashboard. Displays new comments since last_login from any discussions including user. Ex: Felicity S. replied to Series: "Palmer Tech Innovation Conference" discussion Displays table of new content created since last_login Displays any content with deadlines sameday/next day for any content where user is part of team. Displays log of other user activity since last_login Ex: Oliver Q. added "Dhark Indicted" to Story: "Star City Organized Crime Leader Arrested" """ # get user organization organization = request.user.organization # query for new comments since last_login from any discussions the user has participated in recent_comments = User.recent_comments(request.user) # if no new comments, display 10 most recent older comments older_comments = User.inbox_comments(request.user)[:10] if organization: # retrieve all organization comments all_comments = Organization.get_org_comments(organization) # query for new stories shared to network networks = Organization.get_org_networks(organization) # facets where run_date=today running_today = Organization.get_org_stories_running_today(organization) # facets where due_edit=today edit_today = Organization.get_org_stories_due_for_edit_today(organization) else: all_comments = [] networks = [] running_today = [] edit_today = [] shared_networkstories = [] for network in networks: stories = Network.get_network_shared_stories(network) shared_networkstories.extend(stories) shared_networkstories = [story for story in shared_networkstories if story.organization != organization] networkstories = set(shared_networkstories) # query for any new content created since last_login new_stories = Story.objects.filter(creation_date__gte=request.user.last_login)[:8] # if no new stories, display 10 most recent stories old_stories = Story.objects.filter(organization = request.user.organization)[:10] copied_shared_stories = StoryCopyDetail.objects.filter(original_org=request.user.organization) # TODO: query for other user activity since last_login return render(request, 'editorial/dashboard.html', { 'networks': networks, 'recent_comments': recent_comments, 'older_comments': older_comments, 'all_comments': all_comments, 'new_stories': new_stories, 'old_stories': old_stories, 'running_today': running_today, 'edit_today': edit_today, 'shared_networkstories': shared_networkstories, 'copied_shared_stories': copied_shared_stories, })
def sent_html(request): """Return sent messages""" sent_messages = User.private_messages_sent(request.user) sent_messages_html = render_to_string('sent-messages.html', {'sent_messages': sent_messages}) return HttpResponse(sent_messages_html)
def discussion(request): """ Return discussion inbox. Displays comments from SeriesPlan Discussions involving user. Displays comments from StoryPlan Discussions involving user. Displays comments from any Facet Editing Discussion involving user. Displays comments from any PrivateDiscussion involving user. """ comments = User.inbox_comments(request.user) private_messages_received = User.private_messages_received(request.user) private_messages_sent = User.private_messages_sent(request.user) return render(request, 'editorial/discussion.html', { 'comments': comments, 'private_messages_received': private_messages_received, 'private_messages_sent': private_messages_sent, })
def user_detail(request, pk): """ The public profile of a user. Displays the user's organization, title, credit name, email, phone, bio, expertise, profile photo, social media links and most recent content. """ user = get_object_or_404(User, pk=pk) user_stories = User.get_user_stories(user) user_content = User.get_user_content(user) usernotes = UserNote.objects.filter(owner_id=user.id)[:4] usernoteform = UserNoteForm() content = user.get_user_content() return render(request, 'editorial/userdetail.html', { 'user': user, 'user_stories': user_stories, 'user_content': user_content, 'usernotes': usernotes, 'usernoteform': usernoteform })
def get_queryset(self): """Returns list of querysets containing content a user is allowed to search. This is determined by a user's organization. """ user_org = self.request.user.organization user = self.request.user # retrieve all content a user is allowed to search searchable_org_objects = Organization.get_org_searchable_content(user_org) searchable_user_objects = User.get_user_searchable_content(user) # unpack the querysets from the list of querysets returned series, stories, webfacets, printfacets, audiofacets, videofacets, imageassets, networknotes, orgnotes, seriesnotes, storynotes = ( searchable_org_objects ) usernotes = searchable_user_objects # pass all querysets to search method return watson.search( self.query, models=[ series, stories, webfacets, printfacets, audiofacets, videofacets, imageassets, networknotes, orgnotes, seriesnotes, storynotes, usernotes, ], )
def __init__(self, *args, **kwargs): self.request = kwargs.pop("request") super(PrivateMessageForm, self).__init__(*args, **kwargs) if self.request.user.organization: self.fields["recipient"].queryset = User.get_user_contact_list(self.request.user)