Merged [2619] from kivinen@iki.fi:
Setting user cookies, and settable expires soon and new tags in id/rfc list. - Legacy-Id: 2634 Note: SVN reference [2619] has been migrated to Git commit ddd9b6fe4d702af5e9b132621a47f59fe2f36b4e
This commit is contained in:
parent
2e07520667
commit
23cfcbebb1
2
ietf/cookies/__init__.py
Normal file
2
ietf/cookies/__init__.py
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Copyright The IETF Trust 2010, All Rights Reserved
|
||||
|
12
ietf/cookies/urls.py
Normal file
12
ietf/cookies/urls.py
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Copyright The IETF Trust 2010, All Rights Reserved
|
||||
|
||||
from django.conf.urls.defaults import patterns
|
||||
from ietf.cookies import views
|
||||
|
||||
urlpatterns = patterns('',
|
||||
(r'^$', views.settings),
|
||||
(r'^new_enough/(?P<days>.*)$', views.new_enough),
|
||||
(r'^new_enough/', views.new_enough),
|
||||
(r'^expires_soon/(?P<days>.*)$', views.expires_soon),
|
||||
(r'^expires_soon/', views.expires_soon),
|
||||
)
|
44
ietf/cookies/views.py
Normal file
44
ietf/cookies/views.py
Normal file
|
@ -0,0 +1,44 @@
|
|||
# Copyright The IETF Trust 2010, All Rights Reserved
|
||||
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import render_to_response as render, get_object_or_404
|
||||
from django.template import RequestContext
|
||||
|
||||
def settings(request, new_enough = -1, expires_soon = -1):
|
||||
if new_enough < 0:
|
||||
if "new_enough" in request.COOKIES:
|
||||
new_enough = int(request.COOKIES["new_enough"])
|
||||
else:
|
||||
new_enough = 14
|
||||
if expires_soon < 0:
|
||||
if "expires_soon" in request.COOKIES:
|
||||
expires_soon = int(request.COOKIES["expires_soon"])
|
||||
else:
|
||||
expires_soon = 14
|
||||
return render("cookies/settings.html",
|
||||
{
|
||||
"new_enough" : new_enough,
|
||||
"expires_soon" : expires_soon
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
def new_enough(request, days="14"):
|
||||
try:
|
||||
days = int(days)
|
||||
except:
|
||||
days = 0
|
||||
if days == 0:
|
||||
days = 14
|
||||
response = settings(request, days, -1)
|
||||
response.set_cookie("new_enough", days)
|
||||
return response
|
||||
|
||||
def expires_soon(request, days="14"):
|
||||
try:
|
||||
days = int(days)
|
||||
except:
|
||||
days = 0
|
||||
if days == 0:
|
||||
days = 14
|
||||
response = settings(request, -1, days)
|
||||
response.set_cookie("expires_soon", days)
|
||||
return response
|
|
@ -13,6 +13,7 @@ except ImportError:
|
|||
import re
|
||||
import datetime
|
||||
import types
|
||||
from django.template import RequestContext
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
@ -339,6 +340,22 @@ def unescape(text):
|
|||
text = text.replace("<br/>", "\n")
|
||||
return text
|
||||
|
||||
@register.filter(name='new_enough')
|
||||
def new_enough(x,request):
|
||||
if "new_enough" in request.COOKIES:
|
||||
days = int(request.COOKIES["new_enough"])
|
||||
else:
|
||||
days = 14
|
||||
return x < days
|
||||
|
||||
@register.filter(name='expires_soon')
|
||||
def expires_soon(x,request):
|
||||
if "expires_soon" in request.COOKIES:
|
||||
days = int(request.COOKIES["expires_soon"])
|
||||
else:
|
||||
days = 14
|
||||
return x > -days
|
||||
|
||||
@register.filter(name='greater_than')
|
||||
def greater_than(x, y):
|
||||
return x > int(y)
|
||||
|
|
53
ietf/templates/cookies/settings.html
Normal file
53
ietf/templates/cookies/settings.html
Normal file
|
@ -0,0 +1,53 @@
|
|||
{# Copyright The IETF Trust 2010, All Rights Reserved #}
|
||||
{% extends "base.html" %}
|
||||
{% load ietf_filters %}
|
||||
{% block title %}User settings{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<h2>Cookie settings for the ietf datatracker.</h2>
|
||||
|
||||
<p> Following settings are implemented using cookies, so if you have
|
||||
cookies disabled then you are not able to change the settings
|
||||
(everything still continues to work by using default settings).</p>
|
||||
|
||||
<table id="settings">
|
||||
<tr class="setting-header">
|
||||
<td colspan="6">
|
||||
<h2 class="ietf-divider">How many days is considered new</h2>
|
||||
</td>
|
||||
<tr>
|
||||
<tr class="setting-description">
|
||||
<td colspan="6">
|
||||
<p>This setting affects how many days is considered new enough to get the special marking in the drafts page. Default setting is 14 days.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="settings-values">
|
||||
<td>{% if new_enough|equal:"7" %}<span class="ietf-highlight-y"><a href="/cookies/new_enough/7">7 days</a></span>{%else%}<a href="/cookies/new_enough/7">7 days</a>{% endif %}</td></td>
|
||||
<td>{% if new_enough|equal:"14" %}<span class="ietf-highlight-y"><a href="/cookies/new_enough/14">14 days</a></span>{%else%}<a href="/cookies/new_enough/14">14 days</a>{% endif %}</td>
|
||||
<td>{% if new_enough|equal:"21" %}<span class="ietf-highlight-y"><a href="/cookies/new_enough/21">21 days</a></span>{%else%}<a href="/cookies/new_enough/21">21 days</a>{% endif %}</td>
|
||||
<td>{% if new_enough|equal:"30" %}<span class="ietf-highlight-y"><a href="/cookies/new_enough/30">30 days</a></span>{%else%}<a href="/cookies/new_enough/30">30 days</a>{% endif %}</td>
|
||||
<td>{% if new_enough|equal:"60" %}<span class="ietf-highlight-y"><a href="/cookies/new_enough/60">60 days</a></span>{%else%}<a href="/cookies/new_enough/60">60 days</a>{% endif %}</td>
|
||||
<td>{% if new_enough|equal:"90" %}<span class="ietf-highlight-y"><a href="/cookies/new_enough/90">90 days</a></span>{%else%}<a href="/cookies/new_enough/90">90 days</a>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="setting-header">
|
||||
<td colspan="6">
|
||||
<h2 class="ietf-divider">How many days is considered soon</h2>
|
||||
</td>
|
||||
<tr>
|
||||
<tr class="setting-description">
|
||||
<td colspan="6">
|
||||
<p>This setting tells what is considered soon when showing document which is going to be expire soon. Default setting is 14 days.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="settings-values">
|
||||
<td>{% if expires_soon|equal:"7" %}<span class="ietf-highlight-y"><a href="/cookies/expires_soon/7">7 days</a></span>{%else%}<a href="/cookies/expires_soon/7">7 days</a>{% endif %}</td></td>
|
||||
<td>{% if expires_soon|equal:"14" %}<span class="ietf-highlight-y"><a href="/cookies/expires_soon/14">14 days</a></span>{%else%}<a href="/cookies/expires_soon/14">14 days</a>{% endif %}</td>
|
||||
<td>{% if expires_soon|equal:"21" %}<span class="ietf-highlight-y"><a href="/cookies/expires_soon/21">21 days</a></span>{%else%}<a href="/cookies/expires_soon/21">21 days</a>{% endif %}</td>
|
||||
<td>{% if expires_soon|equal:"30" %}<span class="ietf-highlight-y"><a href="/cookies/expires_soon/30">30 days</a></span>{%else%}<a href="/cookies/expires_soon/30">30 days</a>{% endif %}</td>
|
||||
<td>{% if expires_soon|equal:"60" %}<span class="ietf-highlight-y"><a href="/cookies/expires_soon/60">60 days</a></span>{%else%}<a href="/cookies/expires_soon/60">60 days</a>{% endif %}</td>
|
||||
<td>{% if expires_soon|equal:"90" %}<span class="ietf-highlight-y"><a href="/cookies/expires_soon/90">90 days</a></span>{%else%}<a href="/cookies/expires_soon/90">90 days</a>{% endif %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
|
@ -32,6 +32,6 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
{% endcomment %}
|
||||
{% load ietf_filters %}<td class="date">{% if not doc.rfc %}{{ doc.publication_date }}{% else %}{{ doc.publication_date|date:"Y-m" }}{% endif %}
|
||||
{% if doc.publication_date|timesince_days|less_than:"14" %}<br/><span class="ietf-small ietf-highlight-y">{% if not doc.rfc%}<a href="http://tools.ietf.org/rfcdiff?url2={{doc.id.draft_name_and_revision}}">new</a>{%else%}new{%endif%}</span>{%endif%}
|
||||
{% if doc.id and doc.id.expected_expiration_date and doc.id.expected_expiration_date|timesince_days|greater_than:"-14" %}<br/><span class="ietf-small ietf-highlight-y">expires soon</span>{%endif%}
|
||||
{% if doc.publication_date|timesince_days|new_enough:request %}<br/><span class="ietf-small ietf-highlight-y">{% if not doc.rfc%}<a href="http://tools.ietf.org/rfcdiff?url2={{doc.id.draft_name_and_revision}}">new</a>{%else%}new{%endif%}</span>{%endif%}
|
||||
{% if doc.id and doc.id.expected_expiration_date and doc.id.expected_expiration_date|timesince_days|expires_soon:request %}<br/><span class="ietf-small ietf-highlight-y">expires soon</span>{%endif%}
|
||||
</td>
|
||||
|
|
|
@ -55,6 +55,7 @@ urlpatterns = patterns('',
|
|||
(r'^accounts/', include('ietf.ietfauth.urls')),
|
||||
(r'^doc/', include('ietf.idrfc.urls')),
|
||||
(r'^wg/', include('ietf.wginfo.urls')),
|
||||
(r'^cookies/', include('ietf.cookies.urls')),
|
||||
|
||||
(r'^$', 'ietf.idrfc.views.main'),
|
||||
(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
||||
|
|
Loading…
Reference in a new issue