Skip to content
This repository has been archived by the owner on Jan 12, 2022. It is now read-only.

Commit

Permalink
Merge pull request #164 from zalun/bug-684229-dashboard_paging
Browse files Browse the repository at this point in the history
Bug 684229 dashboard paging
  • Loading branch information
seanmonstar committed Sep 13, 2012
2 parents 1df54f0 + e77a7f7 commit e20e80c
Show file tree
Hide file tree
Showing 8 changed files with 123 additions and 35 deletions.
26 changes: 26 additions & 0 deletions apps/jetpack/templates/package_browser.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,32 @@
{% block head %}
<link rel="stylesheet" href="/media/jetpack/css/UI.Browser.css" type="text/css" media="screen" />
{% endblock %}

{% block app_sidebar %}
{% if profile %}
<h2 class="UI_Heading">{{ profile.get_name()}}</h2>

<div class="UI_ProfileInfo">
{% include "_profile_info.html" %}
</div>

<ul class="UI_Action_List">
{% if packages.all_public_addons %}
<li>
<a title="Add-ons" href="{{ profile.get_addons_url() }}">Add-ons</a>
<strong>({{ packages.all_public_addons }})</strong>
</li>
{% endif %}
{% if packages.all_public_libraries %}
<li>
<a title="Libraries" href="{{ profile.get_libraries_url() }}">Libraries</a>
<strong>({{ packages.all_public_libraries }})</strong>
</li>
{% endif %}
</ul>
{% endif %}
{% endblock %}

{% block app_content %}
{% if pager.paginator.object_list %}
{% block page_content %}{% endblock %}
Expand Down
25 changes: 25 additions & 0 deletions apps/jetpack/templates/package_browser_user_libraries.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,31 @@

{% block title %}{{ author.get_profile()}} - Recent Libraries - {% endblock %}

{% block app_sidebar %}
{% if profile %}
<h2 class="UI_Heading">{{ profile.get_name()}}</h2>

<div class="UI_ProfileInfo">
{% include "_profile_info.html" %}
</div>

<ul class="UI_Action_List">
{% if packages.all_public_addons %}
<li>
<a title="Add-ons" href="{{ profile.get_addons_url() }}">Add-ons</a>
<strong>({{ packages.all_public_addons }})</strong>
</li>
{% endif %}
{% if packages.all_public_libraries %}
<li>
<a title="Libraries" href="{{ profile.get_libraries_url() }}">Libraries</a>
<strong>({{ packages.all_public_libraries }})</strong>
</li>
{% endif %}
</ul>
{% endif %}
{% endblock %}

{% block page_content %}
<h2 class="UI_Heading">
<a href='{{ url('person_public_profile', author.username ) }}'>{{ author.get_profile()}}</a>:
Expand Down
7 changes: 6 additions & 1 deletion apps/jetpack/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,16 @@ def browser(request, page_number=1, type_id=None, username=None):
except (EmptyPage, InvalidPage):
raise Http404

packages = {
"all_public_addons": author.packages_originated.addons().active().count(),
"all_public_libraries": author.packages_originated.libraries().active().count()}
return render(request,
'package_browser%s.html' % template_suffix, {
'pager': pager,
'single': False,
'author': author,
'person': author,
'packages': packages,
'other_packages_number': other_packages_number
})

Expand Down Expand Up @@ -1059,7 +1064,7 @@ def library_autocomplete(request):
ids = (settings.MINIMUM_PACKAGE_ID, settings.MINIMUM_PACKAGE_ID - 1)
notAddonKit = ~(F(id_number=ids[0]) | F(id_number=ids[1]))
onlyMyPrivateLibs = (F(active=True) | F(author=request.user.id))

