diff options
264 files changed, 473 insertions, 31 deletions
diff --git a/askbot/__init__.py b/askbot/__init__.py index 6a67a686..2fa25ee0 100644 --- a/askbot/__init__.py +++ b/askbot/__init__.py @@ -19,4 +19,4 @@ def get_version(): """returns version of the askbot app this version is meaningful for pypi only """ - return '0.6.70' + return '0.6.71' diff --git a/askbot/forms.py b/askbot/forms.py index ccb65ab5..115a7485 100644 --- a/askbot/forms.py +++ b/askbot/forms.py @@ -2,10 +2,11 @@ import re from django import forms from askbot import models from askbot import const -from django.utils.translation import ugettext as _ -from django.utils.translation import ungettext +from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ungettext_lazy from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType +from django_countries import countries from askbot.utils.forms import NextUrlField, UserNameField from askbot.deps.recaptcha_django import ReCaptchaField from askbot.conf import settings as askbot_settings @@ -43,6 +44,29 @@ def filter_choices(remove_choices = None, from_choices = None): return filtered_choices + +COUNTRY_CHOICES = (('unknown',_('select country')),) + countries.COUNTRIES + +class CountryField(forms.ChoiceField): + """this is better placed into the django_coutries app""" + + def __init__(self, *args, **kwargs): + """sets label and the country choices + """ + kwargs['choices'] = kwargs.pop('choices', COUNTRY_CHOICES) + kwargs['label'] = kwargs.pop('label', _('Country')) + super(CountryField, self).__init__(*args, **kwargs) + + def clean(self, value): + """Handles case of 'unknown' country selection + """ + if self.required: + if value == 'unknown': + raise forms.ValidationError(_('Country field is required')) + if value == 'unknown': + return None + return value + class TitleField(forms.CharField): def __init__(self, *args, **kwargs): super(TitleField, self).__init__(*args, **kwargs) @@ -98,7 +122,7 @@ class TagNamesField(forms.CharField): tag_count = len(tag_strings) if tag_count > askbot_settings.MAX_TAGS_PER_POST: max_tags = askbot_settings.MAX_TAGS_PER_POST - msg = ungettext( + msg = ungettext_lazy( 'please use %(tag_count)d tag or less', 'please use %(tag_count)d tags or less', tag_count) % {'tag_count':max_tags} @@ -108,7 +132,7 @@ class TagNamesField(forms.CharField): if tag_length > askbot_settings.MAX_TAG_LENGTH: #singular form is odd in english, but required for pluralization #in other languages - msg = ungettext('each tag must be shorter than %(max_chars)d character',#odd but added for completeness + msg = ungettext_lazy('each tag must be shorter than %(max_chars)d character',#odd but added for completeness 'each tag must be shorter than %(max_chars)d characters', tag_length) % {'max_chars':tag_length} raise forms.ValidationError(msg) @@ -521,7 +545,7 @@ class EditAnswerForm(forms.Form): class EditUserForm(forms.Form): email = forms.EmailField( label=u'Email', - help_text=_('this email does not have to be linked to gravatar'), + help_text=_('this email will be linked to gravatar'), required=True, max_length=255, widget=forms.TextInput(attrs={'size' : 35}) @@ -542,12 +566,19 @@ class EditUserForm(forms.Form): ) city = forms.CharField( - label=_('Location'), + label=_('City'), required=False, max_length=255, widget=forms.TextInput(attrs={'size' : 35}) ) + country = CountryField(required = False) + + show_country = forms.BooleanField( + label=_('Show country'), + required=False + ) + birthday = forms.DateField( label=_('Date of birth'), help_text=_('will not be shown, used to calculate age, format: YYYY-MM-DD'), @@ -572,6 +603,12 @@ class EditUserForm(forms.Form): self.fields['realname'].initial = user.real_name self.fields['website'].initial = user.website self.fields['city'].initial = user.location + if user.country == None: + country = 'unknown' + else: + country = user.country + self.fields['country'].initial = country + self.fields['show_country'].initial = user.show_country if user.date_of_birth is not None: self.fields['birthday'].initial = user.date_of_birth diff --git a/askbot/migrations/0035_add_country_fields_to_user.py b/askbot/migrations/0035_add_country_fields_to_user.py new file mode 100644 index 00000000..f9c58f12 --- /dev/null +++ b/askbot/migrations/0035_add_country_fields_to_user.py @@ -0,0 +1,311 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding model country fields to the model auth_user + try: + db.add_column(u'auth_user', 'country', self.gf('django_countries.fields.CountryField')(max_length=2, blank=True, null=True)) + db.add_column(u'auth_user', 'show_country', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)) + except Exception, e: + print '*****************' + print unicode(e) + pass + + + def backwards(self, orm): + + # Deleting country fields + db.delete_column(u'auth_user', 'country') + db.delete_column(u'auth_user', 'show_country') + + + models = { + 'askbot.activity': { + 'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"}, + 'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['askbot.Question']", 'null': 'True'}), + 'receiving_users': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'received_activity'", 'to': "orm['auth.User']"}), + 'recipients': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'incoming_activity'", 'through': "'ActivityAuditStatus'", 'to': "orm['auth.User']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'askbot.activityauditstatus': { + 'Meta': {'unique_together': "(('user', 'activity'),)", 'object_name': 'ActivityAuditStatus'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['askbot.Activity']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'askbot.anonymousanswer': { + 'Meta': {'object_name': 'AnonymousAnswer'}, + 'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['askbot.Question']"}), + 'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}), + 'text': ('django.db.models.fields.TextField', [], {}), + 'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) + }, + 'askbot.anonymousquestion': { + 'Meta': {'object_name': 'AnonymousQuestion'}, + 'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}), + 'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}), + 'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}), + 'text': ('django.db.models.fields.TextField', [], {}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) + }, + 'askbot.answer': { + 'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"}, + 'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['auth.User']"}), + 'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['auth.User']"}), + 'html': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['auth.User']"}), + 'locked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'locked_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'locked_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locked_answers'", 'null': 'True', 'to': "orm['auth.User']"}), + 'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['askbot.Question']"}), + 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'text': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}) + }, + 'askbot.answerrevision': { + 'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"}, + 'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['askbot.Answer']"}), + 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'revised_at': ('django.db.models.fields.DateTimeField', [], {}), + 'revision': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'text': ('django.db.models.fields.TextField', [], {}) + }, + 'askbot.award': { + 'Meta': {'object_name': 'Award', 'db_table': "u'award'"}, + 'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['askbot.BadgeData']"}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_user'", 'to': "orm['auth.User']"}) + }, + 'askbot.badgedata': { + 'Meta': {'object_name': 'BadgeData'}, + 'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}) + }, + 'askbot.comment': { + 'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"}, + 'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'comment': ('django.db.models.fields.CharField', [], {'max_length': '2048'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'html': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '2048'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['auth.User']"}) + }, + 'askbot.emailfeedsetting': { + 'Meta': {'object_name': 'EmailFeedSetting'}, + 'added_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'feed_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}), + 'frequency': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '8'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'reported_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'subscriber': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'notification_subscriptions'", 'to': "orm['auth.User']"}) + }, + 'askbot.favoritequestion': { + 'Meta': {'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"}, + 'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['askbot.Question']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['auth.User']"}) + }, + 'askbot.markedtag': { + 'Meta': {'object_name': 'MarkedTag'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}), + 'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['askbot.Tag']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['auth.User']"}) + }, + 'askbot.question': { + 'Meta': {'object_name': 'Question', 'db_table': "u'question'"}, + 'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['auth.User']"}), + 'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}), + 'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['auth.User']"}), + 'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['auth.User']"}), + 'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['auth.User']"}), + 'favourite_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['auth.User']"}), + 'html': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['auth.User']"}), + 'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['auth.User']"}), + 'locked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'locked_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'locked_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locked_questions'", 'null': 'True', 'to': "orm['auth.User']"}), + 'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}), + 'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['askbot.Tag']"}), + 'text': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'view_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}) + }, + 'askbot.questionrevision': { + 'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"}, + 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['askbot.Question']"}), + 'revised_at': ('django.db.models.fields.DateTimeField', [], {}), + 'revision': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}), + 'text': ('django.db.models.fields.TextField', [], {}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'askbot.questionview': { + 'Meta': {'object_name': 'QuestionView'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'viewed'", 'to': "orm['askbot.Question']"}), + 'when': ('django.db.models.fields.DateTimeField', [], {}), + 'who': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'question_views'", 'to': "orm['auth.User']"}) + }, + 'askbot.repute': { + 'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"}, + 'comment': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'negative': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'positive': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['askbot.Question']", 'null': 'True', 'blank': 'True'}), + 'reputation': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}), + 'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'askbot.tag': { + 'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"}, + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['auth.User']"}), + 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), + 'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}) + }, + 'askbot.vote': { + 'Meta': {'unique_together': "(('content_type', 'object_id', 'user'),)", 'object_name': 'Vote', 'db_table': "u'vote'"}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['auth.User']"}), + 'vote': ('django.db.models.fields.SmallIntegerField', [], {}), + 'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'consecutive_days_visit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True', 'null': 'True'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'gravatar': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), + 'has_custom_avatar': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'new_response_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}), + 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), + 'seen_response_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'w'", 'max_length': '2'}), + 'show_country': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'tag_filter_setting': ('django.db.models.fields.CharField', [], {'default': "'ignored'", 'max_length': '16'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['askbot'] diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py index c92b894d..b4d9f4d4 100644 --- a/askbot/models/__init__.py +++ b/askbot/models/__init__.py @@ -14,6 +14,7 @@ from django.db import models from django.conf import settings as django_settings from django.contrib.contenttypes.models import ContentType from django.core import exceptions as django_exceptions +from django_countries.fields import CountryField import askbot from askbot import exceptions as askbot_exceptions from askbot import const @@ -72,8 +73,11 @@ User.add_to_class('last_seen', models.DateTimeField(default=datetime.datetime.now)) User.add_to_class('real_name', models.CharField(max_length=100, blank=True)) User.add_to_class('website', models.URLField(max_length=200, blank=True)) -#denormed user avatar url +#location field is actually city User.add_to_class('location', models.CharField(max_length=100, blank=True)) +User.add_to_class('country', CountryField(blank = True)) +User.add_to_class('show_country', models.BooleanField(default = False)) + User.add_to_class('date_of_birth', models.DateField(null=True, blank=True)) User.add_to_class('about', models.TextField(blank=True)) User.add_to_class('hide_ignored_questions', models.BooleanField(default=False)) diff --git a/askbot/models/question.py b/askbot/models/question.py index 03274a7f..04147c92 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -236,7 +236,9 @@ class QuestionManager(models.Manager): 'last_activity_by__reputation', 'last_activity_by__gold', 'last_activity_by__silver', - 'last_activity_by__bronze' + 'last_activity_by__bronze', + 'last_activity_by__country', + 'last_activity_by__show_country', ) related_tags = Tag.objects.get_related_to_search( diff --git a/askbot/setup_templates/settings.py b/askbot/setup_templates/settings.py index dc44f3f9..b186b852 100644 --- a/askbot/setup_templates/settings.py +++ b/askbot/setup_templates/settings.py @@ -145,6 +145,8 @@ INSTALLED_APPS = ( 'askbot.deps.livesettings', 'keyedcache', 'robots', + 'django_countries', + 'staticfiles', #'avatar',#experimental use git clone git://github.com/ericflo/django-avatar.git$ #requires setting of MEDIA_ROOT and MEDIA_URL ) diff --git a/askbot/skins/default/media/images/flags/.DS_Store b/askbot/skins/default/media/images/flags/.DS_Store Binary files differnew file mode 100644 index 00000000..eb96b838 --- /dev/null +++ b/askbot/skins/default/media/images/flags/.DS_Store diff --git a/askbot/skins/default/media/images/flags/ad.gif b/askbot/skins/default/media/images/flags/ad.gif Binary files differnew file mode 100755 index 00000000..57b49973 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ad.gif diff --git a/askbot/skins/default/media/images/flags/ae.gif b/askbot/skins/default/media/images/flags/ae.gif Binary files differnew file mode 100755 index 00000000..78d15b67 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ae.gif diff --git a/askbot/skins/default/media/images/flags/af.gif b/askbot/skins/default/media/images/flags/af.gif Binary files differnew file mode 100755 index 00000000..98894082 --- /dev/null +++ b/askbot/skins/default/media/images/flags/af.gif diff --git a/askbot/skins/default/media/images/flags/ag.gif b/askbot/skins/default/media/images/flags/ag.gif Binary files differnew file mode 100755 index 00000000..48f8e7bc --- /dev/null +++ b/askbot/skins/default/media/images/flags/ag.gif diff --git a/askbot/skins/default/media/images/flags/ai.gif b/askbot/skins/default/media/images/flags/ai.gif Binary files differnew file mode 100755 index 00000000..1cbc5795 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ai.gif diff --git a/askbot/skins/default/media/images/flags/al.gif b/askbot/skins/default/media/images/flags/al.gif Binary files differnew file mode 100755 index 00000000..c44fe0a0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/al.gif diff --git a/askbot/skins/default/media/images/flags/am.gif b/askbot/skins/default/media/images/flags/am.gif Binary files differnew file mode 100755 index 00000000..2915e30c --- /dev/null +++ b/askbot/skins/default/media/images/flags/am.gif diff --git a/askbot/skins/default/media/images/flags/an.gif b/askbot/skins/default/media/images/flags/an.gif Binary files differnew file mode 100755 index 00000000..cb570c67 --- /dev/null +++ b/askbot/skins/default/media/images/flags/an.gif diff --git a/askbot/skins/default/media/images/flags/ao.gif b/askbot/skins/default/media/images/flags/ao.gif Binary files differnew file mode 100644 index 00000000..8c854fa1 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ao.gif diff --git a/askbot/skins/default/media/images/flags/ar.gif b/askbot/skins/default/media/images/flags/ar.gif Binary files differnew file mode 100755 index 00000000..a9f71f7d --- /dev/null +++ b/askbot/skins/default/media/images/flags/ar.gif diff --git a/askbot/skins/default/media/images/flags/as.gif b/askbot/skins/default/media/images/flags/as.gif Binary files differnew file mode 100755 index 00000000..d776ec27 --- /dev/null +++ b/askbot/skins/default/media/images/flags/as.gif diff --git a/askbot/skins/default/media/images/flags/at.gif b/askbot/skins/default/media/images/flags/at.gif Binary files differnew file mode 100755 index 00000000..87e12173 --- /dev/null +++ b/askbot/skins/default/media/images/flags/at.gif diff --git a/askbot/skins/default/media/images/flags/au.gif b/askbot/skins/default/media/images/flags/au.gif Binary files differnew file mode 100755 index 00000000..5269c6a0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/au.gif diff --git a/askbot/skins/default/media/images/flags/aw.gif b/askbot/skins/default/media/images/flags/aw.gif Binary files differnew file mode 100755 index 00000000..27fdb4d1 --- /dev/null +++ b/askbot/skins/default/media/images/flags/aw.gif diff --git a/askbot/skins/default/media/images/flags/ax.gif b/askbot/skins/default/media/images/flags/ax.gif Binary files differnew file mode 100755 index 00000000..0ceb6849 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ax.gif diff --git a/askbot/skins/default/media/images/flags/az.gif b/askbot/skins/default/media/images/flags/az.gif Binary files differnew file mode 100755 index 00000000..d7716184 --- /dev/null +++ b/askbot/skins/default/media/images/flags/az.gif diff --git a/askbot/skins/default/media/images/flags/ba.gif b/askbot/skins/default/media/images/flags/ba.gif Binary files differnew file mode 100755 index 00000000..9bf5f0ac --- /dev/null +++ b/askbot/skins/default/media/images/flags/ba.gif diff --git a/askbot/skins/default/media/images/flags/bb.gif b/askbot/skins/default/media/images/flags/bb.gif Binary files differnew file mode 100755 index 00000000..b7d08e57 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bb.gif diff --git a/askbot/skins/default/media/images/flags/bd.gif b/askbot/skins/default/media/images/flags/bd.gif Binary files differnew file mode 100755 index 00000000..0fd27eca --- /dev/null +++ b/askbot/skins/default/media/images/flags/bd.gif diff --git a/askbot/skins/default/media/images/flags/be.gif b/askbot/skins/default/media/images/flags/be.gif Binary files differnew file mode 100755 index 00000000..ae09bfbe --- /dev/null +++ b/askbot/skins/default/media/images/flags/be.gif diff --git a/askbot/skins/default/media/images/flags/bf.gif b/askbot/skins/default/media/images/flags/bf.gif Binary files differnew file mode 100755 index 00000000..9d6772cd --- /dev/null +++ b/askbot/skins/default/media/images/flags/bf.gif diff --git a/askbot/skins/default/media/images/flags/bg.gif b/askbot/skins/default/media/images/flags/bg.gif Binary files differnew file mode 100755 index 00000000..11cf8ff3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bg.gif diff --git a/askbot/skins/default/media/images/flags/bh.gif b/askbot/skins/default/media/images/flags/bh.gif Binary files differnew file mode 100755 index 00000000..56aa72b2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bh.gif diff --git a/askbot/skins/default/media/images/flags/bi.gif b/askbot/skins/default/media/images/flags/bi.gif Binary files differnew file mode 100755 index 00000000..6e2cbe12 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bi.gif diff --git a/askbot/skins/default/media/images/flags/bj.gif b/askbot/skins/default/media/images/flags/bj.gif Binary files differnew file mode 100755 index 00000000..e676116f --- /dev/null +++ b/askbot/skins/default/media/images/flags/bj.gif diff --git a/askbot/skins/default/media/images/flags/bm.gif b/askbot/skins/default/media/images/flags/bm.gif Binary files differnew file mode 100755 index 00000000..9feb87bc --- /dev/null +++ b/askbot/skins/default/media/images/flags/bm.gif diff --git a/askbot/skins/default/media/images/flags/bn.gif b/askbot/skins/default/media/images/flags/bn.gif Binary files differnew file mode 100755 index 00000000..b7b6b0f9 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bn.gif diff --git a/askbot/skins/default/media/images/flags/bo.gif b/askbot/skins/default/media/images/flags/bo.gif Binary files differnew file mode 100755 index 00000000..4844f856 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bo.gif diff --git a/askbot/skins/default/media/images/flags/br.gif b/askbot/skins/default/media/images/flags/br.gif Binary files differnew file mode 100755 index 00000000..8c866162 --- /dev/null +++ b/askbot/skins/default/media/images/flags/br.gif diff --git a/askbot/skins/default/media/images/flags/bs.gif b/askbot/skins/default/media/images/flags/bs.gif Binary files differnew file mode 100755 index 00000000..c0a741e5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bs.gif diff --git a/askbot/skins/default/media/images/flags/bt.gif b/askbot/skins/default/media/images/flags/bt.gif Binary files differnew file mode 100755 index 00000000..abe2f3cc --- /dev/null +++ b/askbot/skins/default/media/images/flags/bt.gif diff --git a/askbot/skins/default/media/images/flags/bv.gif b/askbot/skins/default/media/images/flags/bv.gif Binary files differnew file mode 100755 index 00000000..6202d1f3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bv.gif diff --git a/askbot/skins/default/media/images/flags/bw.gif b/askbot/skins/default/media/images/flags/bw.gif Binary files differnew file mode 100755 index 00000000..986ab63c --- /dev/null +++ b/askbot/skins/default/media/images/flags/bw.gif diff --git a/askbot/skins/default/media/images/flags/by.gif b/askbot/skins/default/media/images/flags/by.gif Binary files differnew file mode 100755 index 00000000..43ffcd4c --- /dev/null +++ b/askbot/skins/default/media/images/flags/by.gif diff --git a/askbot/skins/default/media/images/flags/bz.gif b/askbot/skins/default/media/images/flags/bz.gif Binary files differnew file mode 100755 index 00000000..791737f0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/bz.gif diff --git a/askbot/skins/default/media/images/flags/ca.gif b/askbot/skins/default/media/images/flags/ca.gif Binary files differnew file mode 100755 index 00000000..457d9662 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ca.gif diff --git a/askbot/skins/default/media/images/flags/catalonia.gif b/askbot/skins/default/media/images/flags/catalonia.gif Binary files differnew file mode 100644 index 00000000..73df9a04 --- /dev/null +++ b/askbot/skins/default/media/images/flags/catalonia.gif diff --git a/askbot/skins/default/media/images/flags/cc.gif b/askbot/skins/default/media/images/flags/cc.gif Binary files differnew file mode 100755 index 00000000..3f783270 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cc.gif diff --git a/askbot/skins/default/media/images/flags/cd.gif b/askbot/skins/default/media/images/flags/cd.gif Binary files differnew file mode 100644 index 00000000..1df717ae --- /dev/null +++ b/askbot/skins/default/media/images/flags/cd.gif diff --git a/askbot/skins/default/media/images/flags/cf.gif b/askbot/skins/default/media/images/flags/cf.gif Binary files differnew file mode 100755 index 00000000..35787ca4 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cf.gif diff --git a/askbot/skins/default/media/images/flags/cg.gif b/askbot/skins/default/media/images/flags/cg.gif Binary files differnew file mode 100755 index 00000000..e0a62a51 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cg.gif diff --git a/askbot/skins/default/media/images/flags/ch.gif b/askbot/skins/default/media/images/flags/ch.gif Binary files differnew file mode 100755 index 00000000..d5c0e5b7 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ch.gif diff --git a/askbot/skins/default/media/images/flags/ci.gif b/askbot/skins/default/media/images/flags/ci.gif Binary files differnew file mode 100755 index 00000000..844120a5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ci.gif diff --git a/askbot/skins/default/media/images/flags/ck.gif b/askbot/skins/default/media/images/flags/ck.gif Binary files differnew file mode 100755 index 00000000..2edb7399 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ck.gif diff --git a/askbot/skins/default/media/images/flags/cl.gif b/askbot/skins/default/media/images/flags/cl.gif Binary files differnew file mode 100755 index 00000000..cbc370e6 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cl.gif diff --git a/askbot/skins/default/media/images/flags/cm.gif b/askbot/skins/default/media/images/flags/cm.gif Binary files differnew file mode 100755 index 00000000..1fb102b2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cm.gif diff --git a/askbot/skins/default/media/images/flags/cn.gif b/askbot/skins/default/media/images/flags/cn.gif Binary files differnew file mode 100755 index 00000000..b0525309 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cn.gif diff --git a/askbot/skins/default/media/images/flags/co.gif b/askbot/skins/default/media/images/flags/co.gif Binary files differnew file mode 100755 index 00000000..d0e15caf --- /dev/null +++ b/askbot/skins/default/media/images/flags/co.gif diff --git a/askbot/skins/default/media/images/flags/cr.gif b/askbot/skins/default/media/images/flags/cr.gif Binary files differnew file mode 100755 index 00000000..0728dd6a --- /dev/null +++ b/askbot/skins/default/media/images/flags/cr.gif diff --git a/askbot/skins/default/media/images/flags/cs.gif b/askbot/skins/default/media/images/flags/cs.gif Binary files differnew file mode 100755 index 00000000..101db649 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cs.gif diff --git a/askbot/skins/default/media/images/flags/cu.gif b/askbot/skins/default/media/images/flags/cu.gif Binary files differnew file mode 100755 index 00000000..291255ca --- /dev/null +++ b/askbot/skins/default/media/images/flags/cu.gif diff --git a/askbot/skins/default/media/images/flags/cv.gif b/askbot/skins/default/media/images/flags/cv.gif Binary files differnew file mode 100755 index 00000000..43c6c6cb --- /dev/null +++ b/askbot/skins/default/media/images/flags/cv.gif diff --git a/askbot/skins/default/media/images/flags/cx.gif b/askbot/skins/default/media/images/flags/cx.gif Binary files differnew file mode 100755 index 00000000..a5b43089 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cx.gif diff --git a/askbot/skins/default/media/images/flags/cy.gif b/askbot/skins/default/media/images/flags/cy.gif Binary files differnew file mode 100755 index 00000000..35c661e1 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cy.gif diff --git a/askbot/skins/default/media/images/flags/cz.gif b/askbot/skins/default/media/images/flags/cz.gif Binary files differnew file mode 100755 index 00000000..0a605e58 --- /dev/null +++ b/askbot/skins/default/media/images/flags/cz.gif diff --git a/askbot/skins/default/media/images/flags/de.gif b/askbot/skins/default/media/images/flags/de.gif Binary files differnew file mode 100755 index 00000000..75728ddf --- /dev/null +++ b/askbot/skins/default/media/images/flags/de.gif diff --git a/askbot/skins/default/media/images/flags/dj.gif b/askbot/skins/default/media/images/flags/dj.gif Binary files differnew file mode 100755 index 00000000..212406d9 --- /dev/null +++ b/askbot/skins/default/media/images/flags/dj.gif diff --git a/askbot/skins/default/media/images/flags/dk.gif b/askbot/skins/default/media/images/flags/dk.gif Binary files differnew file mode 100755 index 00000000..03e75bd2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/dk.gif diff --git a/askbot/skins/default/media/images/flags/dm.gif b/askbot/skins/default/media/images/flags/dm.gif Binary files differnew file mode 100755 index 00000000..2f87f3ca --- /dev/null +++ b/askbot/skins/default/media/images/flags/dm.gif diff --git a/askbot/skins/default/media/images/flags/do.gif b/askbot/skins/default/media/images/flags/do.gif Binary files differnew file mode 100755 index 00000000..f7d0bad3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/do.gif diff --git a/askbot/skins/default/media/images/flags/dz.gif b/askbot/skins/default/media/images/flags/dz.gif Binary files differnew file mode 100755 index 00000000..ed580a7c --- /dev/null +++ b/askbot/skins/default/media/images/flags/dz.gif diff --git a/askbot/skins/default/media/images/flags/ec.gif b/askbot/skins/default/media/images/flags/ec.gif Binary files differnew file mode 100755 index 00000000..9e41e0ec --- /dev/null +++ b/askbot/skins/default/media/images/flags/ec.gif diff --git a/askbot/skins/default/media/images/flags/ee.gif b/askbot/skins/default/media/images/flags/ee.gif Binary files differnew file mode 100755 index 00000000..9397a2d0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ee.gif diff --git a/askbot/skins/default/media/images/flags/eg.gif b/askbot/skins/default/media/images/flags/eg.gif Binary files differnew file mode 100755 index 00000000..6857c7dd --- /dev/null +++ b/askbot/skins/default/media/images/flags/eg.gif diff --git a/askbot/skins/default/media/images/flags/eh.gif b/askbot/skins/default/media/images/flags/eh.gif Binary files differnew file mode 100755 index 00000000..dd0391c2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/eh.gif diff --git a/askbot/skins/default/media/images/flags/england.gif b/askbot/skins/default/media/images/flags/england.gif Binary files differnew file mode 100755 index 00000000..933a4f0b --- /dev/null +++ b/askbot/skins/default/media/images/flags/england.gif diff --git a/askbot/skins/default/media/images/flags/er.gif b/askbot/skins/default/media/images/flags/er.gif Binary files differnew file mode 100755 index 00000000..3d4d612c --- /dev/null +++ b/askbot/skins/default/media/images/flags/er.gif diff --git a/askbot/skins/default/media/images/flags/es.gif b/askbot/skins/default/media/images/flags/es.gif Binary files differnew file mode 100755 index 00000000..c27d65e5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/es.gif diff --git a/askbot/skins/default/media/images/flags/et.gif b/askbot/skins/default/media/images/flags/et.gif Binary files differnew file mode 100755 index 00000000..f77995d0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/et.gif diff --git a/askbot/skins/default/media/images/flags/europeanunion.gif b/askbot/skins/default/media/images/flags/europeanunion.gif Binary files differnew file mode 100644 index 00000000..28a762a5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/europeanunion.gif diff --git a/askbot/skins/default/media/images/flags/fam.gif b/askbot/skins/default/media/images/flags/fam.gif Binary files differnew file mode 100755 index 00000000..7d528852 --- /dev/null +++ b/askbot/skins/default/media/images/flags/fam.gif diff --git a/askbot/skins/default/media/images/flags/fi.gif b/askbot/skins/default/media/images/flags/fi.gif Binary files differnew file mode 100755 index 00000000..8d3a1918 --- /dev/null +++ b/askbot/skins/default/media/images/flags/fi.gif diff --git a/askbot/skins/default/media/images/flags/fj.gif b/askbot/skins/default/media/images/flags/fj.gif Binary files differnew file mode 100755 index 00000000..486151cb --- /dev/null +++ b/askbot/skins/default/media/images/flags/fj.gif diff --git a/askbot/skins/default/media/images/flags/fk.gif b/askbot/skins/default/media/images/flags/fk.gif Binary files differnew file mode 100755 index 00000000..37b5ecf3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/fk.gif diff --git a/askbot/skins/default/media/images/flags/fm.gif b/askbot/skins/default/media/images/flags/fm.gif Binary files differnew file mode 100755 index 00000000..7f8723b7 --- /dev/null +++ b/askbot/skins/default/media/images/flags/fm.gif diff --git a/askbot/skins/default/media/images/flags/fo.gif b/askbot/skins/default/media/images/flags/fo.gif Binary files differnew file mode 100755 index 00000000..4a90fc04 --- /dev/null +++ b/askbot/skins/default/media/images/flags/fo.gif diff --git a/askbot/skins/default/media/images/flags/fr.gif b/askbot/skins/default/media/images/flags/fr.gif Binary files differnew file mode 100755 index 00000000..43d0b801 --- /dev/null +++ b/askbot/skins/default/media/images/flags/fr.gif diff --git a/askbot/skins/default/media/images/flags/ga.gif b/askbot/skins/default/media/images/flags/ga.gif Binary files differnew file mode 100755 index 00000000..23fd5f0d --- /dev/null +++ b/askbot/skins/default/media/images/flags/ga.gif diff --git a/askbot/skins/default/media/images/flags/gb.gif b/askbot/skins/default/media/images/flags/gb.gif Binary files differnew file mode 100644 index 00000000..3c6bce15 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gb.gif diff --git a/askbot/skins/default/media/images/flags/gd.gif b/askbot/skins/default/media/images/flags/gd.gif Binary files differnew file mode 100755 index 00000000..25ea3123 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gd.gif diff --git a/askbot/skins/default/media/images/flags/ge.gif b/askbot/skins/default/media/images/flags/ge.gif Binary files differnew file mode 100755 index 00000000..faa7f126 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ge.gif diff --git a/askbot/skins/default/media/images/flags/gf.gif b/askbot/skins/default/media/images/flags/gf.gif Binary files differnew file mode 100755 index 00000000..43d0b801 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gf.gif diff --git a/askbot/skins/default/media/images/flags/gh.gif b/askbot/skins/default/media/images/flags/gh.gif Binary files differnew file mode 100755 index 00000000..273fb7d1 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gh.gif diff --git a/askbot/skins/default/media/images/flags/gi.gif b/askbot/skins/default/media/images/flags/gi.gif Binary files differnew file mode 100755 index 00000000..7b1984bc --- /dev/null +++ b/askbot/skins/default/media/images/flags/gi.gif diff --git a/askbot/skins/default/media/images/flags/gl.gif b/askbot/skins/default/media/images/flags/gl.gif Binary files differnew file mode 100755 index 00000000..ef445be0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gl.gif diff --git a/askbot/skins/default/media/images/flags/gm.gif b/askbot/skins/default/media/images/flags/gm.gif Binary files differnew file mode 100755 index 00000000..6847c5a8 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gm.gif diff --git a/askbot/skins/default/media/images/flags/gn.gif b/askbot/skins/default/media/images/flags/gn.gif Binary files differnew file mode 100755 index 00000000..a982ac6f --- /dev/null +++ b/askbot/skins/default/media/images/flags/gn.gif diff --git a/askbot/skins/default/media/images/flags/gp.gif b/askbot/skins/default/media/images/flags/gp.gif Binary files differnew file mode 100755 index 00000000..31166db6 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gp.gif diff --git a/askbot/skins/default/media/images/flags/gq.gif b/askbot/skins/default/media/images/flags/gq.gif Binary files differnew file mode 100755 index 00000000..8b4e0cc4 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gq.gif diff --git a/askbot/skins/default/media/images/flags/gr.gif b/askbot/skins/default/media/images/flags/gr.gif Binary files differnew file mode 100755 index 00000000..b4c8c04e --- /dev/null +++ b/askbot/skins/default/media/images/flags/gr.gif diff --git a/askbot/skins/default/media/images/flags/gs.gif b/askbot/skins/default/media/images/flags/gs.gif Binary files differnew file mode 100755 index 00000000..ccc96ec0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gs.gif diff --git a/askbot/skins/default/media/images/flags/gt.gif b/askbot/skins/default/media/images/flags/gt.gif Binary files differnew file mode 100755 index 00000000..7e94d1dd --- /dev/null +++ b/askbot/skins/default/media/images/flags/gt.gif diff --git a/askbot/skins/default/media/images/flags/gu.gif b/askbot/skins/default/media/images/flags/gu.gif Binary files differnew file mode 100755 index 00000000..eafef683 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gu.gif diff --git a/askbot/skins/default/media/images/flags/gw.gif b/askbot/skins/default/media/images/flags/gw.gif Binary files differnew file mode 100755 index 00000000..55f75711 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gw.gif diff --git a/askbot/skins/default/media/images/flags/gy.gif b/askbot/skins/default/media/images/flags/gy.gif Binary files differnew file mode 100755 index 00000000..1cb4cd71 --- /dev/null +++ b/askbot/skins/default/media/images/flags/gy.gif diff --git a/askbot/skins/default/media/images/flags/hk.gif b/askbot/skins/default/media/images/flags/hk.gif Binary files differnew file mode 100755 index 00000000..798af96d --- /dev/null +++ b/askbot/skins/default/media/images/flags/hk.gif diff --git a/askbot/skins/default/media/images/flags/hm.gif b/askbot/skins/default/media/images/flags/hm.gif Binary files differnew file mode 100755 index 00000000..5269c6a0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/hm.gif diff --git a/askbot/skins/default/media/images/flags/hn.gif b/askbot/skins/default/media/images/flags/hn.gif Binary files differnew file mode 100755 index 00000000..6c4ffe8e --- /dev/null +++ b/askbot/skins/default/media/images/flags/hn.gif diff --git a/askbot/skins/default/media/images/flags/hr.gif b/askbot/skins/default/media/images/flags/hr.gif Binary files differnew file mode 100755 index 00000000..557c6602 --- /dev/null +++ b/askbot/skins/default/media/images/flags/hr.gif diff --git a/askbot/skins/default/media/images/flags/ht.gif b/askbot/skins/default/media/images/flags/ht.gif Binary files differnew file mode 100755 index 00000000..059604ab --- /dev/null +++ b/askbot/skins/default/media/images/flags/ht.gif diff --git a/askbot/skins/default/media/images/flags/hu.gif b/askbot/skins/default/media/images/flags/hu.gif Binary files differnew file mode 100755 index 00000000..6142d868 --- /dev/null +++ b/askbot/skins/default/media/images/flags/hu.gif diff --git a/askbot/skins/default/media/images/flags/id.gif b/askbot/skins/default/media/images/flags/id.gif Binary files differnew file mode 100755 index 00000000..865161b0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/id.gif diff --git a/askbot/skins/default/media/images/flags/ie.gif b/askbot/skins/default/media/images/flags/ie.gif Binary files differnew file mode 100755 index 00000000..506ad285 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ie.gif diff --git a/askbot/skins/default/media/images/flags/il.gif b/askbot/skins/default/media/images/flags/il.gif Binary files differnew file mode 100755 index 00000000..c8483ae5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/il.gif diff --git a/askbot/skins/default/media/images/flags/in.gif b/askbot/skins/default/media/images/flags/in.gif Binary files differnew file mode 100755 index 00000000..1cd80272 --- /dev/null +++ b/askbot/skins/default/media/images/flags/in.gif diff --git a/askbot/skins/default/media/images/flags/io.gif b/askbot/skins/default/media/images/flags/io.gif Binary files differnew file mode 100755 index 00000000..de7e7ab3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/io.gif diff --git a/askbot/skins/default/media/images/flags/iq.gif b/askbot/skins/default/media/images/flags/iq.gif Binary files differnew file mode 100755 index 00000000..c34fe3c4 --- /dev/null +++ b/askbot/skins/default/media/images/flags/iq.gif diff --git a/askbot/skins/default/media/images/flags/ir.gif b/askbot/skins/default/media/images/flags/ir.gif Binary files differnew file mode 100755 index 00000000..156040fc --- /dev/null +++ b/askbot/skins/default/media/images/flags/ir.gif diff --git a/askbot/skins/default/media/images/flags/is.gif b/askbot/skins/default/media/images/flags/is.gif Binary files differnew file mode 100755 index 00000000..b42502de --- /dev/null +++ b/askbot/skins/default/media/images/flags/is.gif diff --git a/askbot/skins/default/media/images/flags/it.gif b/askbot/skins/default/media/images/flags/it.gif Binary files differnew file mode 100755 index 00000000..d79e90e9 --- /dev/null +++ b/askbot/skins/default/media/images/flags/it.gif diff --git a/askbot/skins/default/media/images/flags/jm.gif b/askbot/skins/default/media/images/flags/jm.gif Binary files differnew file mode 100755 index 00000000..0bed67c2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/jm.gif diff --git a/askbot/skins/default/media/images/flags/jo.gif b/askbot/skins/default/media/images/flags/jo.gif Binary files differnew file mode 100755 index 00000000..03daf8af --- /dev/null +++ b/askbot/skins/default/media/images/flags/jo.gif diff --git a/askbot/skins/default/media/images/flags/jp.gif b/askbot/skins/default/media/images/flags/jp.gif Binary files differnew file mode 100755 index 00000000..444c1d05 --- /dev/null +++ b/askbot/skins/default/media/images/flags/jp.gif diff --git a/askbot/skins/default/media/images/flags/ke.gif b/askbot/skins/default/media/images/flags/ke.gif Binary files differnew file mode 100755 index 00000000..c2b5d45c --- /dev/null +++ b/askbot/skins/default/media/images/flags/ke.gif diff --git a/askbot/skins/default/media/images/flags/kg.gif b/askbot/skins/default/media/images/flags/kg.gif Binary files differnew file mode 100755 index 00000000..72a4d412 --- /dev/null +++ b/askbot/skins/default/media/images/flags/kg.gif diff --git a/askbot/skins/default/media/images/flags/kh.gif b/askbot/skins/default/media/images/flags/kh.gif Binary files differnew file mode 100755 index 00000000..30a18315 --- /dev/null +++ b/askbot/skins/default/media/images/flags/kh.gif diff --git a/askbot/skins/default/media/images/flags/ki.gif b/askbot/skins/default/media/images/flags/ki.gif Binary files differnew file mode 100755 index 00000000..4a0751a2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ki.gif diff --git a/askbot/skins/default/media/images/flags/km.gif b/askbot/skins/default/media/images/flags/km.gif Binary files differnew file mode 100755 index 00000000..5859595e --- /dev/null +++ b/askbot/skins/default/media/images/flags/km.gif diff --git a/askbot/skins/default/media/images/flags/kn.gif b/askbot/skins/default/media/images/flags/kn.gif Binary files differnew file mode 100755 index 00000000..bb9cc34a --- /dev/null +++ b/askbot/skins/default/media/images/flags/kn.gif diff --git a/askbot/skins/default/media/images/flags/kp.gif b/askbot/skins/default/media/images/flags/kp.gif Binary files differnew file mode 100755 index 00000000..6e0ca09e --- /dev/null +++ b/askbot/skins/default/media/images/flags/kp.gif diff --git a/askbot/skins/default/media/images/flags/kr.gif b/askbot/skins/default/media/images/flags/kr.gif Binary files differnew file mode 100755 index 00000000..1cddbe75 --- /dev/null +++ b/askbot/skins/default/media/images/flags/kr.gif diff --git a/askbot/skins/default/media/images/flags/kw.gif b/askbot/skins/default/media/images/flags/kw.gif Binary files differnew file mode 100755 index 00000000..1efc7347 --- /dev/null +++ b/askbot/skins/default/media/images/flags/kw.gif diff --git a/askbot/skins/default/media/images/flags/ky.gif b/askbot/skins/default/media/images/flags/ky.gif Binary files differnew file mode 100755 index 00000000..d3d02ee4 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ky.gif diff --git a/askbot/skins/default/media/images/flags/kz.gif b/askbot/skins/default/media/images/flags/kz.gif Binary files differnew file mode 100755 index 00000000..24baebe0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/kz.gif diff --git a/askbot/skins/default/media/images/flags/la.gif b/askbot/skins/default/media/images/flags/la.gif Binary files differnew file mode 100755 index 00000000..d14cf4d8 --- /dev/null +++ b/askbot/skins/default/media/images/flags/la.gif diff --git a/askbot/skins/default/media/images/flags/lb.gif b/askbot/skins/default/media/images/flags/lb.gif Binary files differnew file mode 100755 index 00000000..003d83af --- /dev/null +++ b/askbot/skins/default/media/images/flags/lb.gif diff --git a/askbot/skins/default/media/images/flags/lc.gif b/askbot/skins/default/media/images/flags/lc.gif Binary files differnew file mode 100644 index 00000000..f5fe5bff --- /dev/null +++ b/askbot/skins/default/media/images/flags/lc.gif diff --git a/askbot/skins/default/media/images/flags/li.gif b/askbot/skins/default/media/images/flags/li.gif Binary files differnew file mode 100755 index 00000000..713c58e1 --- /dev/null +++ b/askbot/skins/default/media/images/flags/li.gif diff --git a/askbot/skins/default/media/images/flags/lk.gif b/askbot/skins/default/media/images/flags/lk.gif Binary files differnew file mode 100755 index 00000000..1b3ee7f5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/lk.gif diff --git a/askbot/skins/default/media/images/flags/lr.gif b/askbot/skins/default/media/images/flags/lr.gif Binary files differnew file mode 100755 index 00000000..435af9e5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/lr.gif diff --git a/askbot/skins/default/media/images/flags/ls.gif b/askbot/skins/default/media/images/flags/ls.gif Binary files differnew file mode 100755 index 00000000..427ae957 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ls.gif diff --git a/askbot/skins/default/media/images/flags/lt.gif b/askbot/skins/default/media/images/flags/lt.gif Binary files differnew file mode 100755 index 00000000..dee9c601 --- /dev/null +++ b/askbot/skins/default/media/images/flags/lt.gif diff --git a/askbot/skins/default/media/images/flags/lu.gif b/askbot/skins/default/media/images/flags/lu.gif Binary files differnew file mode 100755 index 00000000..7d7293ed --- /dev/null +++ b/askbot/skins/default/media/images/flags/lu.gif diff --git a/askbot/skins/default/media/images/flags/lv.gif b/askbot/skins/default/media/images/flags/lv.gif Binary files differnew file mode 100755 index 00000000..17e71b7e --- /dev/null +++ b/askbot/skins/default/media/images/flags/lv.gif diff --git a/askbot/skins/default/media/images/flags/ly.gif b/askbot/skins/default/media/images/flags/ly.gif Binary files differnew file mode 100755 index 00000000..a654c30a --- /dev/null +++ b/askbot/skins/default/media/images/flags/ly.gif diff --git a/askbot/skins/default/media/images/flags/ma.gif b/askbot/skins/default/media/images/flags/ma.gif Binary files differnew file mode 100755 index 00000000..fc784119 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ma.gif diff --git a/askbot/skins/default/media/images/flags/mc.gif b/askbot/skins/default/media/images/flags/mc.gif Binary files differnew file mode 100755 index 00000000..02a7c8e1 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mc.gif diff --git a/askbot/skins/default/media/images/flags/md.gif b/askbot/skins/default/media/images/flags/md.gif Binary files differnew file mode 100755 index 00000000..e4b8a7e3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/md.gif diff --git a/askbot/skins/default/media/images/flags/me.gif b/askbot/skins/default/media/images/flags/me.gif Binary files differnew file mode 100644 index 00000000..a260453c --- /dev/null +++ b/askbot/skins/default/media/images/flags/me.gif diff --git a/askbot/skins/default/media/images/flags/mg.gif b/askbot/skins/default/media/images/flags/mg.gif Binary files differnew file mode 100755 index 00000000..a91b577d --- /dev/null +++ b/askbot/skins/default/media/images/flags/mg.gif diff --git a/askbot/skins/default/media/images/flags/mh.gif b/askbot/skins/default/media/images/flags/mh.gif Binary files differnew file mode 100755 index 00000000..92f5f485 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mh.gif diff --git a/askbot/skins/default/media/images/flags/mk.gif b/askbot/skins/default/media/images/flags/mk.gif Binary files differnew file mode 100755 index 00000000..7aeb8311 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mk.gif diff --git a/askbot/skins/default/media/images/flags/ml.gif b/askbot/skins/default/media/images/flags/ml.gif Binary files differnew file mode 100755 index 00000000..53d6f490 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ml.gif diff --git a/askbot/skins/default/media/images/flags/mm.gif b/askbot/skins/default/media/images/flags/mm.gif Binary files differnew file mode 100755 index 00000000..9e0a2756 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mm.gif diff --git a/askbot/skins/default/media/images/flags/mn.gif b/askbot/skins/default/media/images/flags/mn.gif Binary files differnew file mode 100755 index 00000000..dff8ea5a --- /dev/null +++ b/askbot/skins/default/media/images/flags/mn.gif diff --git a/askbot/skins/default/media/images/flags/mo.gif b/askbot/skins/default/media/images/flags/mo.gif Binary files differnew file mode 100755 index 00000000..66cf5b4f --- /dev/null +++ b/askbot/skins/default/media/images/flags/mo.gif diff --git a/askbot/skins/default/media/images/flags/mp.gif b/askbot/skins/default/media/images/flags/mp.gif Binary files differnew file mode 100755 index 00000000..73b7147e --- /dev/null +++ b/askbot/skins/default/media/images/flags/mp.gif diff --git a/askbot/skins/default/media/images/flags/mq.gif b/askbot/skins/default/media/images/flags/mq.gif Binary files differnew file mode 100755 index 00000000..570bc5dd --- /dev/null +++ b/askbot/skins/default/media/images/flags/mq.gif diff --git a/askbot/skins/default/media/images/flags/mr.gif b/askbot/skins/default/media/images/flags/mr.gif Binary files differnew file mode 100755 index 00000000..f52fcf09 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mr.gif diff --git a/askbot/skins/default/media/images/flags/ms.gif b/askbot/skins/default/media/images/flags/ms.gif Binary files differnew file mode 100755 index 00000000..5e5a67aa --- /dev/null +++ b/askbot/skins/default/media/images/flags/ms.gif diff --git a/askbot/skins/default/media/images/flags/mt.gif b/askbot/skins/default/media/images/flags/mt.gif Binary files differnew file mode 100755 index 00000000..45c709f2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mt.gif diff --git a/askbot/skins/default/media/images/flags/mu.gif b/askbot/skins/default/media/images/flags/mu.gif Binary files differnew file mode 100755 index 00000000..081ab453 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mu.gif diff --git a/askbot/skins/default/media/images/flags/mv.gif b/askbot/skins/default/media/images/flags/mv.gif Binary files differnew file mode 100755 index 00000000..46b63875 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mv.gif diff --git a/askbot/skins/default/media/images/flags/mw.gif b/askbot/skins/default/media/images/flags/mw.gif Binary files differnew file mode 100755 index 00000000..ad045a09 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mw.gif diff --git a/askbot/skins/default/media/images/flags/mx.gif b/askbot/skins/default/media/images/flags/mx.gif Binary files differnew file mode 100755 index 00000000..ddc75d04 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mx.gif diff --git a/askbot/skins/default/media/images/flags/my.gif b/askbot/skins/default/media/images/flags/my.gif Binary files differnew file mode 100755 index 00000000..fc7d5236 --- /dev/null +++ b/askbot/skins/default/media/images/flags/my.gif diff --git a/askbot/skins/default/media/images/flags/mz.gif b/askbot/skins/default/media/images/flags/mz.gif Binary files differnew file mode 100755 index 00000000..7d635082 --- /dev/null +++ b/askbot/skins/default/media/images/flags/mz.gif diff --git a/askbot/skins/default/media/images/flags/na.gif b/askbot/skins/default/media/images/flags/na.gif Binary files differnew file mode 100755 index 00000000..c0babe72 --- /dev/null +++ b/askbot/skins/default/media/images/flags/na.gif diff --git a/askbot/skins/default/media/images/flags/nc.gif b/askbot/skins/default/media/images/flags/nc.gif Binary files differnew file mode 100755 index 00000000..b1e91b9a --- /dev/null +++ b/askbot/skins/default/media/images/flags/nc.gif diff --git a/askbot/skins/default/media/images/flags/ne.gif b/askbot/skins/default/media/images/flags/ne.gif Binary files differnew file mode 100755 index 00000000..ff4eaf07 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ne.gif diff --git a/askbot/skins/default/media/images/flags/nf.gif b/askbot/skins/default/media/images/flags/nf.gif Binary files differnew file mode 100755 index 00000000..c83424c2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/nf.gif diff --git a/askbot/skins/default/media/images/flags/ng.gif b/askbot/skins/default/media/images/flags/ng.gif Binary files differnew file mode 100755 index 00000000..bdde7cb3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ng.gif diff --git a/askbot/skins/default/media/images/flags/ni.gif b/askbot/skins/default/media/images/flags/ni.gif Binary files differnew file mode 100755 index 00000000..d05894d0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ni.gif diff --git a/askbot/skins/default/media/images/flags/nl.gif b/askbot/skins/default/media/images/flags/nl.gif Binary files differnew file mode 100755 index 00000000..c1c8f46d --- /dev/null +++ b/askbot/skins/default/media/images/flags/nl.gif diff --git a/askbot/skins/default/media/images/flags/no.gif b/askbot/skins/default/media/images/flags/no.gif Binary files differnew file mode 100755 index 00000000..6202d1f3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/no.gif diff --git a/askbot/skins/default/media/images/flags/np.gif b/askbot/skins/default/media/images/flags/np.gif Binary files differnew file mode 100755 index 00000000..1096893a --- /dev/null +++ b/askbot/skins/default/media/images/flags/np.gif diff --git a/askbot/skins/default/media/images/flags/nr.gif b/askbot/skins/default/media/images/flags/nr.gif Binary files differnew file mode 100755 index 00000000..2e4c0c5c --- /dev/null +++ b/askbot/skins/default/media/images/flags/nr.gif diff --git a/askbot/skins/default/media/images/flags/nu.gif b/askbot/skins/default/media/images/flags/nu.gif Binary files differnew file mode 100755 index 00000000..618210a7 --- /dev/null +++ b/askbot/skins/default/media/images/flags/nu.gif diff --git a/askbot/skins/default/media/images/flags/nz.gif b/askbot/skins/default/media/images/flags/nz.gif Binary files differnew file mode 100755 index 00000000..028a5dc6 --- /dev/null +++ b/askbot/skins/default/media/images/flags/nz.gif diff --git a/askbot/skins/default/media/images/flags/om.gif b/askbot/skins/default/media/images/flags/om.gif Binary files differnew file mode 100755 index 00000000..2b8c7750 --- /dev/null +++ b/askbot/skins/default/media/images/flags/om.gif diff --git a/askbot/skins/default/media/images/flags/pa.gif b/askbot/skins/default/media/images/flags/pa.gif Binary files differnew file mode 100755 index 00000000..d518b2f9 --- /dev/null +++ b/askbot/skins/default/media/images/flags/pa.gif diff --git a/askbot/skins/default/media/images/flags/pe.gif b/askbot/skins/default/media/images/flags/pe.gif Binary files differnew file mode 100755 index 00000000..3bc76390 --- /dev/null +++ b/askbot/skins/default/media/images/flags/pe.gif diff --git a/askbot/skins/default/media/images/flags/pf.gif b/askbot/skins/default/media/images/flags/pf.gif Binary files differnew file mode 100755 index 00000000..849297a5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/pf.gif diff --git a/askbot/skins/default/media/images/flags/pg.gif b/askbot/skins/default/media/images/flags/pg.gif Binary files differnew file mode 100755 index 00000000..2d20b078 --- /dev/null +++ b/askbot/skins/default/media/images/flags/pg.gif diff --git a/askbot/skins/default/media/images/flags/ph.gif b/askbot/skins/default/media/images/flags/ph.gif Binary files differnew file mode 100755 index 00000000..12b380ac --- /dev/null +++ b/askbot/skins/default/media/images/flags/ph.gif diff --git a/askbot/skins/default/media/images/flags/pk.gif b/askbot/skins/default/media/images/flags/pk.gif Binary files differnew file mode 100755 index 00000000..f3f62c2e --- /dev/null +++ b/askbot/skins/default/media/images/flags/pk.gif diff --git a/askbot/skins/default/media/images/flags/pl.gif b/askbot/skins/default/media/images/flags/pl.gif Binary files differnew file mode 100755 index 00000000..bf106463 --- /dev/null +++ b/askbot/skins/default/media/images/flags/pl.gif diff --git a/askbot/skins/default/media/images/flags/pm.gif b/askbot/skins/default/media/images/flags/pm.gif Binary files differnew file mode 100755 index 00000000..99bf6fdb --- /dev/null +++ b/askbot/skins/default/media/images/flags/pm.gif diff --git a/askbot/skins/default/media/images/flags/pn.gif b/askbot/skins/default/media/images/flags/pn.gif Binary files differnew file mode 100755 index 00000000..4bc86a1d --- /dev/null +++ b/askbot/skins/default/media/images/flags/pn.gif diff --git a/askbot/skins/default/media/images/flags/pr.gif b/askbot/skins/default/media/images/flags/pr.gif Binary files differnew file mode 100755 index 00000000..6d5d5896 --- /dev/null +++ b/askbot/skins/default/media/images/flags/pr.gif diff --git a/askbot/skins/default/media/images/flags/ps.gif b/askbot/skins/default/media/images/flags/ps.gif Binary files differnew file mode 100755 index 00000000..6afa3b71 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ps.gif diff --git a/askbot/skins/default/media/images/flags/pt.gif b/askbot/skins/default/media/images/flags/pt.gif Binary files differnew file mode 100755 index 00000000..e735f740 --- /dev/null +++ b/askbot/skins/default/media/images/flags/pt.gif diff --git a/askbot/skins/default/media/images/flags/pw.gif b/askbot/skins/default/media/images/flags/pw.gif Binary files differnew file mode 100755 index 00000000..5854510f --- /dev/null +++ b/askbot/skins/default/media/images/flags/pw.gif diff --git a/askbot/skins/default/media/images/flags/py.gif b/askbot/skins/default/media/images/flags/py.gif Binary files differnew file mode 100755 index 00000000..f2e66af7 --- /dev/null +++ b/askbot/skins/default/media/images/flags/py.gif diff --git a/askbot/skins/default/media/images/flags/qa.gif b/askbot/skins/default/media/images/flags/qa.gif Binary files differnew file mode 100755 index 00000000..2e843ff9 --- /dev/null +++ b/askbot/skins/default/media/images/flags/qa.gif diff --git a/askbot/skins/default/media/images/flags/re.gif b/askbot/skins/default/media/images/flags/re.gif Binary files differnew file mode 100755 index 00000000..43d0b801 --- /dev/null +++ b/askbot/skins/default/media/images/flags/re.gif diff --git a/askbot/skins/default/media/images/flags/ro.gif b/askbot/skins/default/media/images/flags/ro.gif Binary files differnew file mode 100755 index 00000000..f5d5f125 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ro.gif diff --git a/askbot/skins/default/media/images/flags/rs.gif b/askbot/skins/default/media/images/flags/rs.gif Binary files differnew file mode 100644 index 00000000..3bd1fb2f --- /dev/null +++ b/askbot/skins/default/media/images/flags/rs.gif diff --git a/askbot/skins/default/media/images/flags/ru.gif b/askbot/skins/default/media/images/flags/ru.gif Binary files differnew file mode 100755 index 00000000..b525c462 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ru.gif diff --git a/askbot/skins/default/media/images/flags/rw.gif b/askbot/skins/default/media/images/flags/rw.gif Binary files differnew file mode 100755 index 00000000..0d095f7a --- /dev/null +++ b/askbot/skins/default/media/images/flags/rw.gif diff --git a/askbot/skins/default/media/images/flags/sa.gif b/askbot/skins/default/media/images/flags/sa.gif Binary files differnew file mode 100755 index 00000000..179961b6 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sa.gif diff --git a/askbot/skins/default/media/images/flags/sb.gif b/askbot/skins/default/media/images/flags/sb.gif Binary files differnew file mode 100755 index 00000000..8f5ff837 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sb.gif diff --git a/askbot/skins/default/media/images/flags/sc.gif b/askbot/skins/default/media/images/flags/sc.gif Binary files differnew file mode 100755 index 00000000..31b47677 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sc.gif diff --git a/askbot/skins/default/media/images/flags/scotland.gif b/askbot/skins/default/media/images/flags/scotland.gif Binary files differnew file mode 100755 index 00000000..03f3f1de --- /dev/null +++ b/askbot/skins/default/media/images/flags/scotland.gif diff --git a/askbot/skins/default/media/images/flags/sd.gif b/askbot/skins/default/media/images/flags/sd.gif Binary files differnew file mode 100755 index 00000000..53ae214f --- /dev/null +++ b/askbot/skins/default/media/images/flags/sd.gif diff --git a/askbot/skins/default/media/images/flags/se.gif b/askbot/skins/default/media/images/flags/se.gif Binary files differnew file mode 100755 index 00000000..80f62852 --- /dev/null +++ b/askbot/skins/default/media/images/flags/se.gif diff --git a/askbot/skins/default/media/images/flags/sg.gif b/askbot/skins/default/media/images/flags/sg.gif Binary files differnew file mode 100755 index 00000000..5663d39f --- /dev/null +++ b/askbot/skins/default/media/images/flags/sg.gif diff --git a/askbot/skins/default/media/images/flags/sh.gif b/askbot/skins/default/media/images/flags/sh.gif Binary files differnew file mode 100755 index 00000000..dcc7f3bc --- /dev/null +++ b/askbot/skins/default/media/images/flags/sh.gif diff --git a/askbot/skins/default/media/images/flags/si.gif b/askbot/skins/default/media/images/flags/si.gif Binary files differnew file mode 100755 index 00000000..23852b50 --- /dev/null +++ b/askbot/skins/default/media/images/flags/si.gif diff --git a/askbot/skins/default/media/images/flags/sj.gif b/askbot/skins/default/media/images/flags/sj.gif Binary files differnew file mode 100755 index 00000000..6202d1f3 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sj.gif diff --git a/askbot/skins/default/media/images/flags/sk.gif b/askbot/skins/default/media/images/flags/sk.gif Binary files differnew file mode 100755 index 00000000..1b3f22ba --- /dev/null +++ b/askbot/skins/default/media/images/flags/sk.gif diff --git a/askbot/skins/default/media/images/flags/sl.gif b/askbot/skins/default/media/images/flags/sl.gif Binary files differnew file mode 100755 index 00000000..f0f34923 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sl.gif diff --git a/askbot/skins/default/media/images/flags/sm.gif b/askbot/skins/default/media/images/flags/sm.gif Binary files differnew file mode 100755 index 00000000..04d98de5 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sm.gif diff --git a/askbot/skins/default/media/images/flags/sn.gif b/askbot/skins/default/media/images/flags/sn.gif Binary files differnew file mode 100755 index 00000000..6dac8709 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sn.gif diff --git a/askbot/skins/default/media/images/flags/so.gif b/askbot/skins/default/media/images/flags/so.gif Binary files differnew file mode 100755 index 00000000..f1961694 --- /dev/null +++ b/askbot/skins/default/media/images/flags/so.gif diff --git a/askbot/skins/default/media/images/flags/sr.gif b/askbot/skins/default/media/images/flags/sr.gif Binary files differnew file mode 100755 index 00000000..0f7499ad --- /dev/null +++ b/askbot/skins/default/media/images/flags/sr.gif diff --git a/askbot/skins/default/media/images/flags/st.gif b/askbot/skins/default/media/images/flags/st.gif Binary files differnew file mode 100755 index 00000000..4f1e6e09 --- /dev/null +++ b/askbot/skins/default/media/images/flags/st.gif diff --git a/askbot/skins/default/media/images/flags/sv.gif b/askbot/skins/default/media/images/flags/sv.gif Binary files differnew file mode 100755 index 00000000..2d7b159a --- /dev/null +++ b/askbot/skins/default/media/images/flags/sv.gif diff --git a/askbot/skins/default/media/images/flags/sy.gif b/askbot/skins/default/media/images/flags/sy.gif Binary files differnew file mode 100755 index 00000000..dc8bd509 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sy.gif diff --git a/askbot/skins/default/media/images/flags/sz.gif b/askbot/skins/default/media/images/flags/sz.gif Binary files differnew file mode 100755 index 00000000..f37aaf80 --- /dev/null +++ b/askbot/skins/default/media/images/flags/sz.gif diff --git a/askbot/skins/default/media/images/flags/tc.gif b/askbot/skins/default/media/images/flags/tc.gif Binary files differnew file mode 100755 index 00000000..11a8c232 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tc.gif diff --git a/askbot/skins/default/media/images/flags/td.gif b/askbot/skins/default/media/images/flags/td.gif Binary files differnew file mode 100755 index 00000000..7aa8a10d --- /dev/null +++ b/askbot/skins/default/media/images/flags/td.gif diff --git a/askbot/skins/default/media/images/flags/tf.gif b/askbot/skins/default/media/images/flags/tf.gif Binary files differnew file mode 100755 index 00000000..51a43250 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tf.gif diff --git a/askbot/skins/default/media/images/flags/tg.gif b/askbot/skins/default/media/images/flags/tg.gif Binary files differnew file mode 100755 index 00000000..ca6b4e77 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tg.gif diff --git a/askbot/skins/default/media/images/flags/th.gif b/askbot/skins/default/media/images/flags/th.gif Binary files differnew file mode 100755 index 00000000..01307924 --- /dev/null +++ b/askbot/skins/default/media/images/flags/th.gif diff --git a/askbot/skins/default/media/images/flags/tj.gif b/askbot/skins/default/media/images/flags/tj.gif Binary files differnew file mode 100755 index 00000000..2fe38d4a --- /dev/null +++ b/askbot/skins/default/media/images/flags/tj.gif diff --git a/askbot/skins/default/media/images/flags/tk.gif b/askbot/skins/default/media/images/flags/tk.gif Binary files differnew file mode 100755 index 00000000..3d3a727f --- /dev/null +++ b/askbot/skins/default/media/images/flags/tk.gif diff --git a/askbot/skins/default/media/images/flags/tl.gif b/askbot/skins/default/media/images/flags/tl.gif Binary files differnew file mode 100755 index 00000000..df22d582 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tl.gif diff --git a/askbot/skins/default/media/images/flags/tm.gif b/askbot/skins/default/media/images/flags/tm.gif Binary files differnew file mode 100755 index 00000000..36d0994f --- /dev/null +++ b/askbot/skins/default/media/images/flags/tm.gif diff --git a/askbot/skins/default/media/images/flags/tn.gif b/askbot/skins/default/media/images/flags/tn.gif Binary files differnew file mode 100755 index 00000000..917d4288 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tn.gif diff --git a/askbot/skins/default/media/images/flags/to.gif b/askbot/skins/default/media/images/flags/to.gif Binary files differnew file mode 100755 index 00000000..d7ed4d11 --- /dev/null +++ b/askbot/skins/default/media/images/flags/to.gif diff --git a/askbot/skins/default/media/images/flags/tr.gif b/askbot/skins/default/media/images/flags/tr.gif Binary files differnew file mode 100755 index 00000000..e407d553 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tr.gif diff --git a/askbot/skins/default/media/images/flags/tt.gif b/askbot/skins/default/media/images/flags/tt.gif Binary files differnew file mode 100755 index 00000000..47d3b806 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tt.gif diff --git a/askbot/skins/default/media/images/flags/tv.gif b/askbot/skins/default/media/images/flags/tv.gif Binary files differnew file mode 100755 index 00000000..3c338277 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tv.gif diff --git a/askbot/skins/default/media/images/flags/tw.gif b/askbot/skins/default/media/images/flags/tw.gif Binary files differnew file mode 100755 index 00000000..cacfd9b7 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tw.gif diff --git a/askbot/skins/default/media/images/flags/tz.gif b/askbot/skins/default/media/images/flags/tz.gif Binary files differnew file mode 100755 index 00000000..82b52ca2 --- /dev/null +++ b/askbot/skins/default/media/images/flags/tz.gif diff --git a/askbot/skins/default/media/images/flags/ua.gif b/askbot/skins/default/media/images/flags/ua.gif Binary files differnew file mode 100755 index 00000000..5d6cd83f --- /dev/null +++ b/askbot/skins/default/media/images/flags/ua.gif diff --git a/askbot/skins/default/media/images/flags/ug.gif b/askbot/skins/default/media/images/flags/ug.gif Binary files differnew file mode 100755 index 00000000..58b731ad --- /dev/null +++ b/askbot/skins/default/media/images/flags/ug.gif diff --git a/askbot/skins/default/media/images/flags/um.gif b/askbot/skins/default/media/images/flags/um.gif Binary files differnew file mode 100755 index 00000000..3b4c8483 --- /dev/null +++ b/askbot/skins/default/media/images/flags/um.gif diff --git a/askbot/skins/default/media/images/flags/us.gif b/askbot/skins/default/media/images/flags/us.gif Binary files differnew file mode 100755 index 00000000..8f198f73 --- /dev/null +++ b/askbot/skins/default/media/images/flags/us.gif diff --git a/askbot/skins/default/media/images/flags/uy.gif b/askbot/skins/default/media/images/flags/uy.gif Binary files differnew file mode 100755 index 00000000..12848c74 --- /dev/null +++ b/askbot/skins/default/media/images/flags/uy.gif diff --git a/askbot/skins/default/media/images/flags/uz.gif b/askbot/skins/default/media/images/flags/uz.gif Binary files differnew file mode 100755 index 00000000..dc9daeca --- /dev/null +++ b/askbot/skins/default/media/images/flags/uz.gif diff --git a/askbot/skins/default/media/images/flags/va.gif b/askbot/skins/default/media/images/flags/va.gif Binary files differnew file mode 100755 index 00000000..2bd74468 --- /dev/null +++ b/askbot/skins/default/media/images/flags/va.gif diff --git a/askbot/skins/default/media/images/flags/vc.gif b/askbot/skins/default/media/images/flags/vc.gif Binary files differnew file mode 100755 index 00000000..48213816 --- /dev/null +++ b/askbot/skins/default/media/images/flags/vc.gif diff --git a/askbot/skins/default/media/images/flags/ve.gif b/askbot/skins/default/media/images/flags/ve.gif Binary files differnew file mode 100755 index 00000000..19ce6c14 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ve.gif diff --git a/askbot/skins/default/media/images/flags/vg.gif b/askbot/skins/default/media/images/flags/vg.gif Binary files differnew file mode 100755 index 00000000..1fc0f96e --- /dev/null +++ b/askbot/skins/default/media/images/flags/vg.gif diff --git a/askbot/skins/default/media/images/flags/vi.gif b/askbot/skins/default/media/images/flags/vi.gif Binary files differnew file mode 100755 index 00000000..66f9e746 --- /dev/null +++ b/askbot/skins/default/media/images/flags/vi.gif diff --git a/askbot/skins/default/media/images/flags/vn.gif b/askbot/skins/default/media/images/flags/vn.gif Binary files differnew file mode 100755 index 00000000..f1e20c94 --- /dev/null +++ b/askbot/skins/default/media/images/flags/vn.gif diff --git a/askbot/skins/default/media/images/flags/vu.gif b/askbot/skins/default/media/images/flags/vu.gif Binary files differnew file mode 100755 index 00000000..8a8b2b06 --- /dev/null +++ b/askbot/skins/default/media/images/flags/vu.gif diff --git a/askbot/skins/default/media/images/flags/wales.gif b/askbot/skins/default/media/images/flags/wales.gif Binary files differnew file mode 100755 index 00000000..901d1750 --- /dev/null +++ b/askbot/skins/default/media/images/flags/wales.gif diff --git a/askbot/skins/default/media/images/flags/wf.gif b/askbot/skins/default/media/images/flags/wf.gif Binary files differnew file mode 100755 index 00000000..eaa954b1 --- /dev/null +++ b/askbot/skins/default/media/images/flags/wf.gif diff --git a/askbot/skins/default/media/images/flags/ws.gif b/askbot/skins/default/media/images/flags/ws.gif Binary files differnew file mode 100755 index 00000000..a51f939e --- /dev/null +++ b/askbot/skins/default/media/images/flags/ws.gif diff --git a/askbot/skins/default/media/images/flags/ye.gif b/askbot/skins/default/media/images/flags/ye.gif Binary files differnew file mode 100755 index 00000000..7b0183d0 --- /dev/null +++ b/askbot/skins/default/media/images/flags/ye.gif diff --git a/askbot/skins/default/media/images/flags/yt.gif b/askbot/skins/default/media/images/flags/yt.gif Binary files differnew file mode 100755 index 00000000..a2267c05 --- /dev/null +++ b/askbot/skins/default/media/images/flags/yt.gif diff --git a/askbot/skins/default/media/images/flags/za.gif b/askbot/skins/default/media/images/flags/za.gif Binary files differnew file mode 100755 index 00000000..ede52589 --- /dev/null +++ b/askbot/skins/default/media/images/flags/za.gif diff --git a/askbot/skins/default/media/images/flags/zm.gif b/askbot/skins/default/media/images/flags/zm.gif Binary files differnew file mode 100755 index 00000000..b2851d2b --- /dev/null +++ b/askbot/skins/default/media/images/flags/zm.gif diff --git a/askbot/skins/default/media/images/flags/zw.gif b/askbot/skins/default/media/images/flags/zw.gif Binary files differnew file mode 100755 index 00000000..02901f62 --- /dev/null +++ b/askbot/skins/default/media/images/flags/zw.gif diff --git a/askbot/skins/default/media/js/live_search.js b/askbot/skins/default/media/js/live_search.js index 57621cd1..20203d1f 100644 --- a/askbot/skins/default/media/js/live_search.js +++ b/askbot/skins/default/media/js/live_search.js @@ -145,6 +145,21 @@ $(document).ready(function(){ return html; }; + var render_user_flag = function(result){ + var country_code = result['u_country_code']; + if (country_code) { + return '<img class="flag" src="'+ + mediaUrl( + 'media/images/flags/' + + country_code.toLowerCase() + + '.gif' + ) + + '"/>'; + } else { + return ''; + } + }; + var render_user_info = function(result){ var user_html = '<div class="userinfo">' + @@ -154,6 +169,7 @@ $(document).ready(function(){ result['timesince'] + '</span> ' + render_user_link(result) + + render_user_flag(result) + //render_user_badge_and_karma(result) + '</div>'; return user_html; diff --git a/askbot/skins/default/media/style/style.css b/askbot/skins/default/media/style/style.css index a5f0d7ff..887e938a 100755 --- a/askbot/skins/default/media/style/style.css +++ b/askbot/skins/default/media/style/style.css @@ -1241,6 +1241,7 @@ ins .post-tag { font-weight: 800; color: #777; line-height: 40px; /*letter-spacing:0px*/ + margin-top: 3px; } .user-details { @@ -1746,8 +1747,8 @@ ul.form-horizontal-rows li input { } .user-profile-tool-links { - padding-bottom: 10px; font-weight: bold; + vertical-align: top; } .post-controls, .post-tags { @@ -1995,6 +1996,25 @@ img.gravatar { .user-profile-page .avatar p { margin-bottom: 0px; } +.user-profile-page .tabBar a#stats { + margin-left: 0; +} +.user-profile-page img.gravatar { + margin: 2px 0 3px 0; +} +.user-profile-page h3 { + padding: 0; + margin-top: -3px; +} + +img.flag { + border: 1px solid #eee; + vertical-align: text-top; +} + +.main-page img.flag { + vertical-align: text-bottom; +} .fb-share, .twitter-share { background: url(../images/sprite.png) no-repeat; diff --git a/askbot/skins/default/templates/macros.html b/askbot/skins/default/templates/macros.html index f6cb907d..32d4c5bb 100644 --- a/askbot/skins/default/templates/macros.html +++ b/askbot/skins/default/templates/macros.html @@ -44,6 +44,26 @@ {%- endif -%} {%- endmacro -%} +{%- macro user_country_flag(user) -%} + {% if user.country and user.show_country %} + <img class="flag" src="{{ ('/images/flags/' ~ user.country.code|lower ~ '.gif')|media }}"/> + {% endif %} +{%- endmacro -%} + +{%- macro user_country_name_and_flag(user) -%} + {% if user.country and user.show_country %} + {{ user.country.name }} + {{ user_country_flag(user) }} + {% endif %} +{%- endmacro -%} + +{%- macro user_full_location(user) -%} + {% if user.location %} + {{ user.location }}, + {% endif %} + {{ user_country_name_and_flag(user) }} +{%- endmacro -%} + {%- macro paginator(p, position='left') -%}{# p is paginator context dictionary #} {% spaceless %} {% if p.is_paginated %} @@ -176,7 +196,7 @@ poor design of the data or methods on data objects #} {% endif %} </p> {{ gravatar(post.author, 32) }} - {{post.author.get_profile_link()}}{% if not post.author.website %}<br/>{% endif %} + {{post.author.get_profile_link()}}{{ user_country_flag(post.author)}}{% if not post.author.website %}<br/>{% endif %} {{ user_score_and_badge_summary(post.author) }}<br/> {{ user_website_link(post.author) }} {% endif %} @@ -204,7 +224,7 @@ poor design of the data or methods on data objects #} </p> {% if original_author != update_author or is_wiki %} {{ gravatar(update_author, 32) }} - {{update_author.get_profile_link()}}{% if not update_author.website %}<br/>{% endif %} + {{update_author.get_profile_link()}}{{ user_country_flag(update_author) }}{% if not update_author.website %}<br/>{% endif %} {{ user_score_and_badge_summary(update_author) }}<br/> {{ user_website_link(update_author) }} {% endif %} @@ -258,7 +278,7 @@ poor design of the data or methods on data objects #} <div style="clear:both"></div> <div class="userinfo"> <span class="relativetime" title="{{question.last_activity_at}}">{{ question.last_activity_at|diff_date }}</span> - <a href="{% url user_profile question.last_activity_by.id, question.last_activity_by.username|slugify %}">{{question.last_activity_by.username}}</a> + <a href="{% url user_profile question.last_activity_by.id, question.last_activity_by.username|slugify %}">{{question.last_activity_by.username}}</a>{{ user_country_flag(question.last_activity_by) }} {#{user_score_and_badge_summary(question.last_activity_by)}#} </div> </div> diff --git a/askbot/skins/default/templates/user_profile/user_edit.html b/askbot/skins/default/templates/user_profile/user_edit.html index 98da4932..9308bf90 100644 --- a/askbot/skins/default/templates/user_profile/user_edit.html +++ b/askbot/skins/default/templates/user_profile/user_edit.html @@ -23,7 +23,7 @@ <th width="100px"></th> <th></th> </tr> - <tr style="height:35px"> + <tr> <td>{% trans %}Screen Name{% endtrans %}:</td> <td> {% if settings.EDITABLE_SCREEN_NAME %} @@ -34,31 +34,39 @@ {% endif %} </td> </tr> - <tr style="height:35px"> + <tr> <td>{{ form.email.label_tag() }}:</td> <td>{{ form.email }} <span class="form-error"></span> {{ form.email.errors }} </td> </tr> - <tr style="height:35px"> + <tr> <td></td> <td class="title-desc">{{ form.email.help_text }}</td> </tr> - <tr style="height:35px"> + <tr> <td>{{ form.realname.label_tag() }}:</td> <td>{{ form.realname }} <span class="form-error"></span> {{ form.realname.errors }} </td> </tr> - <tr style="height:35px"> + <tr> <td>{{ form.website.label_tag() }}:</td> <td>{{ form.website }} <span class="form-error"></span> {{ form.website.errors }} </td> </tr> - <tr style="height:35px"> + <tr> <td>{{ form.city.label_tag() }}:</td> <td>{{ form.city }} <span class="form-error"></span> {{ form.city.errors }} </td> </tr> - <tr style="height:35px"> + <tr> + <td>{{ form.country.label_tag() }}:</td> + <td>{{ form.country }} <span class="form-error"></span> {{ form.country.errors }} </td> + </tr> + <tr> + <td>{{ form.show_country.label_tag() }}:</td> + <td>{{ form.show_country }} <span class="form-error"></span> {{ form.show_country.errors }} </td> + </tr> + <tr> <td>{{ form.birthday.label_tag() }}:</td> <td>{{ form.birthday }} <span class="form-error"></span> {{ form.birthday.errors }} </td> </tr> - <tr style="height:35px"> + <tr> <td></td> <td class="title-desc">{{ form.birthday.help_text }}</td> </tr> diff --git a/askbot/skins/default/templates/user_profile/user_info.html b/askbot/skins/default/templates/user_profile/user_info.html index 7909d52b..6c6868c7 100644 --- a/askbot/skins/default/templates/user_profile/user_info.html +++ b/askbot/skins/default/templates/user_profile/user_info.html @@ -2,7 +2,7 @@ {% import "macros.html" as macros %} <table class="user-info-table"> <tr> - <td style="vertical-align:middle;text-align:center;"> + <td style="vertical-align:top;text-align:center;"> <div class='avatar'> {{ macros.gravatar(view_user, 128) }} {% if request.user == view_user %} @@ -24,19 +24,19 @@ <div class="scoreNumber">{{view_user.reputation|intcomma}}</div> <p><b style="color:#777;">{% trans %}reputation{% endtrans %}</b></p> </td> - <td width="360" style="vertical-align: top;"> + <td width="360" style="padding-left:5px;vertical-align: top;"> <table class="user-details"> {% if request.user == view_user %} <tr> <td class="user-profile-tool-links" align="left" colspan="2"> - {% if request.user == view_user %} - <a href="{% url user_signin %}?next={% url user_signin %}"> - {% trans %}manage login methods{% endtrans %} - </a> | - {% endif %} <a href="{% url edit_user view_user.id %}"> {% trans %}update profile{% endtrans %} </a> + {% if request.user == view_user %} + | <a href="{% url user_signin %}?next={% url user_signin %}"> + {% trans %}manage login methods{% endtrans %} + </a> + {% endif %} </td> </tr> {% endif %} @@ -67,10 +67,10 @@ <td>{{ macros.user_website_link(view_user, max_display_length = 30) }}</td> </tr> {% endif %} - {% if view_user.location %} + {% if view_user.location or view_user.country %} <tr> <td>{% trans %}location{% endtrans %}</td> - <td>{{view_user.location}}</td> + <td>{{ macros.user_full_location(view_user) }}</td> </tr> {% endif %} {% if view_user.date_of_birth%} diff --git a/askbot/skins/default/templates/users.html b/askbot/skins/default/templates/users.html index 13381e96..dab2e661 100644 --- a/askbot/skins/default/templates/users.html +++ b/askbot/skins/default/templates/users.html @@ -48,7 +48,7 @@ <div class="user"> <ul> <li class="thumb">{{ macros.gravatar(user, 32) }}</li> - <li><a href="{% url user_profile user.id, user.username|slugify %}">{{user.username}}</a></li> + <li><a href="{% url user_profile user.id, user.username|slugify %}">{{user.username}}</a>{{ macros.user_country_flag(user) }}</li> <li>{{ macros.user_score_and_badge_summary(user) }}</li> </ul> </div> diff --git a/askbot/templatetags/extra_filters_jinja.py b/askbot/templatetags/extra_filters_jinja.py index 3ca2e09a..545b6fc9 100644 --- a/askbot/templatetags/extra_filters_jinja.py +++ b/askbot/templatetags/extra_filters_jinja.py @@ -12,9 +12,23 @@ from askbot.skins import utils as skin_utils from askbot.utils import functions from askbot.utils.slug import slugify +from django_countries import countries +from django_countries import settings as countries_settings + register = coffin_template.Library() @register.filter +def country_display_name(country_code): + country_dict = dict(countries.COUNTRIES) + return country_dict[country_code] + +@register.filter +def country_flag_url(country_code): + import pdb + pdb.set_trace() + return countries_settings.FLAG_URL % country_code + +@register.filter def collapse(input): input = str(input) return ' '.join(input.split()) diff --git a/askbot/views/readers.py b/askbot/views/readers.py index 06786714..16e71f3e 100644 --- a/askbot/views/readers.py +++ b/askbot/views/readers.py @@ -217,6 +217,10 @@ def questions(request): else: views_class = 'some-views' + country_code = None + if author.country and author.show_country: + country_code = author.country.code + question_data = { 'title': question.title, 'summary': question.summary, @@ -257,6 +261,7 @@ def questions(request): ), 'u_bronze_badge_symbol': const.BADGE_DISPLAY_SYMBOL, 'u_bronze_css_class': bronze_badge_css_class, + 'u_country_code': country_code, } ajax_data['questions'].append(question_data) diff --git a/askbot/views/users.py b/askbot/views/users.py index 8a348164..807ccc11 100644 --- a/askbot/views/users.py +++ b/askbot/views/users.py @@ -254,6 +254,8 @@ def edit_user(request, id): user.location = sanitize_html(form.cleaned_data['city']) user.date_of_birth = form.cleaned_data.get('birthday', None) user.about = sanitize_html(form.cleaned_data['about']) + user.country = form.cleaned_data['country'] + user.show_country = form.cleaned_data['show_country'] user.save() # send user updated signal if full fields have been updated @@ -19,6 +19,7 @@ install_requires = [ 'django-threaded-multihost', 'django-robots', 'unidecode', + 'django-countries==1.0.5', ] import askbot |