Commit 0f0d7015d4eea5667409b033859ddb2baf3120d8

Authored by Sergio Oliveira
2 parents a5fb3168 92263520

Merge branch 'disable_social_networks' into 'master'

Disable social networks
colab/accounts/context_processors.py 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +from django.conf import settings
  2 +
  3 +
  4 +def social_network_enabled(request):
  5 + return {'SOCIAL_NETWORK_ENABLED': getattr(settings,
  6 + 'SOCIAL_NETWORK_ENABLED',
  7 + False)}
... ...
colab/accounts/forms.py
... ... @@ -15,11 +15,15 @@ from django.utils.translation import ugettext_lazy as _
15 15  
16 16 from conversejs.models import XMPPAccount
17 17  
  18 +from django.conf import settings
  19 +
18 20 from .utils.validators import validate_social_account
19 21 from .utils import mailman
20 22  
21 23 User = get_user_model()
22 24  
  25 +SOCIAL_NETWORK_ENABLED = getattr(settings, 'SOCIAL_NETWORK_ENABLED')
  26 +
23 27  
24 28 class SocialAccountField(forms.Field):
25 29 def __init__(self, *args, **kwargs):
... ... @@ -107,6 +111,7 @@ class UserForm(forms.ModelForm):
107 111  
108 112  
109 113 class UserUpdateForm(UserForm):
  114 +
110 115 bio = forms.CharField(
111 116 widget=forms.Textarea(attrs={'rows': '6', 'maxlength': '200'}),
112 117 max_length=200,
... ... @@ -122,12 +127,16 @@ class UserUpdateForm(UserForm):
122 127 class Meta:
123 128 model = User
124 129 fields = ('first_name', 'last_name',
125   - 'institution', 'role', 'twitter', 'facebook',
126   - 'google_talk', 'github', 'webpage', 'bio')
127   -
128   - twitter = SocialAccountField(url='https://twitter.com/', required=False)
129   - facebook = SocialAccountField(url='https://graph.facebook.com/',
130   - required=False)
  130 + 'institution', 'role')
  131 + if SOCIAL_NETWORK_ENABLED:
  132 + fields += ('twitter', 'facebook', 'google_talk', 'github')
  133 + fields += ('webpage', 'bio')
  134 +
  135 + if SOCIAL_NETWORK_ENABLED:
  136 + twitter = SocialAccountField(url='https://twitter.com/',
  137 + required=False)
  138 + facebook = SocialAccountField(url='https://graph.facebook.com/',
  139 + required=False)
131 140  
132 141  
133 142 class ListsForm(forms.Form):
... ...
colab/accounts/templates/accounts/user_detail.html
... ... @@ -60,25 +60,27 @@
60 60 </li>
61 61 {% endif %}
62 62 {% if request.user.is_active %}
63   - <li>
64   - {% if user_.twitter %}
65   - <span class="icon-twitter icon-fixed-width" title="{% trans 'Twitter account' %}"></span> <a target="_blank" href="{{ user_.twitter_link }}" title="{% trans 'Twitter account' %}">{{ user_.twitter }}</a>
66   - {% endif %}
67   - {% if user_.facebook %}
68   - <span class="icon-facebook icon-fixed-width" title="{% trans 'Facebook account' %}"></span> <a target="_blank" href="{{ user_.facebook_link }}" title="{% trans 'Facebook account' %}">{{ user_.facebook }}</a>
69   - {% endif %}
70   - </li>
  63 + {% if SOCIAL_NETWORK_ENABLED %}
  64 + <li>
  65 + {% if user_.twitter %}
  66 + <span class="icon-twitter icon-fixed-width" title="{% trans 'Twitter account' %}"></span> <a target="_blank" href="{{ user_.twitter_link }}" title="{% trans 'Twitter account' %}">{{ user_.twitter }}</a>
  67 + {% endif %}
  68 + {% if user_.facebook %}
  69 + <span class="icon-facebook icon-fixed-width" title="{% trans 'Facebook account' %}"></span> <a target="_blank" href="{{ user_.facebook_link }}" title="{% trans 'Facebook account' %}">{{ user_.facebook }}</a>
  70 + {% endif %}
  71 + </li>
71 72  
72   - {% if user_.google_talk %}
73   - <li><span class="icon-google-plus icon-fixed-width" title="{% trans 'Google talk account' %}"></span> {{ user_.google_talk }}</li>
74   - {% endif %}
  73 + {% if user_.google_talk %}
  74 + <li><span class="icon-google-plus icon-fixed-width" title="{% trans 'Google talk account' %}"></span> {{ user_.google_talk }}</li>
  75 + {% endif %}
