parlement 0.9 → 0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. data/CHANGES +20 -1
  2. data/MEMORY +51 -0
  3. data/README +11 -38
  4. data/Rakefile +2 -2
  5. data/app/controllers/account_controller.rb +83 -50
  6. data/app/controllers/application.rb +3 -0
  7. data/app/controllers/elt_controller.rb +14 -3
  8. data/app/controllers/subscriber_controller.rb +25 -9
  9. data/app/helpers/elt_helper.rb +1 -1
  10. data/app/models/elt.rb +23 -13
  11. data/app/models/mail.rb +37 -17
  12. data/app/models/mail_notify.rb +6 -5
  13. data/app/models/person.rb +6 -5
  14. data/app/models/person_mail.rb +4 -0
  15. data/app/models/person_notify.rb +13 -0
  16. data/app/models/subscription.rb +4 -0
  17. data/app/views/account/_login.rhtml +9 -12
  18. data/app/views/account/_show.rhtml +35 -16
  19. data/app/views/elt/_elt.rhtml +8 -20
  20. data/app/views/elt/_listByVote.rhtml +9 -9
  21. data/app/views/elt/show.rhtml +6 -33
  22. data/app/views/layouts/top.rhtml +6 -0
  23. data/app/views/person_notify/setEmail.rhtml +24 -0
  24. data/app/views/subscriber/_list.rhtml +18 -0
  25. data/config/environment.rb +6 -4
  26. data/config/environments/development.rb +2 -0
  27. data/db/ROOT/parlement/{news → News}/Version_01.txt +0 -0
  28. data/db/ROOT/parlement/{news → News}/Version_02.txt +0 -0
  29. data/db/ROOT/parlement/{news → News}/Version_03.txt +0 -0
  30. data/db/ROOT/parlement/{news → News}/Version_04.txt +0 -0
  31. data/db/ROOT/parlement/{news → News}/Version_05.txt +0 -0
  32. data/db/ROOT/parlement/{news → News}/Version_06.txt +0 -0
  33. data/db/ROOT/parlement/{news → News}/Version_07.txt +0 -0
  34. data/db/ROOT/parlement/{news → News}/Version_08.txt +0 -0
  35. data/db/ROOT/parlement/{security → Security}/anonymity.txt +0 -0
  36. data/db/ROOT/parlement.txt +1 -1
  37. data/db/development_structure.sql +49 -34
  38. data/db/migrate/003_elt_children_count.rb +1 -1
  39. data/db/migrate/005_filter_mail.rb +22 -0
  40. data/public/javascripts/mybehaviour.js +10 -2
  41. data/public/stylesheets/default.css +21 -15
  42. data/test/unit/choice_test.rb +1 -1
  43. data/test/unit/elt_test.rb +1 -1
  44. data/test/unit/mail_notify_test.rb +24 -8
  45. data/test/unit/mail_test.rb +61 -6
  46. data/test/unit/{notifier_test.rb → person_notify_test.rb} +2 -2
  47. data/test/unit/person_test.rb +1 -1
  48. data/test/unit/subscriber_test.rb +12 -12
  49. metadata +24 -20
  50. data/app/models/notifier.rb +0 -13
  51. data/app/views/notifier/changeEmail.rhtml +0 -10
  52. data/public/images/comments.gif +0 -0
@@ -160,21 +160,23 @@ CREATE SEQUENCE people_id_seq
160
160
 
161
161
 
162
162
  --
163
- -- Name: schema_info; Type: TABLE; Schema: public; Owner: manu; Tablespace:
163
+ -- Name: person_mails; Type: TABLE; Schema: public; Owner: manu; Tablespace:
164
164
  --
165
165
 
