Merge lp:~vorlon/summit/social-media-configurable into lp:summit

Proposed by Steve Langasek
Status: Merged
Approved by: Michael Hall
Approved revision: 569
Merged at revision: 568
Proposed branch: lp:~vorlon/summit/social-media-configurable
Merge into: lp:summit
Diff against target: 312 lines (+244/-4)
6 files modified
summit/schedule/migrations/0030_auto__add_field_summit_social_media.py (+214/-0)
summit/schedule/models/summitmodel.py (+4/-0)
summit/schedule/templates/schedule/meeting.html (+1/-2)
summit/schedule/templates/schedule/summit.html (+2/-0)
summit/schedule/templates/schedule/virtual_meeting.html (+1/-2)
summit/schedule/tests/summit_model.py (+22/-0)
To merge this branch: bzr merge lp:~vorlon/summit/social-media-configurable
Reviewer Review Type Date Requested Status
Michael Hall (community) Approve
Review via email: mp+217674@code.launchpad.net

Commit message

Let social media links be turned o/off on a per-summit basis.

Description of the change

DebConf does not want social media links on its summit instance, in part because these involve loading javascript from third-party sites. Let these links be turned o/off on a per-summit basis.

To post a comment you must log in.
569. By Steve Langasek

Add test cases showing that the social_media flag DTRT

Revision history for this message
Michael Hall (mhall119) wrote :

