Commit Graph

56 Commits

Author SHA1 Message Date
defbae4007 FIX: Force string conversions to UTF-8 "bytes" (#11315)
https://meta.discourse.org/t/cant-create-poll-with-some-chinese-options/170836
2020-11-23 17:51:05 +01:00
babbebfb35 FEATURE: Add the title attribute to polls (#10759)
Adds an optional title attribute to polls. The rationale for this addition is that polls themselves didn't contain context/question and relied on post body to explain them. That context wasn't always obvious (e.g. when there are multiple polls in a single post) or available (e.g. when you display the poll breakdown - you see the answers, but not the question)

As a side note, here's a word on how the poll plugin works:

> We have a markdown poll renderer, which we use in the builder UI and the composer preview, but… when you submit a post, raw markdown is cooked into html (twice), then we extract data from the generated html and save it to the database. When it's render time, we first display the cooked html poll, and then extract some data from that html, get the data from the post's JSON (and identify that poll using the extracted html stuff) to then render the poll using widgets and the JSON data.
2020-10-02 09:21:24 +02:00
781e3f5e10 DEV: Use response.parsed_body in specs (#9615)
Most of it was autofixed with rubocop-discourse 2.1.1.
2020-05-07 17:04:12 +02:00
29b35aa64c DEV: Improve flaky time-sensitive specs (#9141) 2020-03-10 22:13:17 +01:00
c62d5b139b FIX: Allow users to create polls in PMs with non human users (#9055) 2020-03-02 14:29:40 -05:00
82b307cd52 FIX: Use correct translation string 2020-02-17 13:49:43 +02:00
5d97286fa7 FEATURE: Allow single option polls (#8853) 2020-02-05 08:03:27 -06:00
07222af7ab FEATURE: Add 'groups' option to polls (#8469)
This options can be used to restrict polls to certain groups.
2020-01-28 14:30:04 +02:00
aeb7143aff DEV: correct flaky poll specs
They were relying on a pristine message bus, however current implementation
still uses redis, stuff can get held up and we can end up publishing
distributed cache messages in the middle invalidating the tests
2019-05-17 16:16:02 +10:00
9059a8ca90 Fix the build. 2019-05-13 10:16:26 +08:00
30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
b5e32cfe2a DEV: correct spec to test for correct fidelity
This is due to 9ebabc1d
2019-03-28 17:45:36 +11:00
71ce9ced47 FIX: Incorrect arguments were being passed to Jobs::ClosePoll.
Also fix spec that wasn't testing anything.
2018-12-13 16:46:00 +08:00
dcf9c6da59 DEV: Don't publish post messages to non-human users. 2018-12-06 08:24:13 +08:00
aea2d8bbeb FIX: properly secure poll message bus
Co-authored-by: Sam <sam.saffron@gmail.com>
2018-12-05 21:27:49 +01:00
4459665dee REFACTOR: use tables instead of custom fields for polls (#6359)
Co-authored-by: Guo Xiang Tan <tgx_world@hotmail.com>
2018-11-19 14:50:00 +01:00
a4aa4a9be4 DEV: Remove the use of mocks in our tests. 2018-10-15 10:38:02 +08:00
Sam
eacb2593ee workaround badly denormalized data in polls 2018-08-17 11:15:29 +10:00
3a8f69c3d2 DEV: Assert for 200 response code to avoid changing magic helper in the future. 2018-06-07 16:11:09 +08:00
Sam
e806e6e96f correct specs 2018-06-07 16:13:15 +10:00
94163d7f1a add spec for auto-close polls 2018-05-07 11:31:20 +02:00
dee35b72f2 FIX: must be able to post in a topic in order to vote on a poll 2018-02-27 00:19:44 +01:00
316d814130 FIX: staff should always be allowed to create polls if they are enabled 2017-12-05 00:03:56 +01:00
76bc173d47 FEATURE: adds poll_allow_staff_to_create
This setting will bypass poll_minimum_trust_level_to_create if set to true
2017-12-04 18:12:17 +01:00
63bab32816 FEATURE: introduces minimum trust level for polls (#5391)
* FEATURE: introduces minimum trust level for polls

This commit makes `poll_enabled` less misleading and introduces `poll_minimum_trust_level_to_create`. If poll are enabled they will always be cooked, and if you have the required trust level you can create polls. As a side effect, it also fixes a bug where rebaking a post created by staff member when `poll_enabled=false` would end up not cooking it.

It also adds more tests to ensure settings are respected.

* admins should be whitelisted

* checks for admin in post validation

* test for >= instead of == trust level
2017-12-04 14:47:11 +01:00
77d4c4d8dc Fix all the errors to get our tests green on Rails 5.1. 2017-09-25 13:48:58 +08:00
Sam
43c0111ca1 FIX: multichoice poll with more than 25 votes
In the past we would double up on avatars due to incorrect logic for
handling offset
2017-08-14 15:33:59 -04:00
5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
045a2abcec FEATURE: remove the timecop gem
We should only have one way of mocking time, misuse of timecop
was causing build stability issues
2017-07-24 12:11:10 -04:00
Sam
b7f58fe880 regression polls could not be closed properly 2017-07-18 14:52:58 -04:00
Sam
93e5112dfa correct poll specs 2017-07-18 14:31:22 -04:00
8213da20f2 Extract polls edit window to a site settings. 2016-08-10 15:17:16 +08:00
ffbfcd7ee2 Fix build. 2016-07-29 14:47:23 +08:00
a36203ff78 PERF: Paginate public polls. 2016-06-12 16:14:53 +08:00
8ecde35df3 FEATURE: Add public type to polls. 2016-06-08 16:19:13 +08:00
f1bc7de541 Adds support for anonymous votes to the poll plugin 2016-04-23 22:44:09 +02:00
b575f97ece FIX: allows polls on closed topics 2016-03-21 12:12:25 +01:00
3e50313fdc Prepare for separation of RSpec helper files
Since rspec-rails 3, the default installation creates two helper files:
* `spec_helper.rb`
* `rails_helper.rb`

`spec_helper.rb` is intended as a way of running specs that do not
require Rails, whereas `rails_helper.rb` loads Rails (as Discourse's
current `spec_helper.rb` does).

For more information:

https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files

In this commit, I've simply replaced all instances of `spec_helper` with
`rails_helper`, and renamed the original `spec_helper.rb`.

This brings the Discourse project closer to the standard usage of RSpec
in a Rails app.

At present, every spec relies on loading Rails, but there are likely
many that don't need to. In a future pull request, I hope to introduce a
separate, minimal `spec_helper.rb` which can be used in tests which
don't rely on Rails.
2015-12-01 20:39:42 +00:00
bb52042b46 FIX: Add missing pluralization keys to poll plugin locale 2015-09-27 21:36:57 +02:00
2e76c9165a FIX: polls are always editable until the first vote 2015-09-25 18:54:15 +02:00
60bbd81607 FIX: polls with votes were preventing users from updating the post 2015-09-14 19:27:54 +02:00
Sam
d16de4a0a1 correct polls spec 2015-08-05 12:39:38 +10:00
c240a8bd80 FIX: make sure we can't vote on deleted polls 2015-06-01 22:31:47 +02:00
f736b6face FIX: validate poll parameters when type=multiple 2015-06-01 19:28:05 +02:00
7c545537a6 FIX: prevent pollception 2015-05-13 23:12:53 +02:00
b8005f0b1b FIX: link starting with '[poll' should not break polls 2015-05-13 17:50:25 +02:00
3a9907f392 FIX: prevent self-xss in poll attributes 2015-05-11 20:09:17 +02:00
c1bb7bc7cc clarify copy when editing a poll after the first 5 minutes 2015-05-07 17:24:35 +02:00
9b0ca60f52 FIX: support quotes for poll parameters 2015-05-07 16:40:14 +02:00
033761d2f6 FIX: reset all votes when the # of options changes 2015-05-06 18:52:09 +02:00