diff options
27 files changed, 187 insertions, 152 deletions
diff --git a/askbot/conf/skin_general_settings.py b/askbot/conf/skin_general_settings.py index 56102453..d71fe7fc 100644 --- a/askbot/conf/skin_general_settings.py +++ b/askbot/conf/skin_general_settings.py @@ -4,14 +4,31 @@ General skin settings from askbot.conf.settings_wrapper import settings from askbot.deps.livesettings import ConfigurationGroup from askbot.deps.livesettings import StringValue, IntegerValue, BooleanValue +#from askbot.deps.livesettings import ImageValue from django.utils.translation import ugettext as _ -from askbot.skins.utils import get_skin_choices +from askbot.skins import utils as skin_utils GENERAL_SKIN_SETTINGS = ConfigurationGroup( 'GENERAL_SKIN_SETTINGS', _('Skin and User Interface settings'), ) +#settings.register( +# ImageValue( +# GENERAL_SKIN_SETTINGS, +# 'SITE_LOGO', +# description = _('Q&A site logo'), +# help_text = _( +# 'To change logo, click "change button", ' +# 'select new logo file, then submit this ' +# 'whole form.' +# ), +# upload_directory = django_settings.ASKBOT_FILE_UPLOAD_DIR, +# default_image_url = skin_utils.get_media_url('logo.gif') +# ) +#) +print skin_utils.get_media_url('/images/logo.gif') + settings.register( BooleanValue( GENERAL_SKIN_SETTINGS, @@ -32,9 +49,9 @@ settings.register( StringValue( GENERAL_SKIN_SETTINGS, 'ASKBOT_DEFAULT_SKIN', - default='default', - choices=get_skin_choices(), - description=_('Select skin'), + default = 'default', + choices = skin_utils.get_skin_choices(), + description = _('Select skin'), ) ) @@ -42,9 +59,9 @@ settings.register( IntegerValue( GENERAL_SKIN_SETTINGS, 'MEDIA_RESOURCE_REVISION', - default=1, - description=_('Skin media revision number'), - help_text=_( + default = 1, + description = _('Skin media revision number'), + help_text = _( 'Increment this number when you change ' 'image in skin media or stylesheet. ' 'This helps avoid showing your users ' diff --git a/askbot/deps/livesettings/values.py b/askbot/deps/livesettings/values.py index 6bde7f5a..0b6e1d20 100644 --- a/askbot/deps/livesettings/values.py +++ b/askbot/deps/livesettings/values.py @@ -561,6 +561,13 @@ class LongStringValue(Value): to_editor = to_python +#class ImageValue(Value): +# +# class field(dddd.forms.ImageField): +# def __init__(self, *args, **kwargs): +# kwargs['required'] = False +# kwargs['widget'] = ddd.forms.ImageInput() +# ddd.forms.ImageField.__init__(self, *args, **kwargs) class MultipleStringValue(Value): diff --git a/askbot/skins/default/templates/answer_edit.html b/askbot/skins/default/templates/answer_edit.html index afcb8efe..9d46bb17 100644 --- a/askbot/skins/default/templates/answer_edit.html +++ b/askbot/skins/default/templates/answer_edit.html @@ -4,12 +4,12 @@ {% load extra_tags %} {% block title %}{% spaceless %}{% trans "Edit answer" %}{% endspaceless %}{% endblock %} {% block forejs %} - <script type='text/javascript' src='{% media "/media/js/com.cnprog.editor.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.post.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.validate.pack.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/wmd/showdown.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/wmd/wmd.js" %}'></script> - <link rel="stylesheet" type="text/css" href="{% media "/media/js/wmd/wmd.css" %}" /> + <script type='text/javascript' src='{% media "/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.validate.pack.js" %}'></script> + <script type='text/javascript' src='{% media "/js/wmd/showdown.js" %}'></script> + <script type='text/javascript' src='{% media "/js/wmd/wmd.js" %}'></script> + <link rel="stylesheet" type="text/css" href="{% media "/js/wmd/wmd.css" %}" /> <script type="text/javascript"> $().ready(function(){ diff --git a/askbot/skins/default/templates/ask.html b/askbot/skins/default/templates/ask.html index 8c96a953..122cc286 100644 --- a/askbot/skins/default/templates/ask.html +++ b/askbot/skins/default/templates/ask.html @@ -4,12 +4,12 @@ {% load extra_tags %} {% block title %}{% spaceless %}{% trans "Ask a question" %}{% endspaceless %}{% endblock %} {% block forejs %} - <script type='text/javascript' src='{% media "/media/js/com.cnprog.editor.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.post.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.validate.pack.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/wmd/showdown.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/wmd/wmd.js" %}'></script> - <link rel="stylesheet" type="text/css" href="{% media "/media/js/wmd/wmd.css" %}" /> + <script type='text/javascript' src='{% media "/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.validate.pack.js" %}'></script> + <script type='text/javascript' src='{% media "/js/wmd/showdown.js" %}'></script> + <script type='text/javascript' src='{% media "/js/wmd/wmd.js" %}'></script> + <link rel="stylesheet" type="text/css" href="{% media "/js/wmd/wmd.css" %}" /> <script type="text/javascript"> $().ready(function(){ //set current module button style diff --git a/askbot/skins/default/templates/authopenid/signin.html b/askbot/skins/default/templates/authopenid/signin.html index 66ef2f78..25f9c452 100755 --- a/askbot/skins/default/templates/authopenid/signin.html +++ b/askbot/skins/default/templates/authopenid/signin.html @@ -4,10 +4,10 @@ {% load extra_tags %}
{% block title %}{% spaceless %}{% trans "User login" %}{% endspaceless %}{% endblock %}
{% block forejs %}
- <script type='text/javascript' src='{% media "/media/js/jquery.validate.pack.js" %}'></script>
+ <script type='text/javascript' src='{% media "/js/jquery.validate.pack.js" %}'></script>
- <link rel="stylesheet" type="text/css" media="screen" href="{% media "/media/jquery-openid/openid.css" %}"/>
- <script type="text/javascript" src="{% media "/media/jquery-openid/jquery.openid.js" %}"></script>
+ <link rel="stylesheet" type="text/css" media="screen" href="{% media "/jquery-openid/openid.css" %}"/>
+ <script type="text/javascript" src="{% media "/jquery-openid/jquery.openid.js" %}"></script>
<script type="text/javascript"> $().ready( function() { $("form.openid:eq(0)").openid(); })</script>
<!--<script type="text/javascript">
$().ready(function(){
@@ -45,7 +45,7 @@ {% comment %}
<li class="local" title="Local login">
<div class="logo_box local_login_box">
- <img src="{% media "/media/jquery-openid/images/logo-small.gif" %}" alt="your icon here" />
+ <img src="{% media "/jquery-openid/images/logo-small.gif" %}" alt="your icon here" />
</div>
<span></span>
</li>
@@ -53,23 +53,23 @@ <tr class="providers">
<td class="username" title="OpenID URL">
<div class="logo_box openid_box">
- <img src="{% media "/media/jquery-openid/images/openid.gif" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/openid.gif" %}" alt="icon" />
<span>http://<strong>username</strong></span>
</div>
</td>
<td class="direct" title="Google">
<div class="logo_box google_box">
- <img src="{% media "/media/jquery-openid/images/google.gif" %}" alt="icon" /><span>https://www.google.com/accounts/o8/id</span>
+ <img src="{% media "/jquery-openid/images/google.gif" %}" alt="icon" /><span>https://www.google.com/accounts/o8/id</span>
</div>
</td>
<td class="direct" title="Yahoo">
<div class="logo_box yahoo_box">
- <img src="{% media "/media/jquery-openid/images/yahoo.gif" %}" alt="icon" /><span>http://yahoo.com/</span>
+ <img src="{% media "/jquery-openid/images/yahoo.gif" %}" alt="icon" /><span>http://yahoo.com/</span>
</div>
</td>
<td class="username" title="AOL screen name">
<div class="logo_box aol_box">
- <img src="{% media "/media/jquery-openid/images/aol.gif" %}" alt="icon" /><span>http://openid.aol.com/<strong>username</strong></span>
+ <img src="{% media "/jquery-openid/images/aol.gif" %}" alt="icon" /><span>http://openid.aol.com/<strong>username</strong></span>
</div>
</td>
</tr>
@@ -78,7 +78,7 @@ <tr id="openid_small_providers" class="providers">
<!--<li class="openid" title="OpenID">
<div class="logo_box openid_box">
- <img src="/media/jquery-openid/images/openid.gif" alt="icon" />
+ <img src="/jquery-openid/images/openid.gif" alt="icon" />
</div>
<span><strong>http://{your-openid-url}</strong></span>
</li>-->
@@ -97,44 +97,44 @@ {% endcomment %}
{% comment %}
<li class="openid first_tiny_li" title="OpenID URL">
- <img src="{% media "/media/jquery-openid/images/openidico16.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/openidico16.png" %}" alt="icon" />
<span>http://{your-openid-url}</span>
</li>
{% endcomment %}
<td class="username first_tiny_li" title="MyOpenID user name">
- <img src="{% media "/media/jquery-openid/images/myopenid-2.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/myopenid-2.png" %}" alt="icon" />
<span>http://<strong>username</strong>.myopenid.com/</span>
</td>
<td class="username" title="Flickr user name">
- <img src="{% media "/media/jquery-openid/images/flickr.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/flickr.png" %}" alt="icon" />
<span>http://flickr.com/<strong>username</strong>/</span>
</td>
<td class="username" title="Technorati user name">
- <img src="{% media "/media/jquery-openid/images/technorati-1.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/technorati-1.png" %}" alt="icon" />
<span>http://technorati.com/people/technorati/<strong>username</strong>/</span>
</td>
<td class="username" title="Wordpress blog name">
- <img src="{% media "/media/jquery-openid/images/wordpress.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/wordpress.png" %}" alt="icon" />
<span>http://<strong>username</strong>.wordpress.com</span>
</td>
<td class="username" title="Blogger blog name">
- <img src="{% media "/media/jquery-openid/images/blogger-1.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/blogger-1.png" %}" alt="icon" />
<span>http://<strong>username</strong>.blogspot.com/</span>
</td>
<td class="username" title="LiveJournal blog name">
- <img src="{% media "/media/jquery-openid/images/livejournal-1.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/livejournal-1.png" %}" alt="icon" />
<span>http://<strong>username</strong>.livejournal.com</span>
</td>
<td class="username" title="ClaimID user name">
- <img src="{% media "/media/jquery-openid/images/claimid-0.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/claimid-0.png" %}" alt="icon" />
<span>http://claimid.com/<strong>username</strong></span>
</td>
<td class="username" title="Vidoop user name">
- <img src="{% media "/media/jquery-openid/images/vidoop.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/vidoop.png" %}" alt="icon" />
<span>http://<strong>username</strong>.myvidoop.com/</span>
</td>
<td class="username" title="Verisign user name">
- <img src="{% media "/media/jquery-openid/images/verisign-2.png" %}" alt="icon" />
+ <img src="{% media "/jquery-openid/images/verisign-2.png" %}" alt="icon" />
<span>http://<strong>username</strong>.pip.verisignlabs.com/</span>
</td>
</tr>
diff --git a/askbot/skins/default/templates/base.html b/askbot/skins/default/templates/base.html index 5823c1ac..822a69ad 100644 --- a/askbot/skins/default/templates/base.html +++ b/askbot/skins/default/templates/base.html @@ -18,8 +18,8 @@ {% if settings.GOOGLE_SITEMAP_CODE %} <meta name="google-site-verification" content="{{settings.GOOGLE_SITEMAP_CODE}}" /> {% endif %} - <link rel="shortcut icon" href="{% media "/media/images/favicon.gif" %}" /> - <link href="{% media "/media/style/style.css" %}" rel="stylesheet" type="text/css" /> + <link rel="shortcut icon" href="{% media "/images/favicon.gif" %}" /> + <link href="{% media "/style/style.css" %}" rel="stylesheet" type="text/css" /> <script src="http://www.google.com/jsapi" type="text/javascript"></script> <script type="text/javascript">google.load("jquery", "1.2.6");</script> <script type="text/javascript"> @@ -27,9 +27,9 @@ var scriptUrl = '/{{settings.ASKBOT_URL}}' var askbotSkin = '{{settings.ASKBOT_DEFAULT_SKIN}}'; </script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.i18n.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.i18n.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.utils.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.i18n.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.i18n.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.utils.js" %}'></script> {% if user_messages %} <style type="text/css"> body { margin-top:2.4em; } diff --git a/askbot/skins/default/templates/base_content.html b/askbot/skins/default/templates/base_content.html index a2ab8a47..da604ef7 100644 --- a/askbot/skins/default/templates/base_content.html +++ b/askbot/skins/default/templates/base_content.html @@ -13,8 +13,8 @@ {% if settings.GOOGLE_SITEMAP_CODE %} <meta name="google-site-verification" content="{{ settings.GOOGLE_SITEMAP_CODE }}" /> {% endif %} - <link rel="shortcut icon" href="{% media "/media/images/favicon.gif" %}" /> - <link href="{% media "/media/style/style.css" %}" rel="stylesheet" type="text/css" /> + <link rel="shortcut icon" href="{% media "/images/favicon.gif" %}" /> + <link href="{% media "/style/style.css" %}" rel="stylesheet" type="text/css" /> {% spaceless %} {% block forestyle %}{% endblock %} {% endspaceless %} @@ -25,9 +25,9 @@ var scriptUrl = '/{{settings.ASKBOT_URL}}' var askbotSkin = '{{settings.ASKBOT_DEFAULT_SKIN}}'; </script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.i18n.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.i18n.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.utils.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.i18n.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.i18n.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.utils.js" %}'></script> {% if user_messages %} <style type="text/css"> body { margin-top:2.4em; } diff --git a/askbot/skins/default/templates/book.html b/askbot/skins/default/templates/book.html index 528b800d..d525b7ac 100644 --- a/askbot/skins/default/templates/book.html +++ b/askbot/skins/default/templates/book.html @@ -85,12 +85,12 @@ {% if question.favourite_count %} {% if question.favorited_myself %} <div class="favorites-count"> - <img title="{% trans "this question was selected as favorite" %} {{question.favourite_count}} {% trans "number of times" %}" src="{% media "/media/images/vote-favorite-on.png" %}"> + <img title="{% trans "this question was selected as favorite" %} {{question.favourite_count}} {% trans "number of times" %}" src="{% media "/images/vote-favorite-on.png" %}"> <div><b>{{question.favourite_count|intcomma}}</b></div> </div> {% else %} <div class="favorites-count-off"> - <img title="{% trans "this question was selected as favorite" %} {{question.favourite_count}} {% trans "number of times" %}" src="{% media "/media/images/vote-favorite-off.png" %}"> + <img title="{% trans "this question was selected as favorite" %} {{question.favourite_count}} {% trans "number of times" %}" src="{% media "/images/vote-favorite-off.png" %}"> <div><b>{{question.favourite_count|intcomma}}</b></div> </div> {% endif %} diff --git a/askbot/skins/default/templates/email_base.html b/askbot/skins/default/templates/email_base.html index c9340b57..6d9bbea2 100644 --- a/askbot/skins/default/templates/email_base.html +++ b/askbot/skins/default/templates/email_base.html @@ -4,11 +4,11 @@ <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <link href="{% fullmedia "/media/style/style.css" %}" rel="stylesheet" type="text/css" /> + <link href="{% fullmedia "/style/style.css" %}" rel="stylesheet" type="text/css" /> </head> <body> <a href="{% fullurl index %}"> - <img src="{% fullmedia "/media/images/logo.png" %}" title="{% trans "home" %}" alt="{{settings.APP_TITLE}} logo"/> + <img src="{% fullmedia "/images/logo.png" %}" title="{% trans "home" %}" alt="{{settings.APP_TITLE}} logo"/> </a> <br /> <p>{{ settings.APP_TITLE }}</p> diff --git a/askbot/skins/default/templates/footer.html b/askbot/skins/default/templates/footer.html index a28a1980..58989f36 100644 --- a/askbot/skins/default/templates/footer.html +++ b/askbot/skins/default/templates/footer.html @@ -28,7 +28,7 @@ </div> <div id="licenseLogo"> <a href="http://creativecommons.org/licenses/by/3.0/"> - <img src="{% media "/media/images/cc-wiki.png" %}" title="Creative Commons: Attribution - Share Alike" alt="cc-wiki" width="50" height="68" /> + <img src="{% media "/images/cc-wiki.png" %}" title="Creative Commons: Attribution - Share Alike" alt="cc-wiki" width="50" height="68" /> </a> </div> </div> diff --git a/askbot/skins/default/templates/header.html b/askbot/skins/default/templates/header.html index 49811fde..6a8068f2 100644 --- a/askbot/skins/default/templates/header.html +++ b/askbot/skins/default/templates/header.html @@ -12,10 +12,10 @@ <img alt="{%blocktrans with request.user.username as username %}responses for {{username}}{% endblocktrans %}" {% if request.user.response_count > 0 %} - src="{% media "/media/images/mail-envelope-full.png" %}" + src="{% media "/images/mail-envelope-full.png" %}" title="{% blocktrans count request.user.response_count as response_count %}you have a new response{% plural %}you nave {{response_count}} new responses{% endblocktrans %}" {% else %} - src="{% media "/media/images/mail-envelope-empty.png" %}" + src="{% media "/images/mail-envelope-empty.png" %}" title="{% trans "no new responses yet" %}" {% endif %} /> @@ -34,7 +34,7 @@ <td id="logoContainer"> <div id="logo"> <a href="{% url questions %}?start_over=true"><img - src="{% media "/media/images/logo.gif" %}" title="{% trans "back to home page" %}" alt="{{settings.APP_TITLE}} logo"/></a> + src="{% media "/images/logo.gif" %}" title="{% trans "back to home page" %}" alt="{{settings.APP_TITLE}} logo"/></a> </div> </td> <td id="navTabContainer" valign="bottom" align="left"> diff --git a/askbot/skins/default/templates/question.html b/askbot/skins/default/templates/question.html index 729f3e7c..0525bcf0 100644 --- a/askbot/skins/default/templates/question.html +++ b/askbot/skins/default/templates/question.html @@ -14,13 +14,13 @@ {% block forejs %} <link rel="canonical" href="{{settings.APP_URL}}{{question.get_absolute_url}}" /> {% if not question.closed %} - <script type='text/javascript' src='{% media "/media/js/com.cnprog.editor.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/wmd/showdown.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/wmd/wmd.js" %}'></script> - <link rel="stylesheet" type="text/css" href="{% media "/media/js/wmd/wmd.css" %}" /> + <script type='text/javascript' src='{% media "/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% media "/js/wmd/showdown.js" %}'></script> + <script type='text/javascript' src='{% media "/js/wmd/wmd.js" %}'></script> + <link rel="stylesheet" type="text/css" href="{% media "/js/wmd/wmd.css" %}" /> {% endif %} - <script type='text/javascript' src='{% media "/media/js/com.cnprog.post.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.validate.pack.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.validate.pack.js" %}'></script> <script type="text/javascript"> // define reputation needs for comments @@ -73,9 +73,9 @@ {% if question_vote %} <img id="question-img-upvote-{{ question.id }}" class="question-img-upvote" {% if question_vote.is_upvote %} - src="{% media "/media/images/vote-arrow-up-on.png" %}" + src="{% media "/images/vote-arrow-up-on.png" %}" {% else %} - src="{% media "/media/images/vote-arrow-up.png" %}" + src="{% media "/images/vote-arrow-up.png" %}" {% endif %} alt="{% trans "i like this post (click again to cancel)" %}" title="{% trans "i like this post (click again to cancel)" %}" /> @@ -85,9 +85,9 @@ </div> <img id="question-img-downvote-{{ question.id }}" class="question-img-downvote" {% if question_vote.is_downvote %} - src="{% media "/media/images/vote-arrow-down-on.png" %}" + src="{% media "/images/vote-arrow-down-on.png" %}" {% else %} - src="{% media "/media/images/vote-arrow-down.png" %}" + src="{% media "/images/vote-arrow-down.png" %}" {% endif %} alt="{% trans "i dont like this post (click again to cancel)" %}" title="{% trans "i dont like this post (click again to cancel)" %}" /> @@ -95,26 +95,26 @@ {% else %} <img id="question-img-upvote-{{ question.id }}" class="question-img-upvote" alt="{% trans "i like this post (click again to cancel)" %}" - src="{% media "/media/images/vote-arrow-up.png" %}" + src="{% media "/images/vote-arrow-up.png" %}" title="{% trans "i like this post (click again to cancel)" %}" /> <div id="question-vote-number-{{ question.id }}" class="vote-number" title="{% trans "current number of votes" %}"> {{ question.score }} </div> <img id="question-img-downvote-{{ question.id }}" class="question-img-downvote" - src="{% media "/media/images/vote-arrow-down.png" %}" + src="{% media "/images/vote-arrow-down.png" %}" alt="{% trans "i dont like this post (click again to cancel)" %}" title="{% trans "i dont like this post (click again to cancel)" %}" /> {% endif %} {% if favorited %} - <img class="question-img-favorite" src="{% media "/media/images/vote-favorite-on.png" %}" + <img class="question-img-favorite" src="{% media "/images/vote-favorite-on.png" %}" alt="{% trans "mark this question as favorite (click again to cancel)" %}" title="{% trans "mark this question as favorite (click again to cancel)" %}" /> <div id="favorite-number" class="favorite-number my-favorite-number"> {{ question.favourite_count }} </div> {% else %} - <img class="question-img-favorite" src="{% media "/media/images/vote-favorite-off.png" %}" + <img class="question-img-favorite" src="{% media "/images/vote-favorite-off.png" %}" alt="{% trans "remove favorite mark from this question (click again to restore mark)" %}" title="{% trans "remove favorite mark from this question (click again to restore mark)" %}" /> <div id="favorite-number" class="favorite-number"> @@ -189,7 +189,7 @@ <span class="comment-age"> ({% diff_date comment.added_at %})</span> {% if request.user|can_delete_comment:comment %} <img class="delete-icon" - src="{% media "/media/images/close-small.png" %}" + src="{% media "/images/close-small.png" %}" title="{% trans "delete this comment" %}"/> {% endif %} {% endspaceless %} @@ -255,26 +255,26 @@ <td style="width:30px;vertical-align:top"> <div class="vote-buttons"> <img id="answer-img-upvote-{{ answer.id }}" class="answer-img-upvote" - src="{% blockmedia %}/media/images/vote-arrow-up{% get_user_vote_image user_answer_votes answer.id 1 %}.png{% endblockmedia %}" + src="{% blockmedia %}/images/vote-arrow-up{% get_user_vote_image user_answer_votes answer.id 1 %}.png{% endblockmedia %}" alt="{% trans "i like this answer (click again to cancel)" %}" title="{% trans "i like this answer (click again to cancel)" %}"/> <div id="answer-vote-number-{{ answer.id }}" class="vote-number" title="{% trans "current number of votes" %}"> {{ answer.score }} </div> <img id="answer-img-downvote-{{ answer.id }}" class="answer-img-downvote" - src="{% blockmedia %}/media/images/vote-arrow-down{% get_user_vote_image user_answer_votes answer.id -1 %}.png{% endblockmedia %}" + src="{% blockmedia %}/images/vote-arrow-down{% get_user_vote_image user_answer_votes answer.id -1 %}.png{% endblockmedia %}" alt="{% trans "i dont like this answer (click again to cancel)" %}" title="{% trans "i dont like this answer (click again to cancel)" %}" /> {% if request.user == question.author %} <img id="answer-img-accept-{{ answer.id }}" class="answer-img-accept" - src="{% blockmedia %}/media/images/vote-accepted{% if answer.accepted %}-on{% endif %}.png{% endblockmedia %}" + src="{% blockmedia %}/images/vote-accepted{% if answer.accepted %}-on{% endif %}.png{% endblockmedia %}" alt="{% trans "mark this answer as favorite (click again to undo)" %}" title="{% trans "mark this answer as favorite (click again to undo)" %}" /> {% else %} {% if answer.accepted %} <img id="answer-img-accept-{{ answer.id }}" class="answer-img-accept" - src="{% blockmedia %}/media/images/vote-accepted{% if answer.accepted %}-on{% endif %}.png{% endblockmedia %}" + src="{% blockmedia %}/images/vote-accepted{% if answer.accepted %}-on{% endif %}.png{% endblockmedia %}" alt="{% blocktrans with question.author.username as question_author %}{{question_author}} has selected this answer as correct{% endblocktrans %}" title="{% blocktrans with question.author.username as question_author %}{{question_author}} has selected this answer as correct{% endblocktrans %}" {% endif %} @@ -331,7 +331,7 @@ <span class="comment-age"> ({% diff_date comment.added_at %})</span> {% if request.user|can_delete_comment:comment %} <img class="delete-icon" - src="{% media "/media/images/close-small.png" %}" + src="{% media "/images/close-small.png" %}" title="{% trans "delete this comment" %}"/> {% endif %} {% endspaceless %} diff --git a/askbot/skins/default/templates/question_edit.html b/askbot/skins/default/templates/question_edit.html index c4cee009..aba4c3e5 100644 --- a/askbot/skins/default/templates/question_edit.html +++ b/askbot/skins/default/templates/question_edit.html @@ -4,12 +4,12 @@ {% load extra_tags %} {% block title %}{% spaceless %}{% trans "Edit question" %}{% endspaceless %}{% endblock %} {% block forejs %} - <script type='text/javascript' src='{% media "/media/js/com.cnprog.editor.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.post.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.validate.pack.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/wmd/showdown.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/wmd/wmd.js" %}'></script> - <link rel="stylesheet" type="text/css" href="{% media "/media/js/wmd/wmd.css" %}" /> + <script type='text/javascript' src='{% media "/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.validate.pack.js" %}'></script> + <script type='text/javascript' src='{% media "/js/wmd/showdown.js" %}'></script> + <script type='text/javascript' src='{% media "/js/wmd/wmd.js" %}'></script> + <link rel="stylesheet" type="text/css" href="{% media "/js/wmd/wmd.css" %}" /> <script type="text/javascript"> //todo move javascript out $().ready(function(){ diff --git a/askbot/skins/default/templates/question_retag.html b/askbot/skins/default/templates/question_retag.html index 555faccd..97f723fb 100644 --- a/askbot/skins/default/templates/question_retag.html +++ b/askbot/skins/default/templates/question_retag.html @@ -4,9 +4,9 @@ {% load i18n %} {% block title %}{% spaceless %}{% trans "Change tags" %}{% endspaceless %}{% endblock %} {% block forejs %} - <script type='text/javascript' src='{% media "/media/js/com.cnprog.editor.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.post.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.validate.pack.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.validate.pack.js" %}'></script> <script type="text/javascript"> $().ready(function(){ diff --git a/askbot/skins/default/templates/questions.html b/askbot/skins/default/templates/questions.html index 2b1642d0..cf9517e1 100644 --- a/askbot/skins/default/templates/questions.html +++ b/askbot/skins/default/templates/questions.html @@ -22,8 +22,8 @@ Hilite.debug_referrer = location.href; }); </script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.editor.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.tag_selector.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.tag_selector.js" %}'></script> {% endblock %} {% block content %} {% get_current_language as LANGUAGE_CODE %} @@ -126,7 +126,7 @@ ><img style="vertical-align:middle;" alt="{% trans "subscribe to the questions feed" %}" - src="{% media "/media/images/feed-icon-small.png" %}"/> {% trans "rss feed" %}</a>) + src="{% media "/images/feed-icon-small.png" %}"/> {% trans "rss feed" %}</a>) </p> <p class="search-result-summary"> {% if author_name or search_tags or query %} diff --git a/askbot/skins/default/templates/revisions_answer.html b/askbot/skins/default/templates/revisions_answer.html index 5c37e386..92eafe6a 100644 --- a/askbot/skins/default/templates/revisions_answer.html +++ b/askbot/skins/default/templates/revisions_answer.html @@ -6,8 +6,8 @@ {% load humanize %} {% block title %}{% spaceless %}{% trans "Revision history" %}{% endspaceless %}{% endblock %} {% block forejs %} - <script type='text/javascript' src='{% media "/media/js/com.cnprog.editor.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.post.js" %}'></script> <script type="text/javascript"> //todo - take this out into .js file $().ready(function(){ @@ -46,7 +46,7 @@ <table width="100%"> <tr> <td width="20" style="vertical-align:middle"><img id="rev-arrow-{{ revision.revision }}" - src="{% media "/media/images/expander-arrow-show.gif" %}" + src="{% media "/images/expander-arrow-show.gif" %}" alt="{% trans "click to hide/show revision" %}"/> </td> <td width="30px" style="vertical-align:middle"><span class="revision-number" title="{% trans "revision" %} {{ revision.revision }}">{{ revision.revision }}</span></td> diff --git a/askbot/skins/default/templates/revisions_question.html b/askbot/skins/default/templates/revisions_question.html index a227071f..4c9153c5 100644 --- a/askbot/skins/default/templates/revisions_question.html +++ b/askbot/skins/default/templates/revisions_question.html @@ -7,8 +7,8 @@ {% load humanize %} {% block title %}{% spaceless %}{% trans "Revision history" %}{% endspaceless %}{% endblock %} {% block forejs %} - <script type='text/javascript' src='{% media "/media/js/com.cnprog.editor.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.post.js" %}'></script> <script type="text/javascript"> //todo - take this out into .js file $().ready(function(){ @@ -46,7 +46,7 @@ <table width="100%"> <tr> <td width="20" style="vertical-align:middle"><img id="rev-arrow-{{ revision.revision }}" - src="{% media "/media/images/expander-arrow-show.gif" %}" + src="{% media "/images/expander-arrow-show.gif" %}" alt="{% trans "click to hide/show revision" %}"/> </td> <td width="30px" style="vertical-align:middle"><span class="revision-number" title="{% trans "revision" %} {{ revision.revision }}">{{ revision.revision }}</span></td> diff --git a/askbot/skins/default/templates/tag_selector.html b/askbot/skins/default/templates/tag_selector.html index 7e5713fc..2dd30f51 100644 --- a/askbot/skins/default/templates/tag_selector.html +++ b/askbot/skins/default/templates/tag_selector.html @@ -11,7 +11,7 @@ title="{% blocktrans %}see questions tagged '{{ tag_name }}'{% endblocktrans %}" href="{% url questions %}?tags={{tag_name|urlencode}}">{{tag_name}}</a> <img class="delete-icon" - src="{% media "/media/images/close-small-dark.png" %}" + src="{% media "/images/close-small-dark.png" %}" title="{% blocktrans %}remove '{{tag_name}}' from the list of interesting tags{% endblocktrans %}"/> </span> {% endspaceless %} @@ -28,7 +28,7 @@ title="{% blocktrans %}see questions tagged '{{ tag_name }}'{% endblocktrans %}" href="{% url questions %}?tags={{tag_name|urlencode}}">{{tag_name}}</a> <img class="delete-icon" - src="{% media "/media/images/close-small-dark.png" %}" + src="{% media "/images/close-small-dark.png" %}" title="{% blocktrans %}remove '{{tag_name}}' from the list of ignored tags{% endblocktrans %}"/> </span> {% endspaceless %} diff --git a/askbot/skins/default/templates/user.html b/askbot/skins/default/templates/user.html index 956bb229..bd95deeb 100644 --- a/askbot/skins/default/templates/user.html +++ b/askbot/skins/default/templates/user.html @@ -14,8 +14,8 @@ {% block forejs %} {% if request.user|can_moderate_user:view_user %} <!-- todo: add condition that scripts are loaded for admins only --> - <script type='text/javascript' src='{% media "/media/js/com.cnprog.admin.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.form.js" %}'></script> + <script type='text/javascript' src='{% media "/js/com.cnprog.admin.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.form.js" %}'></script> {% endif %} <script type="text/javascript"> var viewUserID = {{view_user.id}}; diff --git a/askbot/skins/default/templates/user_edit.html b/askbot/skins/default/templates/user_edit.html index 6956c720..01f2da9e 100644 --- a/askbot/skins/default/templates/user_edit.html +++ b/askbot/skins/default/templates/user_edit.html @@ -24,7 +24,7 @@ {% if request.user.email %} {% gravatar request.user 128 %} {% else %} - <img src="{% media "/media/images/nophoto.png" %}"> + <img src="{% media "/images/nophoto.png" %}"> {% endif %} <h1><a href="{% url faq %}#gravatar">change picture</a><h1> </div> diff --git a/askbot/skins/default/templates/user_reputation.html b/askbot/skins/default/templates/user_reputation.html index 28b38e8b..e7eff2ee 100644 --- a/askbot/skins/default/templates/user_reputation.html +++ b/askbot/skins/default/templates/user_reputation.html @@ -6,8 +6,8 @@ {% load i18n %} {% load smart_if %} {% block userjs %} - <script type='text/javascript' src='{% media "/media/js/excanvas.min.js" %}'></script> - <script type='text/javascript' src='{% media "/media/js/jquery.flot.min.js" %}'></script> + <script type='text/javascript' src='{% media "/js/excanvas.min.js" %}'></script> + <script type='text/javascript' src='{% media "/js/jquery.flot.min.js" %}'></script> <script type="text/javascript"> $().ready(function(){ diff --git a/askbot/skins/default/templates/user_stats.html b/askbot/skins/default/templates/user_stats.html index bb7fcef4..05a629cf 100644 --- a/askbot/skins/default/templates/user_stats.html +++ b/askbot/skins/default/templates/user_stats.html @@ -47,12 +47,12 @@ <table> <tr> <td width="60"> - <img style="cursor: default;" src="{% media "/media/images/vote-arrow-up-on.png" %}" alt="{% trans "thumb up" %}" /> + <img style="cursor: default;" src="{% media "/images/vote-arrow-up-on.png" %}" alt="{% trans "thumb up" %}" /> <span title="{% trans "user has voted up this many times" %}" class="vote-count">{{up_votes}}</span> </td> <td width="60"> - <img style="cursor: default;" src="{% media "/media/images/vote-arrow-down-on.png" %}" alt="{% trans "thumb down" %}" /> + <img style="cursor: default;" src="{% media "/images/vote-arrow-down-on.png" %}" alt="{% trans "thumb down" %}" /> <span title="{% trans "user voted down this many times" %}" class="vote-count">{{down_votes}}</span> </td> diff --git a/askbot/skins/default/templates/user_votes.html b/askbot/skins/default/templates/user_votes.html index b56aab01..5a8f9316 100644 --- a/askbot/skins/default/templates/user_votes.html +++ b/askbot/skins/default/templates/user_votes.html @@ -12,9 +12,9 @@ <div style="width:150px;float:left">{% diff_date vote.voted_at 3 %}</div> <div style="width:30px;float:left"> {% ifequal vote.vote 1 %} - <img src="{% media "/media/images/vote-arrow-up-on.png" %}" title="{% trans "upvote" %}"> + <img src="{% media "/images/vote-arrow-up-on.png" %}" title="{% trans "upvote" %}"> {% else %} - <img src="{% media "/media/images/vote-arrow-down-on.png" %}" title="{% trans "downvote" %}"> + <img src="{% media "/images/vote-arrow-down-on.png" %}" title="{% trans "downvote" %}"> {% endifequal %} </div> <div style="float:left;overflow:hidden;width:750px"> diff --git a/askbot/skins/default/templates/users_questions.html b/askbot/skins/default/templates/users_questions.html index b18a4e5b..6f987558 100644 --- a/askbot/skins/default/templates/users_questions.html +++ b/askbot/skins/default/templates/users_questions.html @@ -10,14 +10,14 @@ <div class="favorites-count"> <img title="{% trans "this questions was selected as favorite" %} {{question.favourite_count}} {% trans "number of times" %}" alt="{% trans "thumb-up on" %}" - src="{% media "/media/images/vote-favorite-on.png" %}"/> + src="{% media "/images/vote-favorite-on.png" %}"/> <div><b>{{question.favourite_count|intcomma}}</b></div> </div> {% else %} <div class="favorites-count-off"> <img title="{% trans "this question was selected as favorite" %}{{question.favourite_count}} {% trans "number of times" %}" alt="{% trans "thumb-up off" %}" - src="{% media "/media/images/vote-favorite-off.png" %}"/> + src="{% media "/images/vote-favorite-off.png" %}"/> <div><b>{{question.favourite_count|intcomma}}</b></div> </div> {% endif %} diff --git a/askbot/skins/loaders.py b/askbot/skins/loaders.py index 23f0026b..629ec0fa 100644 --- a/askbot/skins/loaders.py +++ b/askbot/skins/loaders.py @@ -28,38 +28,3 @@ def load_template_source(name, dirs=None): tname = os.path.join('default','templates',name) return filesystem.load_template_source(tname,dirs) load_template_source.is_usable = True - -def find_media_source(url): - """returns url prefixed with the skin name - of the first skin that contains the file - directories are searched in this order: - askbot_settings.ASKBOT_DEFAULT_SKIN, then 'default', then 'commmon' - if file is not found - returns None - and logs an error message - """ - while url[0] == '/': url = url[1:] - d = os.path.dirname - n = os.path.normpath - j = os.path.join - f = os.path.isfile - #todo: handles case of multiple skin directories - skins = utils.get_skin_dirs()[0] - try: - use_skin = askbot_settings.ASKBOT_DEFAULT_SKIN - media = os.path.join(skins, use_skin, url) - assert(f(media)) - except: - try: - media = j(skins, 'default', url) - assert(f(media)) - use_skin = 'default' - except: - media = j(skins, 'common', url) - try: - assert(f(media)) - use_skin = 'common' - except: - logging.error('could not find media for %s' % url) - use_skin = '' - return None - return use_skin + '/' + url diff --git a/askbot/skins/utils.py b/askbot/skins/utils.py index e3f2ddc5..cef22f77 100644 --- a/askbot/skins/utils.py +++ b/askbot/skins/utils.py @@ -1,4 +1,6 @@ import os +import logging +from django.conf import settings as django_settings def get_skin_dirs(): #todo: handle case of multiple skin directories @@ -27,3 +29,52 @@ def get_skin_choices(): return [(i,i) for i in skin_list] +def get_media_url(url): + """returns url prefixed with the skin name + of the first skin that contains the file + directories are searched in this order: + askbot_settings.ASKBOT_DEFAULT_SKIN, then 'default', then 'commmon' + if file is not found - returns None + and logs an error message + """ + while url[0] == '/': url = url[1:] + #todo: handles case of multiple skin directories + skins = get_skin_dirs()[0] + + #purpose of this try statement is to determine + #which skin is currently used + try: + #this import statement must be hidden here + #because at startup time this branch will fail + #due to an import error + from askbot.conf import settings as askbot_settings + use_skin = askbot_settings.ASKBOT_DEFAULT_SKIN + resource_revision = askbot_settings.MEDIA_RESOURCE_REVISION + except ImportError: + use_skin = 'default' + resouce_revision = None + + #see if file exists, if not, try skins 'default', then 'common' + file_path = os.path.join(skins, use_skin, 'media', url) + if not os.path.isfile(file_path): + file_path = os.path.join(skins, 'default', 'media', url) + if os.path.isfile(file_path): + use_skin = 'default' + else: + file_path = os.path.join(skins, 'common', 'media', url) + if os.path.isfile(file_path): + use_skin = 'common' + else: + logging.critical('could not find media for %s' % url) + use_skin = '' + return None + + url = use_skin + '/media/' + url + url = '///' + django_settings.ASKBOT_URL + 'm/' + url + url = os.path.normpath(url) + + if resource_revision: + url += '?v=%d' % resource_revision + + return url + diff --git a/askbot/templatetags/extra_tags.py b/askbot/templatetags/extra_tags.py index 69ed4669..fe1e5cb2 100644 --- a/askbot/templatetags/extra_tags.py +++ b/askbot/templatetags/extra_tags.py @@ -17,7 +17,7 @@ from askbot.conf import settings as askbot_settings from django.template.defaulttags import url as default_url from django.template.defaultfilters import slugify from django.core.urlresolvers import reverse -from askbot import skins +from askbot.skins import utils as skin_utils from askbot.utils import colors from askbot.utils.functions import get_from_dict_or_object from askbot.templatetags import extra_filters @@ -347,11 +347,9 @@ def get_latest_changed_timestamp(): @register.simple_tag def media(url): - url = skins.loaders.find_media_source(url) + url = skin_utils.get_media_url(url) if url: - url = '///' + settings.ASKBOT_URL + '/m/' + url - return os.path.normpath(url) + '?v=%d' \ - % askbot_settings.MEDIA_RESOURCE_REVISION + return url else: return '' #todo: raise exception here? @@ -424,17 +422,14 @@ class BlockMediaUrlNode(template.Node): def __init__(self,nodelist): self.items = nodelist def render(self,context): - prefix = '///' + settings.ASKBOT_URL + 'm/' url = '' if self.items: url += '/' for item in self.items: url += item.render(context) - url = skins.loaders.find_media_source(url) - url = prefix + url - out = os.path.normpath(url) + '?v=%d' % askbot_settings.MEDIA_RESOURCE_REVISION - return out.replace(' ','') + url = skin_utils.get_media_url(url) + return url.replace(' ','') @register.tag(name='blockmedia') def blockmedia(parser,token): |