Commit Graph

35 Commits

Author SHA1 Message Date
Javi Martín
930bb753c5 Use a rake task to delete cached attachments
Our previous system to delete cached attachments didn't work for
documents because the `custom_hash_data` is different for files created
from a file and files created from cached attachments.

When creating a document attachment, the name of the file is taken into
account to calculate the hash. Let's say the original file name is
"logo.pdf", and the generated hash is "123456". The cached attachment
will be "123456.pdf", so the generated hash using the cached attachment
will be something different, like "28af3". So the file that will be
removed will be "28af3.pdf", and not "123456.pdf", which will still be
present.

Furthermore, there are times where users choose a file and then they
close the browser or go to a different page. In those cases, we weren't
deleting the cached attachments either.

So we're adding a rake task to delete these files once a day. This way
we can simplify the logic we were using to destroy cached attachments.

Note there's related a bug in documents: when editing a record (for
example, a proposal), if the title of the document changes, its hash
changes, and so it will be impossible to generate a link to that
document. Changing the way this hash is generated is not an option
because it would break links to existing files. We'll try to fix it when
moving to Active Storage.
2021-07-30 17:30:11 +02:00
Javi Martín
db97f9d08c Add and apply rubocop rules for empty lines
We were very inconsistent regarding these rules.

Personally I prefer no empty lines around blocks, clases, etc... as
recommended by the Ruby style guide [1], and they're the default values
in rubocop, so those are the settings I'm applying.

The exception is the `private` access modifier, since we were leaving
empty lines around it most of the time. That's the default rubocop rule
as well. Personally I don't have a strong preference about this one.


[1] https://rubystyle.guide/#empty-lines-around-bodies
2019-10-24 17:11:47 +02:00
Javi Martín
e252d82cdb Apply IndentationWidth rubocop rule 2019-09-10 20:02:15 +02:00
voodoorai2000
19b7526421 Add document upload from admin section 2019-04-30 11:59:08 +02:00
Julian Herrero
6e88031537 Fix several rubocop warnings
Metrics/LineLength: Line is too long.
RSpec/InstanceVariable: Use let instead of an instance variable.
Layout/TrailingBlankLines: Final newline missing.
Style/StringLiterals: Prefer double-quoted strings.
2019-04-17 17:40:56 +02:00
Angel Perez
01c1ac2b10 Replace all occurrences of ActiveRecord::Base with ApplicationRecord 2019-04-17 17:40:56 +02:00
rgarcia
b2b418284d Fix ActiveModel::Errors#[]= deprecation warning
DEPRECATION WARNING: ActiveModel::Errors#[]= is deprecated and will be
removed in Rails 5.1. Use model.errors.add(:attachment, "content type
image/png does not match any of accepted content types pdf") instead.
(called from validate_attachment_content_type at
/home/travis/build/consul/consul/app/models/document.rb:92)
2019-04-17 17:40:55 +02:00
Bertocq
b990384b0a Fix multiple attachment upload by setting the id, style and updated at date on hash 2018-01-03 17:38:44 +01:00
Manuel Ortega
2fef9c14d0 Moving humanized_content_type from DocumentablesHelper to Document model. Removing humanized_file_size in favor of direct use of number_to_human_size form ActionViewHelper. Added additional documentens to all concerned views 2017-10-18 22:21:01 +02:00
Bertocq
ce0a7f6fad Rubocop autocorrections 2017-10-17 22:00:00 +02:00
Senén Rodero Rodríguez
e58feb7d6d Fix for remote filesytem paperclip configuration. 2017-09-26 13:57:14 +02:00
Senén Rodero Rodríguez
eb8ab83ac9 Remove cached files after complete uploads. 2017-09-26 13:57:13 +02:00
Senén Rodero Rodríguez
c22637c349 Move method 'recover_documents_from_cache' from documentable controllers to document. 2017-09-26 13:57:13 +02:00
Senén Rodero Rodríguez
fe7b0edb38 Adjust filename obfuscation to be able to remove cached uploads 2017-09-26 13:56:06 +02:00
Senén Rodero Rodríguez
661bdda41f Stronger direct upload model specs 2017-09-26 13:56:06 +02:00
Senén Rodero Rodríguez
baf9ce90a9 Obfuscate documentable and imageable file names. 2017-09-26 13:56:06 +02:00
Senén Rodero Rodríguez
824dd26d5a User new direct uploads controllers action on documentable. Skipped spec. 2017-09-26 13:55:51 +02:00
Senén Rodero Rodríguez
c6dabedb4a Add missing image model spec. Add shared specs to check image validations at any imageable model 2017-09-26 13:55:03 +02:00
Senén Rodero Rodríguez
6f71da07ee Duplicate documentable code and rename for imageable 2017-09-26 13:55:03 +02:00
Bertocq
e4e78c8f16 Rubocop autocorrections 2017-09-14 15:08:35 +02:00
Senén Rodero Rodríguez
c3277d53c8 Change direct uploads path 2017-09-01 13:07:13 +02:00
Senén Rodero Rodríguez
5581445fff Use different path to store ajax uploaded cached attachments 2017-08-31 12:37:41 +02:00
Senén Rodero Rodríguez
6d66077a94 Make documentable capable to work with local or remote storage system. 2017-08-30 17:07:52 +02:00
Senén Rodero Rodríguez
57930df535 Remove unused code 2017-08-25 19:14:15 +02:00
Senén Rodero Rodríguez
f4ac8b17d0 Store AJAX uploaded documents with timestamp prefix to avoid file name collision. Remove cached_attachments after document save. 2017-08-25 18:34:54 +02:00
Senén Rodero Rodríguez
8e91bbe5b5 Fix document validations specs 2017-08-25 18:34:53 +02:00
Senén Rodero Rodríguez
cc89907bff Add nested documents to proposal form. 2017-08-25 18:34:52 +02:00
Senén Rodero Rodríguez
e9c5f77368 Accept nested attributes for documents on proposals. Adapt documentable js file to allow many input files at the same page. 2017-08-25 18:34:51 +02:00
Senén Rodero Rodríguez
e327b420ff Ajax file upload to tmp dir. Add cached_attachment to document. Recover image from cache. Add progress bar. 2017-08-25 18:34:51 +02:00
Senén Rodero Rodríguez
92e8468e89 Use documentables helper method within specs and document model. 2017-08-25 18:34:50 +02:00
Senén Rodero Rodríguez
17ad148cd7 Fix i18n translations warnings. 2017-08-25 18:34:50 +02:00
Senén Rodero Rodríguez
3a7c9d9f83 Add documentables helper 2017-08-25 18:34:49 +02:00
Senén Rodero Rodríguez
38d4d59241 Add arguments to documentable concern to make it configurable for any recipient model. 2017-08-25 17:27:37 +02:00
Senén Rodero Rodríguez
34d06dad04 Add document model validations and model shared specs. 2017-08-25 17:27:37 +02:00
Senén Rodero Rodríguez
a141c82e33 Create new polymorphic model Document. 2017-08-25 17:27:37 +02:00