Looks good, tests pass, thanks for the patch

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'summit/schedule/migrations/0030_auto__add_field_summit_social_media.py'
--- summit/schedule/migrations/0030_auto__add_field_summit_social_media.py 1970-01-01 00:00:00 +0000
+++ summit/schedule/migrations/0030_auto__add_field_summit_social_media.py 2014-05-04 07:06:48 +0000
@@ -0,0 +1,214 @@
1# -*- coding: utf-8 -*-
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding field 'Summit.social_media'
12 db.add_column('schedule_summit', 'social_media',
13 self.gf('django.db.models.fields.BooleanField')(default=True),
14 keep_default=False)
15
16
17 def backwards(self, orm):
18 # Deleting field 'Summit.social_media'
19 db.delete_column('schedule_summit', 'social_media')
20
21
22 models = {
23 'auth.group': {
24 'Meta': {'object_name': 'Group'},
25 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
26 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
27 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
28 },
29 'auth.permission': {
30 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
31 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
32 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
33 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
34 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
35 },
36 'auth.user': {
37 'Meta': {'ordering': "['username']", 'object_name': 'User'},
38 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
39 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
40 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
41 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
42 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
43 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
44 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
45 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
46 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
47 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
48 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
49 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
50 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
51 },
52 'contenttypes.contenttype': {
53 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
54 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
55 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
56 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
57 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
58 },
59 'schedule.agenda': {
60 'Meta': {'ordering': "('slot', 'room')", 'unique_together': "(('slot', 'room'),)", 'object_name': 'Agenda'},
61 'auto': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
62 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
63 'meeting': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Meeting']"}),
64 'room': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Room']"}),
65 'slot': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Slot']"})
66 },
67 'schedule.attendee': {
68 'Meta': {'ordering': "('user__username', 'summit')", 'object_name': 'Attendee'},
69 'crew': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_column': "'crew'"}),
70 'end_utc': ('django.db.models.fields.DateTimeField', [], {'db_column': "'end'"}),
71 'from_launchpad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
72 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
73 'secret_key_id': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
74 'start_utc': ('django.db.models.fields.DateTimeField', [], {'db_column': "'start'"}),
75 'summit': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Summit']"}),
76 'tracks': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['schedule.Track']", 'symmetrical': 'False', 'blank': 'True'}),
77 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
78 },
79 'schedule.attendeebusy': {
80 'Meta': {'ordering': "('attendee', 'start_utc', 'end_utc')", 'object_name': 'AttendeeBusy'},
81 'attendee': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'busy_set'", 'to': "orm['schedule.Attendee']"}),
82 'end_utc': ('django.db.models.fields.DateTimeField', [], {'db_column': "'end'"}),
83 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
84 'start_utc': ('django.db.models.fields.DateTimeField', [], {'db_column': "'start'"})
85 },
86 'schedule.crew': {
87 'Meta': {'ordering': "('date_utc', 'attendee')", 'object_name': 'Crew'},
88 'attendee': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'crew_schedule'", 'to': "orm['schedule.Attendee']"}),
89 'date_utc': ('django.db.models.fields.DateField', [], {'db_column': "'date'"}),
90 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
91 },
92 'schedule.lead': {
93 'Meta': {'ordering': "('summit', 'track')", 'object_name': 'Lead'},
94 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
95 'lead': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'lead'", 'to': "orm['schedule.Attendee']"}),
96 'summit': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Summit']"}),
97 'track': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Track']"})
98 },
99 'schedule.meeting': {
100 'Meta': {'object_name': 'Meeting'},
101 'approved': ('django.db.models.fields.CharField', [], {'default': "'PENDING'", 'max_length': '10', 'null': 'True'}),
102 'approver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'approver_set'", 'null': 'True', 'to': "orm['schedule.Attendee']"}),
103 'assignee': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'assignee_set'", 'null': 'True', 'to': "orm['schedule.Attendee']"}),
104 'broadcast_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
105 'description': ('django.db.models.fields.TextField', [], {'max_length': '2047', 'blank': 'True'}),
106 'drafter': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'drafter_set'", 'null': 'True', 'to': "orm['schedule.Attendee']"}),
107 'hangout_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
108 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
109 'launchpad_blueprint_id': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
110 'name': ('summit.schedule.fields.NameField', [], {'max_length': '100'}),
111 'override_break': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
112 'pad_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
113 'participants': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['schedule.Attendee']", 'symmetrical': 'False', 'through': "orm['schedule.Participant']", 'blank': 'True'}),
114 'priority': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
115 'private': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
116 'private_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
117 'requires_dial_in': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
118 'scribe': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scribe_set'", 'null': 'True', 'to': "orm['schedule.Attendee']"}),
119 'slots': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
120 'spec_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
121 'status': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
122 'summit': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Summit']"}),
123 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
124 'tracks': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['schedule.Track']", 'symmetrical': 'False', 'blank': 'True'}),
125 'type': ('django.db.models.fields.CharField', [], {'default': "u'discussion'", 'max_length': '15'}),
126 'video': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
127 'virtual_meeting': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
128 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
129 },
130 'schedule.participant': {
131 'Meta': {'ordering': "('meeting', 'attendee', 'participation')", 'object_name': 'Participant'},
132 'attendee': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Attendee']"}),
133 'from_launchpad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
134 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
135 'meeting': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Meeting']"}),
136 'participation': ('django.db.models.fields.CharField', [], {'default': "'ATTENDING'", 'max_length': '32', 'null': 'True'})
137 },
138 'schedule.room': {
139 'Meta': {'ordering': "('summit', 'name')", 'object_name': 'Room'},
140 'end_utc': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_column': "'end'", 'blank': 'True'}),
141 'has_dial_in': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
142 'icecast_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
143 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
144 'irc_channel': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
145 'name': ('summit.schedule.fields.NameField', [], {'max_length': '50'}),
146 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
147 'start_utc': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_column': "'start'", 'blank': 'True'}),
148 'summit': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Summit']"}),
149 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
150 'tracks': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['schedule.Track']", 'symmetrical': 'False', 'blank': 'True'}),
151 'type': ('django.db.models.fields.CharField', [], {'default': "u'open'", 'max_length': '7'})
152 },
153 'schedule.roombusy': {
154 'Meta': {'ordering': "('room', 'start_utc', 'end_utc')", 'object_name': 'RoomBusy'},
155 'end_utc': ('django.db.models.fields.DateTimeField', [], {'db_column': "'end'"}),
156 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
157 'room': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'busy_set'", 'to': "orm['schedule.Room']"}),
158 'start_utc': ('django.db.models.fields.DateTimeField', [], {'db_column': "'start'"})
159 },
160 'schedule.slot': {
161 'Meta': {'ordering': "('summit', 'start_utc', 'end_utc')", 'object_name': 'Slot'},
162 'end_utc': ('django.db.models.fields.DateTimeField', [], {'db_column': "'end'"}),
163 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
164 'start_utc': ('django.db.models.fields.DateTimeField', [], {'db_column': "'start'"}),
165 'summit': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Summit']"}),
166 'type': ('django.db.models.fields.CharField', [], {'default': "u'open'", 'max_length': '7'})
167 },
168 'schedule.summit': {
169 'Meta': {'ordering': "('name',)", 'object_name': 'Summit'},
170 'date_end': ('django.db.models.fields.DateField', [], {'null': 'True'}),
171 'date_start': ('django.db.models.fields.DateField', [], {'null': 'True'}),
172 'description': ('django.db.models.fields.TextField', [], {'max_length': '2047', 'blank': 'True'}),
173 'etherpad': ('django.db.models.fields.URLField', [], {'default': "'http://pad.ubuntu.com/'", 'max_length': '75'}),
174 'hashtag': ('django.db.models.fields.CharField', [], {'max_length': '25', 'blank': 'True'}),
175 'help_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
176 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
177 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
178 'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
179 'managers': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'managers'", 'blank': 'True', 'to': "orm['auth.User']"}),
180 'name': ('summit.schedule.fields.NameField', [], {'max_length': '50'}),
181 'qr': ('django.db.models.fields.URLField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
182 'schedulers': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'schedulers'", 'blank': 'True', 'to': "orm['auth.User']"}),
183 'sites': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False'}),
184 'social_media': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
185 'state': ('django.db.models.fields.CharField', [], {'default': "u'sponsor'", 'max_length': '10'}),
186 'timezone': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
187 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
188 'virtual_summit': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
189 },
190 'schedule.summitsprint': {
191 'Meta': {'ordering': "('summit', 'import_url')", 'object_name': 'SummitSprint'},
192 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
193 'import_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
194 'summit': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sprint_set'", 'to': "orm['schedule.Summit']"})
195 },
196 'schedule.track': {
197 'Meta': {'ordering': "('summit', 'title', 'slug')", 'object_name': 'Track'},
198 'allow_adjacent_sessions': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
199 'color': ('django.db.models.fields.CharField', [], {'default': "'FFFFFF'", 'max_length': '6'}),
200 'description': ('django.db.models.fields.TextField', [], {'max_length': '1000', 'null': 'True'}),
201 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
202 'slug': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}),
203 'summit': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Summit']"}),
204 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
205 },
206 'sites.site': {
207 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
208 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
209 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
210 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
211 }
212 }
213
214 complete_apps = ['schedule']
0\ No newline at end of file215\ No newline at end of file
1216
=== modified file 'summit/schedule/models/summitmodel.py'
--- summit/schedule/models/summitmodel.py 2013-05-14 01:43:55 +0000
+++ summit/schedule/models/summitmodel.py 2014-05-04 07:06:48 +0000
@@ -130,6 +130,10 @@
130 blank=True,130 blank=True,
131 help_text='Instructions and links for getting help during the event'131 help_text='Instructions and links for getting help during the event'
132 )132 )
133 social_media = models.BooleanField(
134 default=True,
135 help_text='Enable social media links for the summit'
136 )
133137
134 objects = models.Manager()138 objects = models.Manager()
135 on_site = SummitManager()139 on_site = SummitManager()
136140
=== modified file 'summit/schedule/templates/schedule/meeting.html'
--- summit/schedule/templates/schedule/meeting.html 2013-11-06 02:25:41 +0000
+++ summit/schedule/templates/schedule/meeting.html 2014-05-04 07:06:48 +0000
@@ -81,8 +81,7 @@
8181
82</section>82</section>
83<article class="span-3 last">83<article class="span-3 last">
84{% if meeting.private %}84{% if not meeting.private and summit.social_media %}
85{% else %}
86<div class="share">85<div class="share">
87 <a href="http://www.reddit.com/submit" onclick="window.location = 'http://www.reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img style="padding-bottom: 4px;"src="http://www.reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /></a><br />86 <a href="http://www.reddit.com/submit" onclick="window.location = 'http://www.reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img style="padding-bottom: 4px;"src="http://www.reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /></a><br />
88 <div id="fb-root"></div>87 <div id="fb-root"></div>
8988
=== modified file 'summit/schedule/templates/schedule/summit.html'
--- summit/schedule/templates/schedule/summit.html 2014-04-13 21:50:21 +0000
+++ summit/schedule/templates/schedule/summit.html 2014-05-04 07:06:48 +0000
@@ -53,6 +53,7 @@
53 {% endif %}53 {% endif %}
54 </section>54 </section>
55 <article class="span-4 last">55 <article class="span-4 last">
56{% if summit.social_media %}
56 <div class="share alone">57 <div class="share alone">
57 <a href="http://www.reddit.com/submit" onclick="window.location = 'http://www.reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img style="padding-bottom: 4px; border: 0;" src="http://www.reddit.com/static/spreddit7.gif" alt="submit to reddit" /></a><br />58 <a href="http://www.reddit.com/submit" onclick="window.location = 'http://www.reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img style="padding-bottom: 4px; border: 0;" src="http://www.reddit.com/static/spreddit7.gif" alt="submit to reddit" /></a><br />
58 <div id="fb-root"></div>59 <div id="fb-root"></div>
@@ -70,6 +71,7 @@
70 <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>71 <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
71 <script src="http://www.stumbleupon.com/hostedbadge.php?s=5"></script>72 <script src="http://www.stumbleupon.com/hostedbadge.php?s=5"></script>
72 </div>73 </div>
74{% endif %}
73 </article>75 </article>
74</div>76</div>
75<div class="row">77<div class="row">
7678
=== modified file 'summit/schedule/templates/schedule/virtual_meeting.html'
--- summit/schedule/templates/schedule/virtual_meeting.html 2013-11-06 02:25:41 +0000
+++ summit/schedule/templates/schedule/virtual_meeting.html 2014-05-04 07:06:48 +0000
@@ -72,8 +72,7 @@
72 {% for ai in agenda_items %}72 {% for ai in agenda_items %}
73 <h3>{{ ai.slot }} in {{ ai.room.title }}</h3>73 <h3>{{ ai.slot }} in {{ ai.room.title }}</h3>
74 {% endfor %}74 {% endfor %}
75 {% if meeting.private %}75 {% if not meeting.private and summit.social_media %}
76 {% else %}
77 <div class="share">76 <div class="share">
78 <div id="fb-root"></div>77 <div id="fb-root"></div>
79 <script>(function(d, s, id) {78 <script>(function(d, s, id) {
8079
=== modified file 'summit/schedule/tests/summit_model.py'
--- summit/schedule/tests/summit_model.py 2013-05-09 20:15:49 +0000
+++ summit/schedule/tests/summit_model.py 2014-05-04 07:06:48 +0000
@@ -642,3 +642,25 @@
642 summit = self.create_summit()642 summit = self.create_summit()
643 response = self.load_summit_page(summit)643 response = self.load_summit_page(summit)
644 self.assertNotContains(response, "Launchpad information")644 self.assertNotContains(response, "Launchpad information")
645
646 def test_summit_page_displays_social_media(self):
647 """
648 Tests that the summit main page displays the social media links when
649 social_media=True
650 """
651 summit = self.create_summit()
652 summit.social_media=True
653 summit.save()
654 response = self.load_summit_page(summit)
655 self.assertContains(response, "http://www.reddit.com/submit")
656
657 def test_summit_page_does_not_display_social_media(self):
658 """
659 Tests that the summit main page does not display the social media
660 links when social_media=False
661 """
662 summit = self.create_summit()
663 summit.social_media=False
664 summit.save()
665 response = self.load_summit_page(summit)
666 self.assertNotContains(response, "http://www.reddit.com/submit")

Subscribers

People subscribed via source and target branches