diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-02-10 21:07:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-10 21:07:48 +0100 |
commit | 776e337b8d2aa66440bc4565617b5440ca781e1a (patch) | |
tree | d9d30c63622c58a343cea58a3509337630491609 /app/models | |
parent | d602c92b310545eb733a58caed49717341abe27c (diff) | |
parent | 642b5a621acdcae091f8bdb0f367018309616f71 (diff) |
Merge pull request #1683 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/media_attachment.rb | 4 | ||||
-rw-r--r-- | app/models/poll.rb | 6 | ||||
-rw-r--r-- | app/models/report.rb | 9 | ||||
-rw-r--r-- | app/models/status.rb | 11 |
4 files changed, 30 insertions, 0 deletions
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index 14e6cabae..9eaacdc03 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -208,6 +208,10 @@ class MediaAttachment < ApplicationRecord file.blank? && remote_url.present? end + def significantly_changed? + description_previously_changed? || thumbnail_updated_at_previously_changed? || file_meta_previously_changed? + end + def larger_media_format? video? || gifv? || audio? end diff --git a/app/models/poll.rb b/app/models/poll.rb index 71b5e191f..ba08309a1 100644 --- a/app/models/poll.rb +++ b/app/models/poll.rb @@ -83,6 +83,12 @@ class Poll < ApplicationRecord end end + def reset_votes! + self.cached_tallies = options.map { 0 } + self.votes_count = 0 + votes.delete_all unless new_record? + end + private def prepare_cached_tallies diff --git a/app/models/report.rb b/app/models/report.rb index ceb15133b..3dd8a6fdd 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -39,6 +39,9 @@ class Report < ApplicationRecord scope :with_accounts, -> { includes([:account, :target_account, :action_taken_by_account, :assigned_account].index_with({ user: [:invite_request, :invite] })) } validates :comment, length: { maximum: 1_000 } + validates :rule_ids, absence: true, unless: :violation? + + validate :validate_rule_ids enum category: { other: 0, @@ -122,4 +125,10 @@ class Report < ApplicationRecord def set_uri self.uri = ActivityPub::TagManager.instance.generate_uri_for(self) if uri.nil? && account.local? end + + def validate_rule_ids + return unless violation? + + errors.add(:rule_ids, I18n.t('reports.errors.invalid_rules')) unless rules.size == rule_ids.size + end end diff --git a/app/models/status.rb b/app/models/status.rb index 9bb2b3746..236f95c1f 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -215,6 +215,17 @@ class Status < ApplicationRecord public_visibility? || unlisted_visibility? end + def snapshot!(media_attachments_changed: false, account_id: nil, at_time: nil) + edits.create!( + text: text, + spoiler_text: spoiler_text, + media_attachments_changed: media_attachments_changed, + account_id: account_id || self.account_id, + content_type: content_type, + created_at: at_time || edited_at + ) + end + def edited? edited_at.present? end |