try:
qs = (Package.search().query(or_=package_query(q)).filter(type='l')
.filter(notAddonKit).filter(onlyMyPrivateLibs))
Expand Down
8 changes: 4 additions & 4 deletions apps/person/templates/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,22 @@ <h2 class="UI_Heading">
<ul class="UI_Action_List">
<li>
<a title="Public Add-ons" href="{{ url('person_addons') }}">Public Add-ons</a>
<strong>(<span id="public_addons_no">{{ addons|length }}</span>)</strong>
<strong>(<span id="public_addons_no">{{ packages.all_public_addons }}</span>)</strong>
</li>
<li>
<a title="Public Libraries" href="{{ url('person_libraries') }}">Public Libraries</a>
<strong>(<span id="public_libs_no">{{ libraries|length }}</span>)</strong>
<strong>(<span id="public_libs_no">{{ packages.all_public_libraries }}</span>)</strong>
</li>
</ul>

<ul class="UI_Action_List">
<li>
<a title="Private Add-ons" href="{{ url('person_disabled_addons') }}">Private Add-ons</a>
<strong>(<span id="private_addons_no">{{ disabled_addons|length }}</span>)</strong>
<strong>(<span id="private_addons_no">{{ packages.all_disabled_addons }}</span>)</strong>
</li>
<li>
<a title="Private Libraries" href="{{ url('person_disabled_libraries') }}">Private Libraries</a>
<strong>(<span id="private_libs_no">{{ disabled_libraries|length }}</span>)</strong>
<strong>(<span id="private_libs_no">{{ packages.all_disabled_libraries }}</span>)</strong>
</li>
</ul>
{% endblock %}
22 changes: 14 additions & 8 deletions apps/person/templates/profile.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,41 +24,47 @@ <h2 class="UI_Heading">{{ profile.get_name()}}</h2>
</div>

<ul class="UI_Action_List">
{% if addons %}
{% if packages.public_addons %}
<li>
<a title="Add-ons" href="{{ profile.get_addons_url() }}">Add-ons</a>
<strong>({{ addons|length }})</strong>
<strong>({{ packages.all_public_addons }})</strong>
</li>
{% endif %}
{% if libraries %}
{% if packages.public_libraries %}
<li>
<a title="Libraries" href="{{ profile.get_libraries_url() }}">Libraries</a>
<strong>({{ libraries|length }})</strong>
<strong>({{ packages.all_public_libraries }})</strong>
</li>
{% endif %}
</ul>
{% endblock %}

{% block app_content %}
{% if addons %}
{% if packages.public_addons %}
<h2 class="UI_Heading">Add-ons</h2>
<ul class="UI_Browser">
{% for item in addons %}
{% for item in packages.public_addons %}
<li class="UI_Item">
{% include "_package_browser_addon.html" %}
</li>
{% endfor %}
</ul>
{% if packages.all_public_addons > packages.public_addons.count() %}
<p class="UI_SeeMore UI_SeeMoreBrowser"><a title="See all Add-ons" href="{{ profile.get_addons_url() }}">Show more...</a></p>
{% endif %}
{% endif %}

{% if libraries %}
{% if packages.public_libraries %}
<h2 class="UI_Heading">Libraries</h2>
<ul class="UI_Browser">
{% for item in libraries %}
{% for item in packages.public_libraries %}
<li class="UI_Item">
{% include "_package_browser_library.html" %}
</li>
{% endfor %}
</ul>
{% if packages.all_public_libraries > packages.public_libraries.count() %}
<p class="UI_SeeMore UI_SeeMoreBrowser"><a title="See all Add-ons" href="{{ profile.get_libraries_url() }}">Show more...</a></p>
{% endif %}
{% endif %}
{% endblock %}
14 changes: 10 additions & 4 deletions apps/person/templates/user_dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,31 @@
{% endblock %}

{% block app_content %}
{% if addons %}
{% if packages.public_addons %}
<h2 class="UI_Heading">Your Latest Add-ons</h2>
<ul class="UI_Browser">
{% for item in addons %}
{% for item in packages.public_addons %}
<li class="UI_Item">
{% include "_dashboard_addon.html" %}
</li>
{% endfor %}
</ul>
{% if packages.all_public_addons > packages.public_addons.count() %}
<p class="UI_SeeMore UI_SeeMoreBrowser"><a title="See all Public Add-ons" href="{{ url('person_addons') }}">Show more...</a></p>
{% endif %}
{% endif %}

