refinerycms-testimonials 0.0.9
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.
- data/app/controllers/admin/testimonials_controller.rb +5 -0
- data/app/controllers/testimonials_controller.rb +16 -0
- data/app/helpers/testimonials_helper.rb +37 -0
- data/app/models/testimonial.rb +16 -0
- data/app/views/admin/testimonials/_form.html.erb +35 -0
- data/app/views/admin/testimonials/_sortable_list.html.erb +2 -0
- data/app/views/admin/testimonials/_testimonial.html.erb +20 -0
- data/app/views/admin/testimonials/_testimonials.html.erb +2 -0
- data/app/views/admin/testimonials/edit.html.erb +1 -0
- data/app/views/admin/testimonials/index.html.erb +54 -0
- data/app/views/admin/testimonials/new.html.erb +1 -0
- data/app/views/testimonials/_testimonial.html.erb +6 -0
- data/app/views/testimonials/index.html.erb +19 -0
- data/app/views/testimonials/show.html.erb +27 -0
- data/config/locales/en.yml +24 -0
- data/config/locales/lolcat.yml +24 -0
- data/config/locales/nb.yml +20 -0
- data/config/locales/nl.yml +20 -0
- data/config/routes.rb +11 -0
- data/lib/generators/refinerycms_testimonials_generator.rb +6 -0
- data/lib/refinerycms-testimonials.rb +19 -0
- data/lib/tasks/testimonials.rake +13 -0
- metadata +85 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
class TestimonialsController < ApplicationController
|
|
2
|
+
|
|
3
|
+
before_filter :find_page
|
|
4
|
+
|
|
5
|
+
def index
|
|
6
|
+
@testimonials = Testimonial.paginate(:all, :order => "position ASC", :page => params[:page], :per_page => RefinerySetting.find_or_set(:testimonials_per_page, 10))
|
|
7
|
+
present(@page)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
protected
|
|
11
|
+
|
|
12
|
+
def find_page
|
|
13
|
+
@page = Page.find_by_link_url("/testimonials")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module TestimonialsHelper
|
|
2
|
+
|
|
3
|
+
# Helper method to be included in the page layout
|
|
4
|
+
def display_page_testimonial_if_setup
|
|
5
|
+
if @page.show_a_testimonial? && (random_testimonial = Testimonial.random)
|
|
6
|
+
content_for :head, stylesheet_link_tag('testimonials')
|
|
7
|
+
render :partial => '/testimonials/testimonial', :locals => {:testimonial => random_testimonial}
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Based on the fields filled in by the user display the
|
|
12
|
+
# citation in our desired format:
|
|
13
|
+
#
|
|
14
|
+
# Name: JobTitle, Company/Website (Company is a link to website if possible)
|
|
15
|
+
def citation_line(t)
|
|
16
|
+
[
|
|
17
|
+
content_tag(:b, h(t.name)),
|
|
18
|
+
h(t.job_title),
|
|
19
|
+
website_or_company(t)
|
|
20
|
+
].reject(&:blank?).join(", ").sub(/,\s/, ": ")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Method to setup the end of the citation line
|
|
24
|
+
# Returns:
|
|
25
|
+
#
|
|
26
|
+
# The company name as a link is both are set
|
|
27
|
+
# The company name with a link
|
|
28
|
+
# Or
|
|
29
|
+
# Just a link if the name isn't set
|
|
30
|
+
def website_or_company(t)
|
|
31
|
+
if t.website.blank?
|
|
32
|
+
h(t.company)
|
|
33
|
+
else
|
|
34
|
+
content_tag(:a, h(t.company.blank? ? t.website : t.company), :href => h(t.website))
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
class Testimonial < ActiveRecord::Base
|
|
2
|
+
|
|
3
|
+
acts_as_indexed :fields => [:quote, :name, :company, :job_title, :website],
|
|
4
|
+
:index_file => [Rails.root.to_s,"tmp","index"]
|
|
5
|
+
|
|
6
|
+
validates_presence_of :quote
|
|
7
|
+
validates_presence_of :name
|
|
8
|
+
|
|
9
|
+
def flash_name
|
|
10
|
+
"Quote by #{self.name}"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.random
|
|
14
|
+
self.find :first, :offset => ( Testimonial.count * rand ).to_i
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<%= error_messages_for :testimonial -%>
|
|
2
|
+
<% form_for [:admin, @testimonial] do |f| -%>
|
|
3
|
+
|
|
4
|
+
<div class='field'>
|
|
5
|
+
<%= f.label :quote, "Quote <em>*</em>" -%>
|
|
6
|
+
<%= f.text_area :quote, :rows => 5, :cols => 140 -%>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class='field'>
|
|
10
|
+
<%= f.label :name, "Name <em>*</em>" -%>
|
|
11
|
+
<%= f.text_field :name -%>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class='field'>
|
|
15
|
+
<%= f.label :company -%>
|
|
16
|
+
<%= f.text_field :company -%>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class='field'>
|
|
20
|
+
<%= f.label :job_title -%>
|
|
21
|
+
<%= f.text_field :job_title -%>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<div class='field'>
|
|
25
|
+
<%= f.label :website -%>
|
|
26
|
+
<%= f.text_field :website -%>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div class='field'>
|
|
30
|
+
<%= f.label :quoted_on -%>
|
|
31
|
+
<%= f.date_select :quoted_on, :order => [:day, :month, :year] -%>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<%= render :partial => "/shared/admin/form_actions", :locals => {:f => f, :continue_editing => false} %>
|
|
35
|
+
<% end -%>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(testimonial) -%>">
|
|
2
|
+
<span class='title'>
|
|
3
|
+
<span class='actions'>
|
|
4
|
+
<%= link_to refinery_icon_tag("eye.png"), '#',
|
|
5
|
+
:title => 'Toggle the display of this quote',
|
|
6
|
+
:style => 'display:none;',
|
|
7
|
+
:class => 'toggle_quote' %>
|
|
8
|
+
<%= link_to refinery_icon_tag("application_edit.png"), edit_admin_testimonial_path(testimonial),
|
|
9
|
+
:title => 'Edit this testimonial' %>
|
|
10
|
+
<%= link_to refinery_icon_tag("delete.png"), admin_testimonial_path(testimonial),
|
|
11
|
+
:confirm => 'Are you sure you want to remove this testimonial forever?',
|
|
12
|
+
:class => "cancel", :method => :delete,
|
|
13
|
+
:title => 'Remove this testimonial forever' %>
|
|
14
|
+
</span>
|
|
15
|
+
|
|
16
|
+
<%= [content_tag(:b, h(testimonial.name)), h(testimonial.job_title), h(testimonial.company)].reject(&:blank?).join(", ") %>
|
|
17
|
+
<span class="preview"> </span>
|
|
18
|
+
<p style="display:none;"><%= h(testimonial.quote) %></p>
|
|
19
|
+
</span>
|
|
20
|
+
</li>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= render :partial => "form" %>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<% content_for :head do %>
|
|
2
|
+
<script type="text/javascript">
|
|
3
|
+
$(document).ready(function(){
|
|
4
|
+
$('.toggle_quote').show().click(function(){
|
|
5
|
+
$(this).parent().parent().find('p:last').toggle();
|
|
6
|
+
return false;
|
|
7
|
+
});
|
|
8
|
+
});
|
|
9
|
+
</script>
|
|
10
|
+
<% end %>
|
|
11
|
+
|
|
12
|
+
<div id='actions'>
|
|
13
|
+
<ul>
|
|
14
|
+
<li>
|
|
15
|
+
<%= render :partial => "/shared/admin/search", :locals => {:url => admin_testimonials_url} %>
|
|
16
|
+
</li>
|
|
17
|
+
<li>
|
|
18
|
+
<%= link_to "Create New Testimonial", new_admin_testimonial_url, :class => "add_icon" %>
|
|
19
|
+
</li>
|
|
20
|
+
<% if !searching? and Testimonial.count > 1 %>
|
|
21
|
+
<li>
|
|
22
|
+
<%= link_to "Reorder Testimonials", admin_testimonials_url, :id => "reorder_action", :class => "reorder_icon" %>
|
|
23
|
+
<%= link_to "Done Reordering Testimonials", admin_testimonials_url, :id => "reorder_action_done", :style => "display: none;", :class => "reorder_icon" %>
|
|
24
|
+
</li>
|
|
25
|
+
<% end %>
|
|
26
|
+
</ul>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div id='records'>
|
|
30
|
+
<% if searching? %>
|
|
31
|
+
<h2>Search Results for "<%= params[:search] %>"</h2>
|
|
32
|
+
<% if @testimonials.size > 0 %>
|
|
33
|
+
<%= render :partial => "testimonial", :collection => @testimonials %>
|
|
34
|
+
<% else %>
|
|
35
|
+
<p>Sorry, no results found.</p>
|
|
36
|
+
<% end %>
|
|
37
|
+
<% else %>
|
|
38
|
+
<% if @testimonials.size > 0 %>
|
|
39
|
+
<%= will_paginate @testimonials, :previous_label => '«', :next_label => '»' %>
|
|
40
|
+
<ul id='sortable_list'>
|
|
41
|
+
<%= render :partial => "sortable_list" %>
|
|
42
|
+
</ul>
|
|
43
|
+
<%= will_paginate @testimonials, :previous_label => '«', :next_label => '»' %>
|
|
44
|
+
<% else %>
|
|
45
|
+
<p>
|
|
46
|
+
<strong>
|
|
47
|
+
There are no testimonials yet.
|
|
48
|
+
Click "Create New Testimonial" to add your first testimonial.
|
|
49
|
+
</strong>
|
|
50
|
+
</p>
|
|
51
|
+
<% end %>
|
|
52
|
+
<% end %>
|
|
53
|
+
</div>
|
|
54
|
+
<%= render :partial => "/shared/admin/make_sortable", :locals => {:tree => false } if !searching? and Testimonial.count > 1 %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= render :partial => "form" %>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<% content_for :head, stylesheet_link_tag('testimonials') %>
|
|
2
|
+
|
|
3
|
+
<% content_for :body_content_left do %>
|
|
4
|
+
<%= @page[:body] %>
|
|
5
|
+
|
|
6
|
+
<%= will_paginate @testimonials %>
|
|
7
|
+
|
|
8
|
+
<div class="testimonials">
|
|
9
|
+
<%= render :partial => 'testimonial', :collection => @testimonials %>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
<%= will_paginate @testimonials %>
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
<% content_for :body_content_right do %>
|
|
16
|
+
<%= @page[:side_body] %>
|
|
17
|
+
<% end %>
|
|
18
|
+
|
|
19
|
+
<%= render :partial => "/shared/content_page" %>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<% content_for :body_content_title do %>
|
|
2
|
+
<%= @testimonial.title %>
|
|
3
|
+
<% end %>
|
|
4
|
+
|
|
5
|
+
<% content_for :body_content_left do %>
|
|
6
|
+
<section>
|
|
7
|
+
<h1>Date</h1>
|
|
8
|
+
<p>
|
|
9
|
+
<%=raw @testimonial.date %>
|
|
10
|
+
</p>
|
|
11
|
+
</section>
|
|
12
|
+
<% end %>
|
|
13
|
+
|
|
14
|
+
<% content_for :body_content_right do %>
|
|
15
|
+
<aside>
|
|
16
|
+
<h2><%= t('.other') %></h2>
|
|
17
|
+
<ul id="testimonials">
|
|
18
|
+
<% @testimonials.each do |testimonial| %>
|
|
19
|
+
<li>
|
|
20
|
+
<%= link_to testimonial.title, testimonial_url(testimonial) %>
|
|
21
|
+
</li>
|
|
22
|
+
<% end %>
|
|
23
|
+
</ul>
|
|
24
|
+
</aside>
|
|
25
|
+
<% end %>
|
|
26
|
+
|
|
27
|
+
<%= render :partial => "/shared/content_page" %>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
en:
|
|
2
|
+
shared:
|
|
3
|
+
admin:
|
|
4
|
+
image_picker:
|
|
5
|
+
image: image
|
|
6
|
+
plugins:
|
|
7
|
+
testimonials:
|
|
8
|
+
title: Testimonials
|
|
9
|
+
admin:
|
|
10
|
+
testimonials:
|
|
11
|
+
index:
|
|
12
|
+
title: Testimonials
|
|
13
|
+
create_new: Add New Testimonial
|
|
14
|
+
reorder: Reorder Testimonials
|
|
15
|
+
reorder_done: Done Reordering Testimonials
|
|
16
|
+
sorry_no_results: Sorry! There are no results found.
|
|
17
|
+
no_items_yet: There are no Testimonials yet. Click "Add New Testimonial" to add your first testimonial.
|
|
18
|
+
testimonial:
|
|
19
|
+
view_live_html: View this testimonial live <br/><em>(opens in a new window)</em>
|
|
20
|
+
edit: Edit this testimonial
|
|
21
|
+
delete: Remove this testimonial forever
|
|
22
|
+
testimonials:
|
|
23
|
+
show:
|
|
24
|
+
other: Other Testimonials
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
lolcat:
|
|
2
|
+
shared:
|
|
3
|
+
admin:
|
|
4
|
+
image_picker:
|
|
5
|
+
image: IMAGE
|
|
6
|
+
plugins:
|
|
7
|
+
testimonials:
|
|
8
|
+
title: Testimonials
|
|
9
|
+
admin:
|
|
10
|
+
testimonials:
|
|
11
|
+
index:
|
|
12
|
+
title: Testimonials
|
|
13
|
+
create_new: CREATE NEW Testimonial
|
|
14
|
+
reorder: REORDR Testimonials
|
|
15
|
+
reorder_done: DUN REORDERIN Testimonials
|
|
16
|
+
sorry_no_results: SRY! THAR R NO RESULTS FINDZ.
|
|
17
|
+
no_items_yet: THAR R NO Testimonials YET. CLICK "CREATE NEW Testimonial" 2 ADD UR FURST testimonial.
|
|
18
|
+
testimonial:
|
|
19
|
+
view_live_html: VIEW DIS testimonial LIV <BR/><EM>(OPENS IN NEW WINDOW)</EM>
|
|
20
|
+
edit: EDIT DIS testimonial
|
|
21
|
+
delete: REMOOV DIS testimonial FOREVR
|
|
22
|
+
testimonials:
|
|
23
|
+
show:
|
|
24
|
+
other: OTHR Testimonials
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
nb:
|
|
2
|
+
plugins:
|
|
3
|
+
testimonials:
|
|
4
|
+
title: Testimonials
|
|
5
|
+
admin:
|
|
6
|
+
testimonials:
|
|
7
|
+
index:
|
|
8
|
+
title: Testimonials
|
|
9
|
+
create_new: Lag en ny Testimonial
|
|
10
|
+
reorder: Endre rekkefølgen på Testimonials
|
|
11
|
+
reorder_done: Ferdig å endre rekkefølgen Testimonials
|
|
12
|
+
sorry_no_results: Beklager! Vi fant ikke noen resultater.
|
|
13
|
+
no_items_yet: Det er ingen Testimonials enda. Klikk på "Lag en ny Testimonial" for å legge til din første testimonial.
|
|
14
|
+
testimonial:
|
|
15
|
+
view_live_html: Vis hvordan denne testimonial ser ut offentlig <br/><em>(åpner i et nytt vindu)</em>
|
|
16
|
+
edit: Rediger denne testimonial
|
|
17
|
+
delete: Fjern denne testimonial permanent
|
|
18
|
+
testimonials:
|
|
19
|
+
show:
|
|
20
|
+
other: Andre Testimonials
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
nl:
|
|
2
|
+
plugins:
|
|
3
|
+
testimonials:
|
|
4
|
+
title: Testimonials
|
|
5
|
+
admin:
|
|
6
|
+
testimonials:
|
|
7
|
+
index:
|
|
8
|
+
title: Testimonials
|
|
9
|
+
create_new: Maak een nieuwe Testimonial
|
|
10
|
+
reorder: Wijzig de volgorde van de Testimonials
|
|
11
|
+
reorder_done: Klaar met het wijzingen van de volgorde van de Testimonials
|
|
12
|
+
sorry_no_results: Helaas! Er zijn geen resultaten gevonden.
|
|
13
|
+
no_items_yet: Er zijn nog geen Testimonials. Druk op 'Maak een nieuwe Testimonial' om de eerste aan te maken.
|
|
14
|
+
testimonial:
|
|
15
|
+
view_live_html: Bekijk deze testimonial op de website <br/><em>(opent een nieuw venster)</em>
|
|
16
|
+
edit: Bewerk deze testimonial
|
|
17
|
+
delete: Verwijder deze testimonial voor eeuwig
|
|
18
|
+
testimonials:
|
|
19
|
+
show:
|
|
20
|
+
other: Andere Testimonials
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Refinery::Application.routes.draw do
|
|
2
|
+
resources :testimonials, :only => [:index, :show]
|
|
3
|
+
|
|
4
|
+
scope(:path => 'refinery', :as => 'admin', :module => 'admin') do
|
|
5
|
+
resources :testimonials, :except => :show do
|
|
6
|
+
collection do
|
|
7
|
+
post :update_positions
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'refinery'
|
|
2
|
+
|
|
3
|
+
module Refinery
|
|
4
|
+
module Testimonials
|
|
5
|
+
class Engine < Rails::Engine
|
|
6
|
+
initializer "static assets" do |app|
|
|
7
|
+
app.middleware.insert_after ::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
config.after_initialize do
|
|
11
|
+
Refinery::Plugin.register do |plugin|
|
|
12
|
+
plugin.name = "testimonials"
|
|
13
|
+
plugin.activity = {
|
|
14
|
+
:class => Testimonial}
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: refinerycms-testimonials
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 0
|
|
7
|
+
- 0
|
|
8
|
+
- 9
|
|
9
|
+
version: 0.0.9
|
|
10
|
+
platform: ruby
|
|
11
|
+
authors: []
|
|
12
|
+
|
|
13
|
+
autorequire:
|
|
14
|
+
bindir: bin
|
|
15
|
+
cert_chain: []
|
|
16
|
+
|
|
17
|
+
date: 2011-02-07 00:00:00 -05:00
|
|
18
|
+
default_executable:
|
|
19
|
+
dependencies: []
|
|
20
|
+
|
|
21
|
+
description: Ruby on Rails Testimonials engine for Refinery CMS
|
|
22
|
+
email:
|
|
23
|
+
executables: []
|
|
24
|
+
|
|
25
|
+
extensions: []
|
|
26
|
+
|
|
27
|
+
extra_rdoc_files: []
|
|
28
|
+
|
|
29
|
+
files:
|
|
30
|
+
- lib/generators/refinerycms_testimonials_generator.rb
|
|
31
|
+
- lib/refinerycms-testimonials.rb
|
|
32
|
+
- lib/tasks/testimonials.rake
|
|
33
|
+
- config/locales/en.yml
|
|
34
|
+
- config/locales/lolcat.yml
|
|
35
|
+
- config/locales/nb.yml
|
|
36
|
+
- config/locales/nl.yml
|
|
37
|
+
- config/routes.rb
|
|
38
|
+
- app/controllers/admin/testimonials_controller.rb
|
|
39
|
+
- app/controllers/testimonials_controller.rb
|
|
40
|
+
- app/helpers/testimonials_helper.rb
|
|
41
|
+
- app/models/testimonial.rb
|
|
42
|
+
- app/views/admin/testimonials/_form.html.erb
|
|
43
|
+
- app/views/admin/testimonials/_sortable_list.html.erb
|
|
44
|
+
- app/views/admin/testimonials/_testimonial.html.erb
|
|
45
|
+
- app/views/admin/testimonials/_testimonials.html.erb
|
|
46
|
+
- app/views/admin/testimonials/edit.html.erb
|
|
47
|
+
- app/views/admin/testimonials/index.html.erb
|
|
48
|
+
- app/views/admin/testimonials/new.html.erb
|
|
49
|
+
- app/views/testimonials/_testimonial.html.erb
|
|
50
|
+
- app/views/testimonials/index.html.erb
|
|
51
|
+
- app/views/testimonials/show.html.erb
|
|
52
|
+
has_rdoc: true
|
|
53
|
+
homepage:
|
|
54
|
+
licenses: []
|
|
55
|
+
|
|
56
|
+
post_install_message:
|
|
57
|
+
rdoc_options: []
|
|
58
|
+
|
|
59
|
+
require_paths:
|
|
60
|
+
- lib
|
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
|
+
none: false
|
|
63
|
+
requirements:
|
|
64
|
+
- - ">="
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
segments:
|
|
67
|
+
- 0
|
|
68
|
+
version: "0"
|
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
|
+
none: false
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
segments:
|
|
75
|
+
- 0
|
|
76
|
+
version: "0"
|
|
77
|
+
requirements: []
|
|
78
|
+
|
|
79
|
+
rubyforge_project:
|
|
80
|
+
rubygems_version: 1.3.7
|
|
81
|
+
signing_key:
|
|
82
|
+
specification_version: 3
|
|
83
|
+
summary: Testimonials engine for Refinery CMS
|
|
84
|
+
test_files: []
|
|
85
|
+
|