166
- CREATE TABLE schema_info (
167
- version integer
166
+ CREATE TABLE person_mails (
167
+ id serial NOT NULL,
168
+ mail_id character varying(255) NOT NULL,
169
+ person_id character varying(255),
170
+ created_on timestamp without time zone NOT NULL
168
171
  );
169
172
 
170
173
 
171
174
  --
172
- -- Name: subscribers; Type: TABLE; Schema: public; Owner: manu; Tablespace:
175
+ -- Name: schema_info; Type: TABLE; Schema: public; Owner: manu; Tablespace:
173
176
  --
174
177
 
175
- CREATE TABLE subscribers (
176
- elt_id text NOT NULL,
177
- person_id text NOT NULL
178
+ CREATE TABLE schema_info (
179
+ version integer
178
180
  );
179
181
 
180
182
 
@@ -189,6 +191,19 @@ CREATE SEQUENCE subscribers_id_seq
189
191
  CACHE 1;
190
192
 
191
193
 
194
+ --
195
+ -- Name: subscriptions; Type: TABLE; Schema: public; Owner: manu; Tablespace:
196
+ --
197
+
198
+ CREATE TABLE subscriptions (
199
+ elt_id text NOT NULL,
200
+ person_id text NOT NULL,
201
+ filter integer DEFAULT 0,
202
+ id serial NOT NULL,
203
+ created_on timestamp with time zone DEFAULT now() NOT NULL
204
+ );
205
+
206
+
192
207
  --
193
208
  -- Name: users; Type: TABLE; Schema: public; Owner: manu; Tablespace:
194
209
  --
@@ -289,6 +304,22 @@ ALTER TABLE ONLY people
289
304
  ADD CONSTRAINT people_pkey PRIMARY KEY (id);
290
305
 
291
306
 
307
+ --
308
+ -- Name: sent_mails_pkey; Type: CONSTRAINT; Schema: public; Owner: manu; Tablespace:
309
+ --
310
+
311
+ ALTER TABLE ONLY person_mails
312
+ ADD CONSTRAINT sent_mails_pkey PRIMARY KEY (id);
313
+
314
+
315
+ --
316
+ -- Name: subscribers_pkey; Type: CONSTRAINT; Schema: public; Owner: manu; Tablespace:
317
+ --
318
+
319
+ ALTER TABLE ONLY subscriptions
320
+ ADD CONSTRAINT subscribers_pkey PRIMARY KEY (id);
321
+
322
+
292
323
  --
293
324
  -- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: manu; Tablespace:
294
325
  --
@@ -349,27 +380,11 @@ ALTER TABLE ONLY usersold
349
380
  ADD CONSTRAINT "$1" FOREIGN KEY (person_id) REFERENCES people(id);
350
381
 
351
382
 
352
- --
353
- -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: manu
354
- --
355
-
356
- ALTER TABLE ONLY subscribers
357
- ADD CONSTRAINT "$1" FOREIGN KEY (elt_id) REFERENCES elts(id);
358
-
359
-
360
- --
361
- -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: manu
362
- --
363
-
364
- ALTER TABLE ONLY delegations
365
- ADD CONSTRAINT "$1" FOREIGN KEY (elt_id) REFERENCES elts(id);
366
-
367
-
368
383
  --
369
384
  -- Name: $2; Type: FK CONSTRAINT; Schema: public; Owner: manu
370
385
  --
371
386
 
372
- ALTER TABLE ONLY subscribers
387
+ ALTER TABLE ONLY subscriptions
373
388
  ADD CONSTRAINT "$2" FOREIGN KEY (person_id) REFERENCES people(id);
374
389
 
375
390
 
@@ -393,23 +408,23 @@ ALTER TABLE ONLY delegations
393
408
  -- Name: fk_elt_id; Type: FK CONSTRAINT; Schema: public; Owner: manu
394
409
  --
395
410
 
396
- ALTER TABLE ONLY attachments
397
- ADD CONSTRAINT fk_elt_id FOREIGN KEY (elt_id) REFERENCES elts(id) ON UPDATE CASCADE;
411
+ ALTER TABLE ONLY mails
412
+ ADD CONSTRAINT fk_elt_id FOREIGN KEY (elt_id) REFERENCES elts(id) ON UPDATE CASCADE ON DELETE CASCADE;
398
413
 
399
414
 
400
415
  --
401
416
  -- Name: fk_elt_id; Type: FK CONSTRAINT; Schema: public; Owner: manu
402
417
  --
403
418
 
404
- ALTER TABLE ONLY elts
405
- ADD CONSTRAINT fk_elt_id FOREIGN KEY (parent_id) REFERENCES elts(id) ON UPDATE CASCADE;
419
+ ALTER TABLE ONLY choices
420
+ ADD CONSTRAINT fk_elt_id FOREIGN KEY (elt_id) REFERENCES elts(id) ON UPDATE CASCADE ON DELETE CASCADE;
406
421
 
407
422
 
408
423
  --
409
424
  -- Name: fk_person_id; Type: FK CONSTRAINT; Schema: public; Owner: manu
410
425
  --
411
426
 
412
- ALTER TABLE ONLY choices
427
+ ALTER TABLE ONLY elts
413
428
  ADD CONSTRAINT fk_person_id FOREIGN KEY (person_id) REFERENCES people(id) ON UPDATE CASCADE;
414
429
 
415
430
 
@@ -417,20 +432,20 @@ ALTER TABLE ONLY choices
417
432
  -- Name: fk_person_id; Type: FK CONSTRAINT; Schema: public; Owner: manu
418
433
  --
419
434
 
420
- ALTER TABLE ONLY elts
421
- ADD CONSTRAINT fk_person_id FOREIGN KEY (person_id) REFERENCES people(id) ON UPDATE CASCADE;
435
+ ALTER TABLE ONLY users
436
+ ADD CONSTRAINT fk_person_id FOREIGN KEY ("login") REFERENCES people(name) ON UPDATE CASCADE;
422
437
 
423
438
 
424
439
  --
425
440
  -- Name: fk_person_id; Type: FK CONSTRAINT; Schema: public; Owner: manu
426
441
  --
427
442
 
428
- ALTER TABLE ONLY users
429
- ADD CONSTRAINT fk_person_id FOREIGN KEY ("login") REFERENCES people(name) ON UPDATE CASCADE;
443
+ ALTER TABLE ONLY choices
444
+ ADD CONSTRAINT fk_person_id FOREIGN KEY (person_id) REFERENCES people(id) ON UPDATE CASCADE ON DELETE CASCADE;
430
445
 
431
446
 
432
447
  --
433
448
  -- PostgreSQL database dump complete
434
449
  --
435
450
 
436
- INSERT INTO schema_info (version) VALUES (4)
451
+ INSERT INTO schema_info (version) VALUES (5)
@@ -2,7 +2,7 @@ class EltChildrenCount < ActiveRecord::Migration
2
2
  def self.up
3
3
  add_column :elts, :elts_count, :integer, :default => 0
4
4
  execute 'UPDATE elts SET elts_count = (SELECT COUNT(*) FROM elts e2 WHERE e2.parent_id = elts.id)'
5
- add_index "elts", ["lft"], :name => "elts_lft_key", :unique => true
5
+ add_index "elts", ["lft"], :name => "elts_lft_key"
6
6
  add_index "elts", ["parent_id"], :name => "elts_parent_key"
7
7
  end
8
8
 
@@ -0,0 +1,22 @@
1
+ class FilterMail < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :subscribers, :filter, :integer, :default => 0
4
+ execute 'ALTER TABLE subscribers ADD id SERIAL PRIMARY KEY'
5
+ execute 'ALTER TABLE subscribers ADD created_on timestamptz NOT NULL DEFAULT now();'
6
+ execute 'ALTER TABLE subscribers RENAME TO subscriptions'
7
+ create_table :person_mails do |t|
8
+ t.column :mail_id, :string, :null => false
9
+ t.column :person_id, :string
10
+ t.column :created_on, :datetime, :null => false
11
+ end
12
+ end
13
+
14
+ def self.down
15
+ execute 'ALTER TABLE subscriptions RENAME TO subscribers'
16
+ remove_column :subscribers, :id
17
+ remove_column :subscribers, :filter
18
+ remove_column :subscribers, :created_on
19
+ drop_table :person_mails
20
+ end
21
+ end
22
+
@@ -103,11 +103,19 @@ function getCookie(name) {
103
103
  }
104
104
 
105
105
  function setCookie(name, value) {
106
- var cookieString = name + "=" + escape(value);
107
- document.cookie = cookieString;
106
+ var expires_date = new Date( new Date().getTime() + (3000 * 1000 * 60 * 60 * 24) );
107
+ document.cookie = name + "=" +escape( value ) +
108
+ (";expires=" + expires_date.toGMTString());
109
+ /*+
110
+ ( ( path ) ? ";path=" + path : "" ) +
111
+ ( ( domain ) ? ";domain=" + domain : "" ) +
112
+ ( ( secure ) ? ";secure" : "" );*/
108
113
  }
109
114
 
110
115
 
116
+ /*
117
+ * This is not the value itself, but an index
118
+ */
111
119
  function setFilter(filter) {
112
120
  document.getElementsByClassName('result').each( function(result) {
113
121
  //alert(parseInt(result.innerHTML)+', '+filter);
@@ -193,32 +193,36 @@ h1 .help {
193
193
  text-align: right;
194
194
  font-weight: bolder; }
195
195
 
196
- #filter {
197
- border: none;
198
- text-align: center; }
199
- form#filterForm a {
200
- font-size: larger;
201
- font-weight: bolder; }
202
- form#filterForm input[type='submit'],
203
- div#identity form.setAvatar input[type='submit'],
204
- div#identity form.setAvatar,
205
- div#identity iframe {
206
- display: none; }
207
- div#identity form.setAvatar input[type='file'] { width: 90%; }
196
+ #identity form { display: block; }
197
+ #identity form.setAvatar, #identity #edit, #identity iframe { display: none; }
198
+ #identity:hover form.setAvatar, #identity:hover #edit { display: block; }
199
+ #identity fieldset#edit {
200
+ border: solid thin yellow;
201
+ padding: 0.5em 0;
202
+ margin: 0.5em 0; }
203
+ #identity fieldset#edit label { color: #3b76ae; }
204
+ #identity fieldset#edit legend { color: #333; }
208
205
  img.avatar {
209
206
  float: left;
210
207
  width: auto;
211
208
  max-width: 30%;
212
209
  _max-width: none;
213
210
  margin-right: 1em; }
214
- div#identity img.avatar {
211
+ #identity img.avatar {
215
212
  float: none;
216
213
  margin: 0 auto;
217
214
  display: block;
218
215
  max-width: 90%;
219
216
  _max-width: none;
220
217
  width: expression((offsetWidth > document.body.offsetWidth*0.3) ? "100%" : offsetWidth); }
