5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2025-02-24 20:01:47 +00:00

Merge branch 'recuperar-partials' into panel.sutty.nl

This commit is contained in:
f 2022-03-07 12:26:51 -03:00
commit 1a4a56983b
4 changed files with 66 additions and 39 deletions

View file

@ -29,7 +29,11 @@ class Post
# TODO: Reemplazar cuando leamos el contenido del Document
# a demanda?
def find_layout(path)
IO.foreach(path).lazy.grep(/^layout: /).take(1).first&.split(' ')&.last&.tr('\'', '')&.tr('"', '')&.to_sym
IO.foreach(path).lazy.grep(/^layout: /).take(1).first&.split(' ')&.last&.tr('\'', '')&.tr('"', '')&.to_sym || :post
rescue Errno::ENOENT => e
ExceptionNotifier.notify(e)
:post
end
end
@ -113,7 +117,7 @@ class Post
# Devuelve una llave para poder guardar el post en una cache
def cache_key
'posts/' + uuid.value
"posts/#{uuid.value}"
end
def cache_version
@ -123,7 +127,7 @@ class Post
# Agregar el timestamp para saber si cambió, siguiendo el módulo
# ActiveRecord::Integration
def cache_key_with_version
cache_key + '-' + cache_version
"#{cache_key}-#{cache_version}"
end
# TODO: Convertir a UUID?

View file

@ -92,6 +92,7 @@
-#
TODO: Solo les usuaries cachean porque tenemos que separar
les botones por permisos.
- begin
- cache_if @usuarie, [post, I18n.locale] do
- checkbox_id = "checkbox-#{post.id}"
%tr{ id: post.id, data: { target: 'reorder.row' } }
@ -126,6 +127,11 @@
= link_to t('posts.edit'), edit_site_post_path(@site, post.path), class: 'btn btn-block'
- if @usuarie || policy(post).destroy?
= link_to t('posts.destroy'), site_post_path(@site, post.path), class: 'btn btn-block', method: :delete, data: { confirm: t('posts.confirm_destroy') }
-#
Rescatar cualquier error en un post, notificarlo e
ignorar su renderización.
- rescue ActionView::Template::Error => e
- ExceptionNotifier.notify_exception(e.cause, data: { site: @site.name, post: @post.path.absolute, usuarie: current_usuarie.id })
#footnotes{ hidden: true }
- @filter_params.each do |param, value|

View file

@ -50,6 +50,15 @@ Rails.application.configure do
config.action_mailer.default_url_options = { host: 'localhost',
port: 3000 }
config.middleware.use ExceptionNotification::Rack,
error_grouping: true,
email: {
email_prefix: '',
sender_address: ENV['DEFAULT_FROM'],
exception_recipients: ENV['EXCEPTION_TO'],
normalize_subject: true
}
# Print deprecation notices to the stderr.
config.active_support.deprecation = :stderr

View file

@ -150,7 +150,7 @@ class PostsControllerTest < ActionDispatch::IntegrationTest
end
posts = @site.posts(**lang)
reorder = Hash[posts.map { |p| p.uuid.value }.shuffle.each_with_index.to_a]
reorder = posts.map { |p| p.uuid.value }.shuffle.each_with_index.to_a.to_h
post site_posts_reorder_url(@site),
headers: @authorization,
@ -159,10 +159,18 @@ class PostsControllerTest < ActionDispatch::IntegrationTest
@site = Site.find @site.id
assert_equal reorder,
Hash[@site.posts(**lang).map do |p|
@site.posts(**lang).map do |p|
[p.uuid.value, p.order.value]
end]
end.to_h
assert_equal I18n.t('post_service.reorder'),
@site.repository.rugged.head.target.message
end
test 'si hay algún error se recupera' do
File.open(File.join(@site.path, '_es', "#{Date.today}-#{SecureRandom.hex}.markdown"), 'w') do |f|
f.write ''
end
get site_posts_url(@site), headers: @authorization
end
end