75 76  
76   - {% if user_.github %}
77   - <li><span class="icon-github icon-fixed-width" title="{% trans 'Github account' %}"></span> <a target="_blank" href="https://github.com/{{ user_.github }}">{{ user_.github }}</a></li>
78   - {% endif %}
  77 + {% if user_.github %}
  78 + <li><span class="icon-github icon-fixed-width" title="{% trans 'Github account' %}"></span> <a target="_blank" href="https://github.com/{{ user_.github }}">{{ user_.github }}</a></li>
  79 + {% endif %}
79 80  
80   - {% if user_.webpage %}
81   - <li><span class="icon-link icon-fixed-width" title="{% trans 'Personal webpage' %}"></span> <a target="_blank" href="{{ user_.webpage }}" title="{% trans 'Personal webpage' %}">{{ user_.webpage }}</a></li>
  81 + {% if user_.webpage %}
  82 + <li><span class="icon-link icon-fixed-width" title="{% trans 'Personal webpage' %}"></span> <a target="_blank" href="{{ user_.webpage }}" title="{% trans 'Personal webpage' %}">{{ user_.webpage }}</a></li>
  83 + {% endif %}
82 84 {% endif %}
83 85 {% endif %}
84 86 </ul>
... ...
colab/management/initconfig.py
... ... @@ -45,6 +45,9 @@ ALLOWED_HOSTS:
45 45 ### Uncomment to enable Broswer ID protocol for authentication
46 46 # BROWSERID_ENABLED: True
47 47  
  48 +### Uncomment to enable social networks fields profile
  49 +# SOCIAL_NETWORK_ENABLED: True
  50 +
48 51 ### Uncomment to enable Converse.js
49 52 # CONVERSEJS_ENABLED: True
50 53  
... ...
colab/settings.py
... ... @@ -322,6 +322,7 @@ if FEEDZILLA_ENABLED:
322 322 )
323 323  
324 324 BROWSERID_ENABLED = locals().get('BROWSERID_ENABLED') or False
  325 +SOCIAL_NETWORK_ENABLED = locals().get('SOCIAL_NETWORK_ENABLED') or False
325 326  
326 327 PROXIED_APPS = locals().get('PROXIED_APPS') or {}
327 328  
... ...
colab/super_archives/models.py
... ... @@ -134,6 +134,10 @@ class Thread(models.Model, HitCounterModelMixin):
134 134 objects = NotSpamManager()
135 135 tags = TaggableManager()
136 136  
  137 + # Save this pseudo now to avoid calling the
  138 + # function N times in the loops below
  139 + now = timezone.now()
  140 +
137 141 class Meta:
138 142 verbose_name = _(u"Thread")
139 143 verbose_name_plural = _(u"Threads")
... ... @@ -182,6 +186,12 @@ class Thread(models.Model, HitCounterModelMixin):
182 186 self.subject_token,
183 187 self.message_set.count())
184 188  
  189 + def _days_ago(self, date):
  190 + return (self.now - date).days
  191 +
  192 + def _get_score(self, weight, created):
  193 + return max(weight - (self.days_ago(created) // 3), 5)
  194 +
185 195 def update_score(self):
186 196 """Update the relevance score for this thread.
187 197  
... ... @@ -205,22 +215,15 @@ class Thread(models.Model, HitCounterModelMixin):
205 215 if not self.subject_token:
206 216 return
207 217  
208   - # Save this pseudo now to avoid calling the
209   - # function N times in the loops below
210   - now = timezone.now()
211   - days_ago = lambda date: (now - date).days
212   - get_score = lambda weight, created: max(weight - (days_ago(created)
213   - // 3), 5)
214   -
215 218 vote_score = 0
216 219 replies_score = 0
217 220 for msg in self.message_set.all():
218 221 # Calculate replies_score
219   - replies_score += get_score(300, msg.received_time)
  222 + replies_score += self._get_score(300, msg.received_time)
220 223  
221 224 # Calculate vote_score
222 225 for vote in msg.vote_set.all():
223   - vote_score += get_score(100, vote.created)
  226 + vote_score += self._get_score(100, vote.created)
224 227  
225 228 # Calculate page_view_score
226 229 page_view_score = self.hits * 10
... ...
docs/source/user.rst
... ... @@ -35,6 +35,15 @@ SVN
35 35 +++
36 36 .. TODO
37 37  
  38 +Social Networks
  39 +++++
  40 +.. attribute:: SOCIAL_NETWORK_ENABLED
  41 +
  42 + :default: False
  43 +
  44 + When this variable is True, the social networks fields, like Facebook and
  45 + Twitter, are added in user profile. By default, this fields are disabled.
  46 +
38 47 Auth
39 48 ++++
40 49 .. attribute:: BROWSERID_ENABLED
... ...
tests/settings.py
1 1 from colab.settings import * # noqa
2 2  
3   -
  3 +SOCIAL_NETWORK_ENABLED = True
4 4 STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
5 5  
6 6 LOGGING = {
... ...