221
- div#identity:hover form.setAvatar { display: block; }
218
+
219
+ #filter {
220
+ border: none;
221
+ text-align: center; }
222
+ form#filterForm a {
223
+ font-size: larger;
224
+ font-weight: bolder; }
225
+ form#filterForm input[type='submit'] { display: none; }
222
226
 
223
227
  div.listByDate ul, div.listByVote ul {
224
228
  margin: 0 3px;
@@ -435,7 +439,9 @@ li.pager {
435
439
  | | | | | | (_) / /_____| |_) | (_) | | | (_| | __/ |
436
440
  |_| |_| |_|\___/___| |_.__/ \___/|_| \__,_|\___|_| */
437
441
  body { -moz-border-radius: 1em 0 1em 1em; }
438
- input, textarea, input[type='button'], input[type='submit'], blockquote {
442
+ input, textarea {
443
+ -moz-border-radius: 1em 0 0 1em; }
444
+ input[type='button'], input[type='submit'], blockquote {
439
445
  -moz-border-radius: 0 1em 1em 0; }
440
446
  .links { -moz-border-radius: 1em 1em 0 0; }
441
447
  .box, .sidebar, .choices { -moz-border-radius: 0 0 1em 1em; }
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class ChoiceTest < Test::Unit::TestCase
4
- #fixtures :people, :users, :elts, :mails, :attachments, :subscribers, :choices
4
+ #fixtures :people, :users, :elts, :mails, :attachments, :subscriptions, :choices
5
5
 
6
6
  # Replace this with your real tests.
7
7
  def test_truth
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class EltTest < Test::Unit::TestCase
4
- fixtures :people, :users, :elts, :mails, :attachments, :subscribers
4
+ fixtures :people, :users, :elts, :mails, :attachments, :subscriptions
5
5
 
6
6
  def setup
7
7
  @elt = Elt.find(1)
@@ -2,16 +2,16 @@ require File.dirname(__FILE__) + '/../test_helper'
2
2
  require 'mail_notify'
3
3
 
4
4
  class MailNotifyTest < Test::Unit::TestCase
5
- fixtures :elts, :mails, :attachments, :people, :users, :subscribers
5
+ fixtures :elts, :mails, :attachments, :people, :users, :subscriptions
6
6
 
7
- def setup
8
- ActionMailer::Base.delivery_method = :test
9
- ActionMailer::Base.perform_deliveries = true
10
- ActionMailer::Base.deliveries = []
7
+ def setup
8
+ ActionMailer::Base.delivery_method = :test
9
+ ActionMailer::Base.perform_deliveries = true
10
+ ActionMailer::Base.deliveries = []
11
11
 
12
- @expected = TMail::Mail.new
13
- @expected.set_content_type "text", "plain", { "charset" => CHARSET }
14
- end
12
+ @expected = TMail::Mail.new
13
+ @expected.set_content_type "text", "plain", { "charset" => CHARSET }
14
+ end
15
15
 
16
16
  def test_deliver_mail
17
17
  ActionMailer::Base.deliveries = []
@@ -37,5 +37,21 @@ class MailNotifyTest < Test::Unit::TestCase
37
37
  assert_equal "mail@leparlement.org", ActionMailer::Base.deliveries[0].to[0]
38
38
  #puts ActionMailer::Base.deliveries[0].to
39
39
  end
40
+
41
+ def test_deliver_accents
42
+ ActionMailer::Base.deliveries = []
43
+
44
+ assert_equal 0, ActionMailer::Base.deliveries.size
45
+
46
+ elt = Elt.find('mailList')
47
+ #elt.id = "Légèreté"
48
+ elt.save
49
+ elt.publish
50
+
51
+ assert_equal 1, ActionMailer::Base.deliveries.size
52
+ assert_equal "mail@leparlement.org", ActionMailer::Base.deliveries[0].to[0]
53
+ #puts ActionMailer::Base.deliveries[0].to
54
+ #puts elt.id
55
+ end
40
56
  end
41
57
 
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class MailTest < Test::Unit::TestCase
4
- fixtures :people, :users, :elts, :mails, :attachments, :subscribers
4
+ fixtures :people, :users, :elts, :mails, :attachments, :subscriptions
5
5
 
6
6
  def setup
7
7
  @mail = Mail.find(1)
@@ -93,7 +93,7 @@ class MailTest < Test::Unit::TestCase
93
93
  end
94
94
 
95
95
  # Not used, just make sure mails are entered chronologically
96
- def est_receiveChildThenParent
96
+ def test_receiveChildThenParent
97
97
  ActionMailer::Base.deliveries = []
98
98
 
99
99
  mailFile = TMail::Mail.parse(read_fixture('mail_rubyChild').to_s)
@@ -109,7 +109,7 @@ class MailTest < Test::Unit::TestCase
109
109
  assert_equal (mailsCount + 1), Mail.count
110
110
  assert_equal (eltsCount + 1), Elt.count
111
111
 
112
- assert_equal eltParent.id, elt.parent_id
112
+ assert_equal "mailingList", elt.parent_id
113
113
  end
114
114
 
115
115
  def test_re_receive
@@ -169,15 +169,31 @@ class MailTest < Test::Unit::TestCase
169
169
  mailFile = TMail::Mail.parse(read_fixture('mail_ruby').to_s)
170
170
  elt = Mail.receive(mailFile).elt
171
171
 
172
- #print mailFile.to_yaml
173
- #puts
172
+ #puts mailFile.to_yaml
174
173
  #puts mailFile.type_param('charset')
175
-
176
174
  #puts elt.body
177
175
 
178
176
  assert elt.body =~ /même/
179
177
  end
180
178
 
179
+ def test_receive_utf8
180
+ ActionMailer::Base.deliveries = []
181
+
182
+ mailsCount = Mail.count
183
+ eltsCount = Elt.count
184
+ deliveredMailsCount = ActionMailer::Base.deliveries.size
185
+
186
+ mailFile = TMail::Mail.parse(read_fixture('utf8').to_s)
187
+ elt = Mail.receive(mailFile).elt
188
+
189
+ #puts mailFile.body
190
+ #puts mailFile.type_param('charset')
191
+ #puts elt.body
192
+
193
+ assert elt.body =~ /dérangeant/
194
+ assert elt.body =~ /…/
195
+ end
196
+
181
197
  def test_receive_accents
182
198
  ActionMailer::Base.deliveries = []
183
199
 
@@ -200,6 +216,28 @@ class MailTest < Test::Unit::TestCase
200
216
  assert elt.body =~ /éêè à ça/
201
217
  end
202
218
 
219
+ def test_receive_accents_2
220
+ ActionMailer::Base.deliveries = []
221
+
222
+ mailsCount = Mail.count
223
+ eltsCount = Elt.count
224
+ deliveredMailsCount = ActionMailer::Base.deliveries.size
225
+
226
+
227
+ mailFile = TMail::Mail.parse(read_fixture('accents_2').to_s)
228
+ elt = Mail.receive(mailFile).elt
229
+
230
+ #print mailFile.to_yaml
231
+ #puts
232
+ #puts mailFile.type_param('charset')
233
+
234
+ #puts elt.subject
235
+ #puts elt.body
236
+
237
+ assert elt.subject =~ /Contrôle des criminels/
238
+ assert elt.body =~ /peut-être/
239
+ end
240
+
203
241
  def test_receive_no_choice
204
242
  ActionMailer::Base.deliveries = []
205
243
 
@@ -256,5 +294,22 @@ class MailTest < Test::Unit::TestCase
256
294
  assert_equal "image/jpeg", elt.attachments.first.content_type
257
295
  assert_equal 2, ActionMailer::Base.deliveries.last.parts.size
258
296
  end
297
+
298
+ def test_send_and_record_mails
299
+ #puts "test_send_and_record_mails"
300
+ ActionMailer::Base.deliveries = []
301
+ deliveredMailsCount = ActionMailer::Base.deliveries.size
302
+ mail = TMail::Mail.parse(read_fixture('avatar').to_s)
303
+ elt = Mail.receive(mail).elt
304
+ # people and avatar mail!
305
+ #puts "--------------------------"
306
+ assert_equal deliveredMailsCount + 2, ActionMailer::Base.deliveries.size
307
+
308
+ # TODO make sure the pseudo parent has a vote "result"!!!
309
+ assert_equal elt.all_recipients.size, PersonMail.count
310
+ # Again, to check there is no second sending
311
+ elt.publish
312
+ assert_equal elt.all_recipients.size, PersonMail.count
313
+ end
259
314
  end
260
315
 
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/../test_helper'
2
- require 'notifier'
2
+ require 'person_notify'
3
3
 
4
- class NotifierTest < Test::Unit::TestCase
4
+ class PersonNotifyTest < Test::Unit::TestCase
5
5
  def setup
6
6
  ActionMailer::Base.delivery_method = :test
7
7
  ActionMailer::Base.perform_deliveries = true
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class PersonTest < Test::Unit::TestCase
4
4
  #fixtures :people, LoginEngine.config(:user_table).to_sym
5
- fixtures :people, :users, :elts, :mails, :attachments, :subscribers
5
+ fixtures :people, :users, :elts, :mails, :attachments, :subscriptions
6
6
 
7
7
  def setup
8
8
  @person = Person.find(:first)
@@ -1,42 +1,42 @@
1
1
  require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class SubscriberTest < Test::Unit::TestCase
4
- fixtures :people, :users, :elts, :mails, :attachments, :subscribers
4
+ fixtures :people, :users, :elts, :mails, :attachments, :subscriptions
5
5
 
6
- def setup
6
+ def setup
7
7
  @elt = Elt.find('mail')
8
8
  @person = Person.find('first')
9
- end
9
+ end
10
10
 
11
- def test_add_subscriber
11
+ def test_add_subscriber
12
12
  num = @elt.subscribers.size
13
13
  @elt.subscribers << Person.find('bob')
14
14
  assert_equal (num + 1), @elt.subscribers.size
15
- end
15
+ end
16
16
 
17
- def test_delete_subscriber
17
+ def test_delete_subscriber
18
18
  num = @elt.subscribers.size
19
19
  @elt.subscribers.delete(@person)
20
20
  assert_equal (num - 1), @elt.subscribers.size
21
- end
21
+ end
22
22
 
23
23
  def test_add_subscribed_elt
24
24
  num = @person.subscribed_elts.size
25
25
  @person.subscribed_elts << Elt.find('0')
26
26
  assert_equal (num + 1), @person.subscribed_elts.size
27
- end
27
+ end
28
28
 
29
- def test_delete_subscribed_elt
29
+ def test_delete_subscribed_elt
30
30
  num = @person.subscribed_elts.size
31
31
  @person.subscribed_elts.delete(@elt)
32
32
  assert_equal (num - 1), @person.subscribed_elts.size
33
- end
33
+ end
34
34
 
35
- def test_all_recipients
35
+ def test_all_recipients
36
36
  num = @elt.all_recipients.size
37
37
  @elt.subscribers << Person.find('bob')
38
38
  @elt.parent.subscribers << Person.find('bob2')
39
39
  assert_equal (num + 2), @elt.all_recipients.size
40
- end
40
+ end
41
41
  end
42
42
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: parlement
5
5
  version: !ruby/object:Gem::Version
6
- version: "0.9"
7
- date: 2006-10-10 00:00:00 +02:00
6
+ version: "0.10"
7
+ date: 2006-12-17 00:00:00 +01:00
8
8
  summary: Trusted Direct Democracy on a forum
9
9
  require_paths:
10
10
  - lib
@@ -12,7 +12,7 @@ email: emmanuel.charpentier@free.fr
12
12
  homepage: http://leparlement.org
13
13
  rubyforge_project: parlement
14
14
  description: "This is a forum and mailing list project, which aims to be a complete Direct Democracy implementation where everybody can propose polls, vote on them, or delegate their voice to someone else. Trust through: - cluster - PGP signatures - electoral lists"
15
- autorequire: rails redcloth
15
+ autorequire: rails redcloth term-ansicolor
16
16
  default_executable:
17
17
  bindir: bin
18
18
  has_rdoc: false
@@ -32,6 +32,7 @@ files:
32
32
  - COPYING
33
33
  - Rakefile
34
34
  - README
35
+ - MEMORY
35
36
  - app/apis
36
37
  - app/controllers
37
38
  - app/helpers
@@ -49,7 +50,6 @@ files:
49
50
  - app/helpers/mailman.rb
50
51
  - app/helpers/account_helper.rb
51
52
  - app/helpers/subscriber_helper.rb
52
- - app/models/notifier.rb
53
53
  - app/models/user.rb
54
54
  - app/models/person.rb
55
55
  - app/models/mail.rb
@@ -57,14 +57,17 @@ files:
57
57
  - app/models/choice.rb
58
58
  - app/models/mail_notify.rb
59
59
  - app/models/user_notify.rb
60
+ - app/models/person_notify.rb
61
+ - app/models/person_mail.rb
62
+ - app/models/subscription.rb
60
63
  - app/views/layouts
61
64
  - app/views/elt
62
65
  - app/views/account
63
- - app/views/notifier
64
66
  - app/views/person
65
67
  - app/views/_help.rhtml
66
68
  - app/views/subscriber
67
69
  - app/views/mail_notify
70
+ - app/views/person_notify
68
71
  - app/views/layouts/top.rhtml
69
72
  - app/views/layouts/scaffold.rhtml
70
73
  - app/views/elt/_elt.rhtml
@@ -84,11 +87,12 @@ files:
84
87
  - app/views/account/logout.rhtml
85
88
  - app/views/account/signup.rhtml
86
89
  - app/views/account/_show.rhtml
87
- - app/views/notifier/changeEmail.rhtml
88
90
  - app/views/person/show.rhtml
89
91
  - app/views/person/_listElts.rhtml
92
+ - app/views/subscriber/_list.rhtml
90
93
  - app/views/mail_notify/publish.text.html.rhtml
91
94
  - app/views/mail_notify/publish.text.plain.rhtml
95
+ - app/views/person_notify/setEmail.rhtml
92
96
  - config/environments
93
97
  - config/database.yml
94
98
  - config/routes.rb
@@ -107,6 +111,7 @@ files:
107
111
  - db/migrate/002_nested_set.rb
108
112
  - db/migrate/003_elt_children_count.rb
109
113
  - db/migrate/004_people_image.rb
114
+ - db/migrate/005_filter_mail.rb
110
115
  - db/ROOT/perso
111
116
  - db/ROOT/parlement.txt
112
117
  - db/ROOT/perso.txt
@@ -116,21 +121,21 @@ files:
116
121
  - db/ROOT/mail.txt
117
122
  - db/ROOT/parlement/security.txt
118
123
  - db/ROOT/parlement/test.txt
119
- - db/ROOT/parlement/security
120
- - db/ROOT/parlement/news
124
+ - db/ROOT/parlement/News
121
125
  - db/ROOT/parlement/news.txt
122
126
  - db/ROOT/parlement/top-politics.txt
123
127
  - db/ROOT/parlement/ddRing.txt
128
+ - db/ROOT/parlement/Security
124
129
  - db/ROOT/parlement/our-constitution.txt
125
- - db/ROOT/parlement/security/anonymity.txt
126
- - db/ROOT/parlement/news/Version_03.txt
127
- - db/ROOT/parlement/news/Version_04.txt
128
- - db/ROOT/parlement/news/Version_05.txt
129
- - db/ROOT/parlement/news/Version_07.txt
130
- - db/ROOT/parlement/news/Version_06.txt
131
- - db/ROOT/parlement/news/Version_01.txt
132
- - db/ROOT/parlement/news/Version_08.txt
133
- - db/ROOT/parlement/news/Version_02.txt
130
+ - db/ROOT/parlement/News/Version_03.txt
131
+ - db/ROOT/parlement/News/Version_04.txt
132
+ - db/ROOT/parlement/News/Version_05.txt
133
+ - db/ROOT/parlement/News/Version_07.txt
134
+ - db/ROOT/parlement/News/Version_06.txt
135
+ - db/ROOT/parlement/News/Version_01.txt
136
+ - db/ROOT/parlement/News/Version_08.txt
137
+ - db/ROOT/parlement/News/Version_02.txt
138
+ - db/ROOT/parlement/Security/anonymity.txt
134
139
  - lib/localization.rb
135
140
  - lib/tasks
136
141
  - lib/data_import.rb
@@ -157,7 +162,6 @@ files:
157
162
  - public/images/Sleep-Deprivation-5.JPG
158
163
  - public/images/indicator.gif
159
164
  - public/images/smile.png
160
- - public/images/comments.gif
161
165
  - public/images/eltBackground.svg
162
166
  - public/images/world.png
163
167
  - public/images/world.svg
@@ -372,12 +376,12 @@ files:
372
376
  test_files:
373
377
  - test/unit/mail_test.rb
374
378
  - test/unit/elt_test.rb
375
- - test/unit/notifier_test.rb
376
379
  - test/unit/person_test.rb
377
380
  - test/unit/attachment_test.rb
378
381
  - test/unit/mail_notify_test.rb
379
382
  - test/unit/subscriber_test.rb
380
383
  - test/unit/choice_test.rb
384
+ - test/unit/person_notify_test.rb
381
385
  rdoc_options: []
382
386
 
383
387
  extra_rdoc_files: []
@@ -390,7 +394,7 @@ requirements:
390
394
  - none
391
395
  dependencies:
392
396
  - !ruby/object:Gem::Dependency
393
- name: rails
397
+ name: rails redcloth term-ansicolor
394
398
  version_requirement:
395
399
  version_requirements: !ruby/object:Gem::Version::Requirement
396
400
  requirements:
@@ -1,13 +0,0 @@
1
- class Notifier < ActionMailer::Base
2
- def changeEmail(person, link)
3
- # Email header info MUST be added here
4
- @recipients = person.email
5
- @subject = "[parleR] check key: "+person.check_key
6
- @from = MAIL_FROM
7
-
8
- # Email body substitutions go here
9
- @body["name"] = person.name
10
- @body["link"] = link
11
- @body["check_key"] = person.check_key
12
- end
13
- end