Add user's maps page
This commit is contained in:
parent
d8df14faf9
commit
2e287d23cf
6 changed files with 95 additions and 29 deletions
33
youmap/templates/auth/user_detail.html
Normal file
33
youmap/templates/auth/user_detail.html
Normal file
|
@ -0,0 +1,33 @@
|
|||
{% extends "youmap/home.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="twelve columns">
|
||||
|
||||
<!-- Navigation -->
|
||||
|
||||
{% include 'youmap/navigation.html' %}
|
||||
<!-- End Navigation -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="twelve columns">
|
||||
<h2>Browse {{ current_user }}'s maps</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="twelve columns">
|
||||
<div class="row map_list">
|
||||
{% if maps %}
|
||||
{% include "chickpea/map_list.html" %}
|
||||
{% else %}
|
||||
<div class="twelve mobile-six columns">
|
||||
{{ current_user }} has not map yet.
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
|
@ -5,7 +5,7 @@
|
|||
{% for map_inst in maps %}
|
||||
<div class="twelve mobile-six columns">
|
||||
{% map_fragment map_inst %}
|
||||
<div class="panel"><strong>{{ map_inst.name }}</strong> — {{ map_inst.description }} <a href="{{ map_inst.get_absolute_url }}">See this map!</a></div>
|
||||
<div class="panel"><strong>{{ map_inst.name }}</strong> — «{{ map_inst.description }}» <em>Cured by <a href="{% url user_maps user.username %}">{{ map_inst.owner }}</a></em> — <a href="{{ map_inst.get_absolute_url }}">See this map!</a></div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
|
|
|
@ -13,32 +13,7 @@
|
|||
|
||||
<!-- Navigation -->
|
||||
|
||||
<nav class="top-bar contain-to-grid">
|
||||
<ul>
|
||||
<li class="name"><h1><a href="#">YouMap <em>alpha</em></a></h1></li>
|
||||
<li class="toggle-topbar"><a href="#"></a></li>
|
||||
</ul>
|
||||
|
||||
<section>
|
||||
<ul class="left">
|
||||
<li><a href="#">My maps</a></li>
|
||||
<li><a href="#">Log in</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class="right">
|
||||
<li class="search">
|
||||
<form>
|
||||
<input type="search">
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li class="has-button">
|
||||
<a class="small button" href="#">Search</a>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</nav>
|
||||
|
||||
{% include 'youmap/navigation.html' %}
|
||||
<!-- End Navigation -->
|
||||
|
||||
</div>
|
||||
|
@ -56,8 +31,8 @@
|
|||
|
||||
<div class="row">
|
||||
<div class="six mobile-two columns">
|
||||
<h4>YouMap <em>alpha</em></h4><hr/>
|
||||
<h5 class="subheader">YouMap let you create maps with OpenStreetMap layers in a minute and embed them in your site.<br /> This is a demo instance, you can host your own, it's <strong>open source</strong>!
|
||||
<h4>u{Map} <em>alpha</em></h4><hr/>
|
||||
<h5 class="subheader">u{Map} let you create maps with OpenStreetMap layers in a minute and embed them in your site.<br /> This is a demo instance, you can host your own, it's <strong>open source</strong>!
|
||||
</h5>
|
||||
</div>
|
||||
<div class="six mobile-two columns">
|
||||
|
|
29
youmap/templates/youmap/navigation.html
Normal file
29
youmap/templates/youmap/navigation.html
Normal file
|
@ -0,0 +1,29 @@
|
|||
<nav class="top-bar contain-to-grid">
|
||||
<ul>
|
||||
<li class="name"><h1><a href="/">u{Map} <em>alpha</em></a></h1></li>
|
||||
<li class="toggle-topbar"><a href="#"></a></li>
|
||||
</ul>
|
||||
|
||||
<section>
|
||||
<ul class="left">
|
||||
{% if user.is_authenticated %}
|
||||
<li><a href="{% url user_maps user.username %}">My maps</a></li>
|
||||
<li><a href="#">Log out</a></li>
|
||||
{% else %}
|
||||
<li><a href="#">Log in</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
<ul class="right">
|
||||
<li class="search">
|
||||
<form>
|
||||
<input type="search">
|
||||
</form>
|
||||
</li>
|
||||
|
||||
<li class="has-button">
|
||||
<a class="small button" href="#">Search</a>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</nav>
|
|
@ -14,6 +14,7 @@ urlpatterns = patterns('',
|
|||
(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
||||
(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^$', views.home, name="home"),
|
||||
url(r'^user/(?P<username>[-_\w]+)/$', views.user_maps, name='user_maps'),
|
||||
(r'', include('chickpea.urls')),
|
||||
)
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
from django.views.generic import TemplateView
|
||||
from django.contrib.auth.models import User
|
||||
from django.views.generic import DetailView
|
||||
|
||||
from chickpea.models import Map
|
||||
|
||||
|
@ -23,3 +25,29 @@ class Home(TemplateView):
|
|||
return [self.template_name]
|
||||
|
||||
home = Home.as_view()
|
||||
|
||||
|
||||
class UserMaps(DetailView):
|
||||
model = User
|
||||
slug_url_kwarg = 'username'
|
||||
slug_field = 'username'
|
||||
list_template_name = "chickpea/map_list.html"
|
||||
context_object_name = "current_user"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
maps = Map.objects.filter(owner=self.object).order_by('-modified_at')[:30]
|
||||
kwargs.update({
|
||||
"maps": maps
|
||||
})
|
||||
return super(UserMaps, self).get_context_data(**kwargs)
|
||||
|
||||
def get_template_names(self):
|
||||
"""
|
||||
Dispatch template according to the kind of request: ajax or normal.
|
||||
"""
|
||||
if self.request.is_ajax():
|
||||
return [self.list_template_name]
|
||||
else:
|
||||
return super(UserMaps, self).get_template_names()
|
||||
|
||||
user_maps = UserMaps.as_view()
|
||||
|
|
Loading…
Reference in a new issue