diff options
-rwxr-xr-x | .gitignore | 1 | ||||
-rw-r--r-- | askbot/conf/skin_general_settings.py | 38 | ||||
-rw-r--r-- | askbot/feed.py | 59 | ||||
-rw-r--r-- | askbot/middleware/locale.py | 26 | ||||
-rw-r--r-- | askbot/setup_templates/settings.py | 1 | ||||
-rw-r--r-- | askbot/setup_templates/settings.py.mustache | 1 | ||||
-rw-r--r-- | askbot/skins/default/media/style/lib_style.css | 22 | ||||
-rw-r--r-- | askbot/skins/default/media/style/lib_style.less | 37 | ||||
-rw-r--r-- | askbot/skins/default/media/style/style.css | 396 | ||||
-rw-r--r-- | askbot/skins/default/media/style/style.less | 150 | ||||
-rw-r--r-- | askbot/skins/default/templates/main_page/tab_bar.html | 4 | ||||
-rw-r--r-- | askbot/skins/default/templates/question/question_card.html | 2 | ||||
-rw-r--r-- | askbot/skins/utils.py | 14 |
13 files changed, 526 insertions, 225 deletions
@@ -47,3 +47,4 @@ run recaptcha /.ve /db.sq3 +*.DS_Store diff --git a/askbot/conf/skin_general_settings.py b/askbot/conf/skin_general_settings.py index ccecdaba..6abee90a 100644 --- a/askbot/conf/skin_general_settings.py +++ b/askbot/conf/skin_general_settings.py @@ -30,6 +30,40 @@ settings.register( ) ) +LANGUAGE_CHOICES = ( + ('en', _("English")), + ('es', _("Spanish")), + ('ca', _("Catalan")), + ('de', _("German")), + ('el', _("Greek")), + ('fi', _("Finnish")), + ('fr', _("French")), + ('hi', _("Hindi")), + ('hu', _("Hungarian")), + ('it', _("Italian")), + ('ja', _("Japanese")), + ('ko', _("Korean")), + ('pt', _("Portuguese")), + ('pt_BR', _("Brazilian Portuguese")), + ('ro', _("Romanian")), + ('ru', _("Russian")), + ('sr', _("Serbian")), + ('tr', _("Turkish")), + ('vi', _("Vietnamese")), + ('zh_CN', _("Chinese")), + ('zh_TW', _("Chinese (Taiwan)")), + ) + +settings.register( + values.StringValue( + GENERAL_SKIN_SETTINGS, + 'ASKBOT_LANGUAGE', + default = 'en', + choices = LANGUAGE_CHOICES, + description = _('Select Language'), + ) +) + settings.register( values.BooleanValue( GENERAL_SKIN_SETTINGS, @@ -198,7 +232,7 @@ settings.register( description = _('Apply custom style sheet (CSS)'), help_text = _( 'Check if you want to change appearance ' - 'of your form by adding custom style sheet rules ' + 'of your form by adding custom style sheet rules ' '(please see the next item)' ), default = False @@ -214,7 +248,7 @@ settings.register( '<strong>To use this function</strong>, check ' '"Apply custom style sheet" option above. ' 'The CSS rules added in this window will be applied ' - 'after the default style sheet rules. ' + 'after the default style sheet rules. ' 'The custom style sheet will be served dynamically at ' 'url "<forum url>/custom.css", where ' 'the "<forum url> part depends (default is ' diff --git a/askbot/feed.py b/askbot/feed.py index c1933afe..776aad5e 100644 --- a/askbot/feed.py +++ b/askbot/feed.py @@ -25,20 +25,29 @@ from askbot.conf import settings as askbot_settings class RssIndividualQuestionFeed(Feed): """rss feed class for particular questions """ - title = askbot_settings.APP_TITLE + _(' - ')+ _('Individual question feed') - link = askbot_settings.APP_URL - description = askbot_settings.APP_DESCRIPTION - copyright = askbot_settings.APP_COPYRIGHT + + def title(self): + return askbot_settings.APP_TITLE + _(' - ') + \ + _('Individual question feed') + + def feed_copyright(self): + return askbot_settings.APP_COPYRIGHT + + def description(self): + return askbot_settings.APP_DESCRIPTION def get_object(self, bits): if len(bits) != 1: raise ObjectDoesNotExist return Post.objects.get_questions().get(id__exact = bits[0]) - + def item_link(self, item): """get full url to the item """ - return self.link + item.get_absolute_url() + return askbot_settings.APP_URL + item.get_absolute_url() + + def link(self): + return askbot_settings.APP_URL def item_pubdate(self, item): """get date of creation for the item @@ -56,7 +65,7 @@ class RssIndividualQuestionFeed(Feed): chain_elements.append( Post.objects.get_comments().filter(parent=item) ) - + answers = Post.objects.get_answers().filter(thread = item.thread) for answer in answers: chain_elements.append([answer,]) @@ -65,7 +74,7 @@ class RssIndividualQuestionFeed(Feed): ) return itertools.chain(*chain_elements) - + def item_title(self, item): """returns the title for the item """ @@ -77,7 +86,7 @@ class RssIndividualQuestionFeed(Feed): elif item.post_type == "comment": title = "Comment by %s for %s" % (item.author, self.title) return title - + def item_description(self, item): """returns the description for the item """ @@ -87,16 +96,24 @@ class RssIndividualQuestionFeed(Feed): class RssLastestQuestionsFeed(Feed): """rss feed class for the latest questions """ - title = askbot_settings.APP_TITLE + _(' - ')+ _('latest questions') - link = askbot_settings.APP_URL - description = askbot_settings.APP_DESCRIPTION - #ttl = 10 - copyright = askbot_settings.APP_COPYRIGHT + + def title(self): + return askbot_settings.APP_TITLE + _(' - ') + \ + _('Individual question feed') + + def feed_copyright(self): + return askbot_settings.APP_COPYRIGHT + + def description(self): + return askbot_settings.APP_DESCRIPTION def item_link(self, item): """get full url to the item """ - return self.link + item.get_absolute_url() + return askbot_settings.APP_URL + item.get_absolute_url() + + def link(self): + return askbot_settings.APP_URL def item_author_name(self, item): """get name of author @@ -117,10 +134,10 @@ class RssLastestQuestionsFeed(Feed): """returns url without the slug because the slug can change """ - return self.link + item.get_absolute_url(no_slug = True) - + return askbot_settings.APP_URL + item.get_absolute_url(no_slug = True) + def item_description(self, item): - """returns the desciption for the item + """returns the description for the item """ return item.text @@ -142,12 +159,12 @@ class RssLastestQuestionsFeed(Feed): if tags: #if there are tags in GET, filter the #questions additionally - for tag in tags: + for tag in tags: qs = qs.filter(thread__tags__name = tag) - + return qs.order_by('-thread__last_activity_at')[:30] - + def main(): """main function for use as a script diff --git a/askbot/middleware/locale.py b/askbot/middleware/locale.py new file mode 100644 index 00000000..c92e977a --- /dev/null +++ b/askbot/middleware/locale.py @@ -0,0 +1,26 @@ +"Taken from django.middleware.locale: this is the locale selecting middleware that will look at accept headers" + +from django.utils.cache import patch_vary_headers +from django.utils import translation +from askbot.conf import settings + +class LocaleMiddleware(object): + """ + This is a very simple middleware that parses a request + and decides what translation object to install in the current + thread context. This allows pages to be dynamically + translated to the language the user desires (if the language + is available, of course). + """ + + def process_request(self, request): + language = settings.ASKBOT_LANGUAGE + translation.activate(language) + request.LANGUAGE_CODE = translation.get_language() + + def process_response(self, request, response): + patch_vary_headers(response, ('Accept-Language',)) + if 'Content-Language' not in response: + response['Content-Language'] = translation.get_language() + translation.deactivate() + return response diff --git a/askbot/setup_templates/settings.py b/askbot/setup_templates/settings.py index 191d13f3..b326ea85 100644 --- a/askbot/setup_templates/settings.py +++ b/askbot/setup_templates/settings.py @@ -98,6 +98,7 @@ TEMPLATE_LOADERS = ( MIDDLEWARE_CLASSES = ( #'django.middleware.gzip.GZipMiddleware', + 'askbot.middleware.locale.LocaleMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', #'django.middleware.cache.UpdateCacheMiddleware', 'django.middleware.common.CommonMiddleware', diff --git a/askbot/setup_templates/settings.py.mustache b/askbot/setup_templates/settings.py.mustache index 3287fb18..eb1cb1c1 100644 --- a/askbot/setup_templates/settings.py.mustache +++ b/askbot/setup_templates/settings.py.mustache @@ -97,6 +97,7 @@ TEMPLATE_LOADERS = ( MIDDLEWARE_CLASSES = ( #'django.middleware.gzip.GZipMiddleware', + 'askbot.middleware.locale.LocaleMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', #'django.middleware.cache.UpdateCacheMiddleware', 'django.middleware.common.CommonMiddleware', diff --git a/askbot/skins/default/media/style/lib_style.css b/askbot/skins/default/media/style/lib_style.css new file mode 100644 index 00000000..a92af477 --- /dev/null +++ b/askbot/skins/default/media/style/lib_style.css @@ -0,0 +1,22 @@ +/* General Predifined classes, read more in lesscss.org */ +/* Variables for Colors*/ +/* Variables for fonts*/ +/* "Trebuchet MS", sans-serif;*/ +/* Buttons */ +.button-style-hover { + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + text-decoration: none; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; +} +/* General styles for gradients */ +/* Receive exactly positions for background Sprite */ +/* CSS3 Elements */ diff --git a/askbot/skins/default/media/style/lib_style.less b/askbot/skins/default/media/style/lib_style.less index 941c83ff..bedd8c60 100644 --- a/askbot/skins/default/media/style/lib_style.less +++ b/askbot/skins/default/media/style/lib_style.less @@ -17,6 +17,43 @@ @main-font:'Yanone Kaffeesatz', sans-serif; @secondary-font:Arial; +/* Buttons */ + +.button-style(@w:100px ,@h:20px, @f:14px){ + width:@w; + height:@h; + font-size:@f; + text-align:center; + text-decoration:none; + cursor:pointer; + color:@button-label; + font-family:@main-font; + .text-shadow(0px,1px,0px,#c6d9dd); + border-top:#eaf2f3 1px solid; + .linear-gradient(#d1e2e5,#a9c2c7); + .rounded-corners(4px); + .box-shadow(1px, 1px, 2px, #636363) +} + +.button-style-hover{ + .linear-gradient(#cde5e9,#94b3ba); + text-decoration:none; + .text-shadow(0px, 1px, 0px, #c6d9dd); +} + +/* General styles for gradients */ + +.linear-gradient(@start:#eee,@end:#fff,@stop:25%){ + background-color: @start; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start), color-stop(@stop, @start), to(@end)); + background-image: -webkit-linear-gradient(@start, @start @stop, @end); + background-image: -moz-linear-gradient(top, @start, @start @stop, @end); + background-image: -ms-linear-gradient(@start, @start @stop, @end); + background-image: -o-linear-gradient(@start, @start @stop, @end); + background-image: linear-gradient(@start, @start @stop, @end); +} + /* Receive exactly positions for background Sprite */ .sprites(@hor,@vert,@back:url(../images/sprites.png)){ diff --git a/askbot/skins/default/media/style/style.css b/askbot/skins/default/media/style/style.css index 5752b502..b218e5eb 100644 --- a/askbot/skins/default/media/style/style.css +++ b/askbot/skins/default/media/style/style.css @@ -3,6 +3,22 @@ /* Variables for Colors*/ /* Variables for fonts*/ /* "Trebuchet MS", sans-serif;*/ +/* Buttons */ +.button-style-hover { + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + text-decoration: none; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; +} +/* General styles for gradients */ /* Receive exactly positions for background Sprite */ /* CSS3 Elements */ /* Library of predifined less functions styles */ @@ -427,28 +443,49 @@ body.anon #searchBar .searchInputCancelable { #askButton { /* check blocks/secondary_header.html and widgets/ask_button.html*/ - background: url(../images/bigbutton.png) repeat-x bottom; line-height: 44px; - text-align: center; + margin-top: 6px; + float: right; + text-transform: uppercase; width: 200px; height: 42px; font-size: 23px; + text-align: center; + text-decoration: none; + cursor: pointer; color: #4a757f; - margin-top: 7px; - float: right; - text-transform: uppercase; - border-radius: 5px; - -ms-border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - -khtml-border-radius: 5px; + font-family: 'Yanone Kaffeesatz', sans-serif; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border-top: #eaf2f3 1px solid; + background-color: #d1e2e5; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); + background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + border-radius: 4px; + -ms-border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -khtml-border-radius: 4px; -webkit-box-shadow: 1px 1px 2px #636363; -moz-box-shadow: 1px 1px 2px #636363; box-shadow: 1px 1px 2px #636363; } #askButton:hover { + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); text-decoration: none; - background: url(../images/bigbutton.png) repeat-x top; text-shadow: 0px 1px 0px #c6d9dd; -moz-text-shadow: 0px 1px 0px #c6d9dd; -webkit-text-shadow: 0px 1px 0px #c6d9dd; @@ -498,6 +535,7 @@ body.anon #searchBar .searchInputCancelable { padding-right: 10px; margin-bottom: 10px; font-family: 'Yanone Kaffeesatz', sans-serif; + width: 190px; } .box h3 { color: #4a757f; @@ -555,15 +593,37 @@ body.anon #searchBar .searchInputCancelable { } .box .inputs #interestingTagAdd, .box .inputs #ignoredTagAdd { - background: url(../images/small-button-blue.png) repeat-x top; border: 0; - color: #4a757f; font-weight: bold; - font-size: 12px; + margin-top: -2px; width: 30px; height: 27px; - margin-top: -2px; + font-size: 12px; + text-align: center; + text-decoration: none; cursor: pointer; + color: #4a757f; + font-family: 'Yanone Kaffeesatz', sans-serif; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border-top: #eaf2f3 1px solid; + background-color: #d1e2e5; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); + background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + border-radius: 4px; + -ms-border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -khtml-border-radius: 4px; + -webkit-box-shadow: 1px 1px 2px #636363; + -moz-box-shadow: 1px 1px 2px #636363; + box-shadow: 1px 1px 2px #636363; border-radius: 4px; -ms-border-radius: 4px; -moz-border-radius: 4px; @@ -572,32 +632,52 @@ body.anon #searchBar .searchInputCancelable { text-shadow: 0px 1px 0px #e6f6fa; -moz-text-shadow: 0px 1px 0px #e6f6fa; -webkit-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-box-shadow: 1px 1px 2px #808080; - -moz-box-shadow: 1px 1px 2px #808080; - box-shadow: 1px 1px 2px #808080; } .box .inputs #interestingTagAdd:hover, .box .inputs #ignoredTagAdd:hover { - background: url(../images/small-button-blue.png) repeat-x bottom; + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + text-decoration: none; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; } .box img.gravatar { margin: 1px; } .box a.followed, .box a.follow { - background: url(../images/medium-button.png) top repeat-x; - height: 34px; line-height: 34px; - text-align: center; border: 0; - font-family: 'Yanone Kaffeesatz', sans-serif; - color: #4a757f; font-weight: normal; - font-size: 21px; margin-top: 3px; display: block; width: 120px; + height: 34px; + font-size: 21px; + text-align: center; text-decoration: none; + cursor: pointer; + color: #4a757f; + font-family: 'Yanone Kaffeesatz', sans-serif; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border-top: #eaf2f3 1px solid; + background-color: #d1e2e5; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); + background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); border-radius: 4px; -ms-border-radius: 4px; -moz-border-radius: 4px; @@ -611,8 +691,18 @@ body.anon #searchBar .searchInputCancelable { } .box a.followed:hover, .box a.follow:hover { + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); text-decoration: none; - background: url(../images/medium-button.png) bottom repeat-x; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; text-shadow: 0px 1px 0px #c6d9dd; -moz-text-shadow: 0px 1px 0px #c6d9dd; -webkit-text-shadow: 0px 1px 0px #c6d9dd; @@ -1049,7 +1139,7 @@ ul#related-tags { ul.tags li { float: left; display: block; - margin: 0 8px 0 0; + margin: 0 8px 8px 0; padding: 0; height: 20px; } @@ -1261,14 +1351,28 @@ ul#related-tags li { .ask-page input.submit, .edit-question-page input.submit { float: left; - background: url(../images/medium-button.png) top repeat-x; - height: 34px; - border: 0; - font-family: 'Yanone Kaffeesatz', sans-serif; - color: #4a757f; font-weight: normal; - font-size: 21px; margin-top: 3px; + width: 160px; + height: 34px; + font-size: 21px; + text-align: center; + text-decoration: none; + cursor: pointer; + color: #4a757f; + font-family: 'Yanone Kaffeesatz', sans-serif; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border-top: #eaf2f3 1px solid; + background-color: #d1e2e5; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); + background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); border-radius: 4px; -ms-border-radius: 4px; -moz-border-radius: 4px; @@ -1282,8 +1386,18 @@ ul#related-tags li { #fmanswer input.submit:hover, .ask-page input.submit:hover, .edit-question-page input.submit:hover { + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); text-decoration: none; - background: url(../images/medium-button.png) bottom repeat-x; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; text-shadow: 0px 1px 0px #c6d9dd; -moz-text-shadow: 0px 1px 0px #c6d9dd; -webkit-text-shadow: 0px 1px 0px #c6d9dd; @@ -1301,7 +1415,12 @@ ul#related-tags li { border-top: 0; padding: 10px; margin-bottom: 10px; - width: 717px; + width: 710px; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + #editor { + width: 717px; + } } #id_title { width: 100%; @@ -1700,31 +1819,49 @@ ul#related-tags li { width: 100px; } .question-page .comments button { - background: url(../images/small-button-blue.png) repeat-x top; - border: 0; - color: #4a757f; - font-family: Arial; - font-size: 13px; - width: 100px; - font-weight: bold; - height: 27px; line-height: 25px; margin-bottom: 5px; + width: 100px; + height: 27px; + font-size: 12px; + text-align: center; + text-decoration: none; cursor: pointer; + color: #4a757f; + font-family: 'Yanone Kaffeesatz', sans-serif; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border-top: #eaf2f3 1px solid; + background-color: #d1e2e5; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); + background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); border-radius: 4px; -ms-border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; -khtml-border-radius: 4px; - text-shadow: 0px 1px 0px #e6f6fa; - -moz-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-box-shadow: 1px 1px 2px #808080; - -moz-box-shadow: 1px 1px 2px #808080; - box-shadow: 1px 1px 2px #808080; + -webkit-box-shadow: 1px 1px 2px #636363; + -moz-box-shadow: 1px 1px 2px #636363; + box-shadow: 1px 1px 2px #636363; + font-family: Arial; + font-weight: bold; } .question-page .comments button:hover { - background: url(../images/small-button-blue.png) bottom repeat-x; + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + text-decoration: none; text-shadow: 0px 1px 0px #c6d9dd; -moz-text-shadow: 0px 1px 0px #c6d9dd; -webkit-text-shadow: 0px 1px 0px #c6d9dd; @@ -1865,6 +2002,11 @@ ul#related-tags li { text-align: center; padding-top: 2px; margin: 10px 10px 0px 3px; + /* smalls IE fixes */ + + *margin: 0; + *height: 210px; + *width: 30px; } .question-page .vote-buttons IMG { cursor: pointer; @@ -2070,35 +2212,55 @@ ul#related-tags li { .users-page input.submit, .user-profile-edit-page input.submit, .user-profile-page input.submit { - background: url(../images/small-button-blue.png) repeat-x top; - border: 0; - color: #4a757f; - font-weight: bold; - font-size: 13px; - font-family: Arial; - height: 26px; + font-weight: normal; margin: 5px 0px; width: 100px; + height: 26px; + font-size: 15px; + text-align: center; + text-decoration: none; cursor: pointer; + color: #4a757f; + font-family: 'Yanone Kaffeesatz', sans-serif; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border-top: #eaf2f3 1px solid; + background-color: #d1e2e5; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); + background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); border-radius: 4px; -ms-border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; -khtml-border-radius: 4px; - text-shadow: 0px 1px 0px #e6f6fa; - -moz-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-box-shadow: 1px 1px 2px #808080; - -moz-box-shadow: 1px 1px 2px #808080; - box-shadow: 1px 1px 2px #808080; + -webkit-box-shadow: 1px 1px 2px #636363; + -moz-box-shadow: 1px 1px 2px #636363; + box-shadow: 1px 1px 2px #636363; + font-family: Arial; } .openid-signin input.submit:hover, .meta input.submit:hover, .users-page input.submit:hover, .user-profile-edit-page input.submit:hover, .user-profile-page input.submit:hover { - background: url(../images/small-button-blue.png) repeat-x bottom; + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); text-decoration: none; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; } .openid-signin .cancel, .meta .cancel, @@ -2145,34 +2307,55 @@ ul#related-tags li { #local_login_buttons .submit-b, #password-fs .submit-b, #openid-fs .submit-b { - background: url(../images/small-button-blue.png) repeat-x top; - border: 0; - color: #4a757f; - font-weight: bold; - font-size: 13px; - font-family: Arial; + width: 100px; height: 24px; - margin-top: -2px; - padding-left: 10px; - padding-right: 10px; + font-size: 15px; + text-align: center; + text-decoration: none; cursor: pointer; + color: #4a757f; + font-family: 'Yanone Kaffeesatz', sans-serif; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border-top: #eaf2f3 1px solid; + background-color: #d1e2e5; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); + background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); border-radius: 4px; -ms-border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; -khtml-border-radius: 4px; - text-shadow: 0px 1px 0px #e6f6fa; - -moz-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-box-shadow: 1px 1px 2px #808080; - -moz-box-shadow: 1px 1px 2px #808080; - box-shadow: 1px 1px 2px #808080; + -webkit-box-shadow: 1px 1px 2px #636363; + -moz-box-shadow: 1px 1px 2px #636363; + box-shadow: 1px 1px 2px #636363; + font-family: Arial; + font-weight: bold; + padding-right: 10px; + border: 0; } #email-input-fs .submit-b:hover, #local_login_buttons .submit-b:hover, #password-fs .submit-b:hover, #openid-fs .submit-b:hover { - background: url(../images/small-button-blue.png) repeat-x bottom; + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + text-decoration: none; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; } .openid-input { background: url(../images/openid.gif) no-repeat; @@ -2302,31 +2485,52 @@ a:hover.medal { .follow-toggle, .submit { border: 0 !important; - color: #4a757f; font-weight: bold; - font-size: 12px; - height: 26px; line-height: 26px; margin-top: -2px; - font-size: 15px; + width: 100px; + height: 26px; + font-size: 12px; + text-align: center; + text-decoration: none; cursor: pointer; + color: #4a757f; font-family: 'Yanone Kaffeesatz', sans-serif; - background: url(../images/small-button-blue.png) repeat-x top; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border-top: #eaf2f3 1px solid; + background-color: #d1e2e5; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); + background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); + background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); border-radius: 4px; -ms-border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; -khtml-border-radius: 4px; - text-shadow: 0px 1px 0px #e6f6fa; - -moz-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-text-shadow: 0px 1px 0px #e6f6fa; - -webkit-box-shadow: 1px 1px 2px #808080; - -moz-box-shadow: 1px 1px 2px #808080; - box-shadow: 1px 1px 2px #808080; + -webkit-box-shadow: 1px 1px 2px #636363; + -moz-box-shadow: 1px 1px 2px #636363; + box-shadow: 1px 1px 2px #636363; } .follow-toggle:hover, .submit:hover { - background: url(../images/small-button-blue.png) repeat-x bottom; + background-color: #cde5e9; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); + background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); + background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); + text-decoration: none; + text-shadow: 0px 1px 0px #c6d9dd; + -moz-text-shadow: 0px 1px 0px #c6d9dd; + -webkit-text-shadow: 0px 1px 0px #c6d9dd; text-decoration: none !important; } .follow-toggle .follow { @@ -3246,3 +3450,11 @@ body.anon.lang-es #searchBar .searchInput { body.anon.lang-es #searchBar .searchInputCancelable { width: 390px; } +a.re_expand { + color: #616161; + text-decoration: none; +} +a.re_expand .re_content { + display: none; + margin-left: 77px; +} diff --git a/askbot/skins/default/media/style/style.less b/askbot/skins/default/media/style/style.less index e63ff373..0d1e8112 100644 --- a/askbot/skins/default/media/style/style.less +++ b/askbot/skins/default/media/style/style.less @@ -154,6 +154,7 @@ h1 { padding: 10px 0 5px 0px; } + /* ----- Extra space above for messages ----- */ body.user-messages { @@ -463,24 +464,15 @@ body.anon { #askButton{ /* check blocks/secondary_header.html and widgets/ask_button.html*/ - background: url(../images/bigbutton.png) repeat-x bottom; line-height:44px; - text-align:center; - width:200px; - height:42px; - font-size:23px; - color:@button-label; - margin-top:7px; + margin-top:6px; float:right; text-transform:uppercase; - .rounded-corners(5px); - .box-shadow(1px, 1px, 2px, #636363) + .button-style(200px, 42px, 23px); } #askButton:hover{ - text-decoration:none; - background: url(../images/bigbutton.png) repeat-x top; - .text-shadow(0px, 1px, 0px, #c6d9dd) + .button-style-hover; } /* ----- Content layout, check two_column_body.html or one_column_body.html ----- */ @@ -531,6 +523,7 @@ body.anon { padding-right:10px; margin-bottom:10px; font-family:@main-font; + width:190px; } h3{ color:#4a757f; @@ -590,23 +583,15 @@ body.anon { height:25px; } #interestingTagAdd, #ignoredTagAdd{ - background:url(../images/small-button-blue.png) repeat-x top; border:0; - color:@button-label; font-weight:bold; - font-size:12px; - width:30px; - height:27px; margin-top:-2px; - cursor:pointer; + .button-style(30px,27px,12px); .rounded-corners(4px); - .text-shadow(0px,1px,0px,#E6F6FA); - .box-shadow(1px, 1px, 2px, #808080); - - + .text-shadow(0px,1px,0px,#E6F6FA); } #interestingTagAdd:hover, #ignoredTagAdd:hover{ - background:url(../images/small-button-blue.png) repeat-x bottom; + .button-style-hover; } } @@ -617,28 +602,17 @@ body.anon { /* widgets for question template */ a.followed, a.follow{ - background: url(../images/medium-button.png) top repeat-x; - height:34px; line-height:34px; - text-align:center; border:0; - font-family:@main-font; - color:@button-label; font-weight:normal; - font-size:21px; margin-top:3px; - display:block; - width:120px; - text-decoration:none; - .rounded-corners(4px); - .box-shadow(1px, 1px, 2px, #636363); + .button-style(120px,34px,21px); .center; } a.followed:hover, a.follow:hover{ - text-decoration:none; - background: url(../images/medium-button.png) bottom repeat-x; + .button-style-hover; .text-shadow(0px, 1px, 0px, #c6d9dd); } @@ -1133,7 +1107,7 @@ ul#related-tags { ul.tags li { float:left; display: block; - margin: 0 8px 0 0; + margin: 0 8px 8px 0; padding: 0; height:20px; } @@ -1352,24 +1326,16 @@ ul#related-tags li { .ask-page input.submit, .edit-question-page input.submit { float: left; - background: url(../images/medium-button.png) top repeat-x; - height:34px; - border:0; - font-family:@main-font; - color:@button-label; font-weight:normal; - font-size:21px; margin-top:3px; - .rounded-corners(4px); - .box-shadow(1px, 1px, 2px, #636363); + .button-style(160px,34px,21px); margin-right:7px; } #fmanswer input.submit:hover, .ask-page input.submit:hover, .edit-question-page input.submit:hover{ - text-decoration:none; - background: url(../images/medium-button.png) bottom repeat-x; + .button-style-hover; .text-shadow(0px, 1px, 0px, #c6d9dd) } #editor { /*adjustment for editor preview*/ @@ -1383,7 +1349,13 @@ ul#related-tags li { border-top:0; padding:10px; margin-bottom:10px; - width:717px; + width:710px; +} + +@media screen and (-webkit-min-device-pixel-ratio:0){ + #editor{ + width:717px; + } } #id_title { @@ -1796,24 +1768,14 @@ ul#related-tags li { width: 100px; } button{ - background:url(../images/small-button-blue.png) repeat-x top; - border:0; - color:@button-label; - font-family:@body-font; - font-size:13px; - width:100px; - font-weight:bold; - height:27px; line-height:25px; margin-bottom:5px; - cursor:pointer; - .rounded-corners(4px); - .text-shadow(0px,1px,0px,#E6F6FA); - .box-shadow(1px, 1px, 2px, #808080); + .button-style(100px,27px,12px); + font-family:@body-font; + font-weight:bold; } button:hover{ - background: url(../images/small-button-blue.png) bottom repeat-x; - .text-shadow(0px, 1px, 0px, #c6d9dd); + .button-style-hover; } .counter { display: inline-block; @@ -1958,6 +1920,10 @@ ul#related-tags li { text-align: center; padding-top: 2px; margin:10px 10px 0px 3px; + /* smalls IE fixes */ + *margin:0; + *height:210px; + *width:30px; } .vote-buttons IMG { @@ -2155,23 +2121,13 @@ ul#related-tags li { font-size:14px; } input.submit{ - background:url(../images/small-button-blue.png) repeat-x top; - border:0; - color:@button-label; - font-weight:bold; - font-size:13px; - font-family:@body-font; - height:26px; + font-weight:normal; margin:5px 0px; - width:100px; - cursor:pointer; - .rounded-corners(4px); - .text-shadow(0px,1px,0px,#E6F6FA); - .box-shadow(1px, 1px, 2px, #808080); + .button-style(100px,26px,15px); + font-family:@body-font; } input.submit:hover{ - background:url(../images/small-button-blue.png) repeat-x bottom; - text-decoration:none; + .button-style-hover; } .cancel{ background:url(../images/small-button-cancel.png) repeat-x top !important; @@ -2194,25 +2150,19 @@ ul#related-tags li { width:200px; } .submit-b{ - background:url(../images/small-button-blue.png) repeat-x top; - border:0; - color:@button-label; - font-weight:bold; - font-size:13px; + .button-style(100px,24px,15px); font-family:@body-font; - height:24px; - margin-top:-2px; - padding-left:10px; + font-weight:bold; padding-right:10px; - cursor:pointer; - .rounded-corners(4px); - .text-shadow(0px,1px,0px,#E6F6FA); - .box-shadow(1px, 1px, 2px, #808080) + border:0; } + .submit-b:hover{ - background:url(../images/small-button-blue.png) repeat-x bottom; + .button-style-hover; } } + + .openid-input { background: url(../images/openid.gif) no-repeat; padding-left: 15px; @@ -2357,23 +2307,14 @@ a:hover.medal { .follow-toggle,.submit { border:0 !important; - color:@button-label; font-weight:bold; - font-size:12px; - height:26px; line-height:26px; margin-top:-2px; - font-size:15px; - cursor:pointer; - font-family:@main-font; - background:url(../images/small-button-blue.png) repeat-x top; - .rounded-corners(4px); - .text-shadow(0px,1px,0px,#E6F6FA); - .box-shadow(1px, 1px, 2px, #808080) + .button-style(100px,26px,12px); } .follow-toggle:hover, .submit:hover { - background:url(../images/small-button-blue.png) repeat-x bottom; + .button-style-hover; text-decoration:none !important; } @@ -3383,3 +3324,12 @@ body.anon.lang-es { } } } +a.re_expand{ + color: #616161; + text-decoration:none; +} + +a.re_expand .re_content{ + display:none; + margin-left:77px; +} diff --git a/askbot/skins/default/templates/main_page/tab_bar.html b/askbot/skins/default/templates/main_page/tab_bar.html index 8b666155..17ab810e 100644 --- a/askbot/skins/default/templates/main_page/tab_bar.html +++ b/askbot/skins/default/templates/main_page/tab_bar.html @@ -3,9 +3,9 @@ {% cache 0 "scope_sort_tabs" search_tags request.user author_name scope sort query context.page language_code %} <a class="rss" {% if feed_url %} - href="{{settings.APP_URL}}{{feed_url}}" + href="{{feed_url}}" {% else %} - href="{{settings.APP_URL}}/feeds/rss/" + href="/feeds/rss/" {% endif %} title="{% trans %}subscribe to the questions feed{% endtrans %}" >{% trans %}RSS{% endtrans %} diff --git a/askbot/skins/default/templates/question/question_card.html b/askbot/skins/default/templates/question/question_card.html index 08f7ccee..dd52ea0f 100644 --- a/askbot/skins/default/templates/question/question_card.html +++ b/askbot/skins/default/templates/question/question_card.html @@ -29,4 +29,4 @@ </div> </div> -<div class="clean"></div> + diff --git a/askbot/skins/utils.py b/askbot/skins/utils.py index a07b1fa9..dee14e56 100644 --- a/askbot/skins/utils.py +++ b/askbot/skins/utils.py @@ -3,7 +3,7 @@ the lookup resolution process for templates and media works as follows: * look up item in selected skin * if not found look in 'default' -* raise an exception +* raise an exception """ import os import logging @@ -56,7 +56,7 @@ def get_available_skins(selected=None): #re-insert default as a last item skins['default'] = default_dir - skins['common'] = common_dir + skins['common'] = common_dir return skins @@ -71,7 +71,7 @@ def get_path_to_skin(skin): return skin_dirs.get(skin, None) def get_skin_choices(): - """returns a tuple for use as a set of + """returns a tuple for use as a set of choices in the form""" skin_names = list(reversed(get_available_skins().keys())) return zip(skin_names, skin_names) @@ -86,7 +86,7 @@ def resolve_skin_for_media(media=None, preferred_skin = None): def get_media_url(url, ignore_missing = False): """returns url prefixed with the skin name - of the first skin that contains the file + 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 @@ -156,7 +156,7 @@ def get_media_url(url, ignore_missing = False): url = django_settings.STATIC_URL + use_skin + '/media/' + url url = os.path.normpath(url).replace('\\', '/') - + if resource_revision: url += '?v=%d' % resource_revision @@ -174,7 +174,7 @@ def update_media_revision(skin = None): if skin in get_skin_choices(): skin_path = get_path_to_skin(skin) else: - raise MediaNotFound('Skin %s not found' % skin) + raise MediaNotFound('Skin %s not found' % skin) else: skin = 'default' skin_path = get_path_to_skin(askbot_settings.ASKBOT_DEFAULT_SKIN) @@ -193,6 +193,6 @@ def update_media_revision(skin = None): if current_hash != askbot_settings.MEDIA_RESOURCE_REVISION_HASH: askbot_settings.update('MEDIA_RESOURCE_REVISION', resource_revision + 1) - askbot_settings.update('MEDIA_RESOURCE_REVISION_HASH', current_hash) + askbot_settings.update('MEDIA_RESOURCE_REVISION_HASH', current_hash) logging.debug('MEDIA_RESOURCE_REVISION changed') askbot_settings.MEDIA_RESOURCE_REVISION |