{% if libraries %}
{% if packages.public_libraries %}
<h2 class="UI_Heading">Your Latest Libraries</h2>
<ul class="UI_Browser">
{% for item in libraries %}
{% for item in packages.public_libraries %}
<li class="UI_Item">
{% include "_package_browser_library.html" %}
</li>
{% endfor %}
</ul>
{% if packages.all_public_libraries > packages.public_libraries.count() %}
<p class="UI_SeeMore UI_SeeMoreBrowser"><a title="See all Public Add-ons" href="{{ url('person_libraries') }}">Show more...</a></p>
{% endif %}
{% endif %}
{% endblock %}
51 changes: 33 additions & 18 deletions apps/person/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,42 +33,61 @@ def public_profile(r, username):
raise Http404
person = profile.user
addons = person.packages_originated.addons().active()
all_addons = addons.count()
libraries = person.packages_originated.libraries().active()
all_libraries = libraries.count()
packages = {
"public_addons": addons[:3],
"public_libraries": libraries[:3],
"all_public_addons": all_addons,
"all_public_libraries": all_libraries}
# if owner of the profile and not specially wanted to see it - redirect
# to dashboard
return render_to_response("profile.html", {
'page': page,
'person': person,
'profile': profile,
'addons': addons,
'libraries': libraries
'packages': packages
}, context_instance=RequestContext(r))


def get_packages(person):
def get_packages(person, limit=None):
addons = person.packages_originated.addons().active()
all_public_addons = addons.count()
libraries = person.packages_originated.libraries().active()
all_public_libraries = libraries.count()
disabled_addons = person.packages_originated.disabled().filter(type='a')
all_disabled_addons = disabled_addons.count()
disabled_libraries = person.packages_originated.disabled().filter(type='l')
return addons, libraries, disabled_addons, disabled_libraries
all_disabled_libraries = disabled_libraries.count()
if limit:
addons = addons[:limit]
libraries = libraries[:limit]
disabled_addons = disabled_addons[:limit]
disabled_libraries = disabled_libraries[:limit]
return {
'public_addons': addons,
'public_libraries': libraries,
'disabled_addons': disabled_addons,
'disabled_libraries': disabled_libraries,
'all_public_addons': all_public_addons,
'all_public_libraries': all_public_libraries,
'all_disabled_addons': all_disabled_addons,
'all_disabled_libraries': all_disabled_libraries}


@login_required
def dashboard(r):
"""
Dashboard of the user
"""
page = "dashboard"
page = 'dashboard'
person = r.user
(addons, libraries,
disabled_addons, disabled_libraries) = get_packages(person)
return render_to_response("user_dashboard.html", {
packages = get_packages(person, 3)
return render_to_response('user_dashboard.html', {
'page': page,
'person': person,
'addons': addons,
'libraries': libraries,
'disabled_addons': disabled_addons,
'disabled_libraries': disabled_libraries
'packages': packages
}, context_instance=RequestContext(r))


Expand Down Expand Up @@ -97,18 +116,14 @@ def dashboard_browser(r, page_number=1, type=None, disabled=False):
orphans=1
).page(page_number)

(addons, libraries, disabled_addons,
disabled_libraries) = get_packages(author)
all_packages = get_packages(author)

return render_to_response(
'user_%s.html' % template_suffix, {
'pager': pager,
'author': author,
'addons': addons,
'packages': all_packages,
'disabled': disabled,
'libraries': libraries,
'disabled_addons': disabled_addons,
'disabled_libraries': disabled_libraries,
'other_packages_number': other_packages_number,
'other_type': other_type
}, context_instance=RequestContext(r))
Expand Down
5 changes: 5 additions & 0 deletions media/jetpack/css/UI.Layout.css
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,11 @@ a:hover, a:focus {
margin-bottom: 5px;
}

.UI_SeeMoreBrowser {
padding: 0 0 20px;
margin-left: 110px;
}

.UI_SubHeading {
margin:15px 0 5px;
padding:0 0 2px;
Expand Down

0 comments on commit e20e80c

Please sign in to comment.