diff --git a/app/controllers/admins/edu_settings_controller.rb b/app/controllers/admins/edu_settings_controller.rb new file mode 100644 index 000000000..9d9334b23 --- /dev/null +++ b/app/controllers/admins/edu_settings_controller.rb @@ -0,0 +1,55 @@ +class Admins::EduSettingsController < Admins::BaseController + before_action :find_setting, only: [:edit,:update, :destroy] + + def index + default_sort('id', 'desc') + + edu_settings = Admins::EduSettingQuery.call(params) + @edu_settings = paginate edu_settings + end + + def new + @edu_setting = EduSetting.new + end + + def edit + end + + def create + @edu_setting = EduSetting.new(edu_setting_params) + if @edu_setting.save + redirect_to admins_edu_settings_path + flash[:success] = '创建成功' + else + redirect_to admins_edu_settings_path + flash[:danger] = @edu_setting.errors.full_messages.join(",") + end + end + + def update + if @edu_setting.update!(edu_setting_params) + flash[:success] = '更新成功' + else + flash[:danger] = @edu_setting.errors.full_messages.join(",") + end + redirect_to admins_edu_settings_path + end + + def destroy + if @edu_setting.destroy! + flash[:success] = '删除成功' + else + lash[:danger] = '删除失败' + end + redirect_to admins_edu_settings_path + end + + private + def find_setting + @edu_setting ||= EduSetting.find(params[:id]) + end + + def edu_setting_params + params.require(:edu_setting).permit(:name, :value, :description) + end +end diff --git a/app/controllers/admins/sites_controller.rb b/app/controllers/admins/sites_controller.rb new file mode 100644 index 000000000..f3da4ccf2 --- /dev/null +++ b/app/controllers/admins/sites_controller.rb @@ -0,0 +1,56 @@ +class Admins::SitesController < Admins::BaseController + before_action :find_site, only: [:edit,:update, :destroy] + + def index + default_sort('id', 'desc') + + sites = Admins::SiteQuery.call(params) + @sites = paginate sites + end + + def new + @site = Site.new + end + + def edit + end + + def create + @site = Site.new(site_params) + if @site.save + redirect_to admins_sites_path + flash[:success] = '创建成功' + else + redirect_to admins_sites_path + flash[:danger] = @site.errors.full_messages.join(",") + end + end + + def update + if @site.update!(site_params) + flash[:success] = '更新成功' + else + flash[:danger] = @site.errors.full_messages.join(",") + end + redirect_to admins_sites_path + end + + def destroy + if @site.destroy! + flash[:success] = '删除成功' + else + lash[:danger] = '删除失败' + end + redirect_to admins_sites_path + end + + private + def find_site + @site ||= Site.find(params[:id]) + end + + def site_params + params.require(:site).permit(:name, :url, :key, :site_type) + end + +end diff --git a/app/controllers/edu_settings_controller.rb b/app/controllers/edu_settings_controller.rb index d3b796da7..340b03ddc 100644 --- a/app/controllers/edu_settings_controller.rb +++ b/app/controllers/edu_settings_controller.rb @@ -29,10 +29,8 @@ class EduSettingsController < ApplicationController respond_to do |format| if @edu_setting.save - format.html { redirect_to @edu_setting, notice: 'Edu setting was successfully created.' } format.json { render :show, status: :created, location: @edu_setting } else - format.html { render :new } format.json { render json: @edu_setting.errors, status: :unprocessable_entity } end end @@ -43,10 +41,8 @@ class EduSettingsController < ApplicationController def update respond_to do |format| if @edu_setting.update(edu_setting_params) - format.html { redirect_to @edu_setting, notice: 'Edu setting was successfully updated.' } format.json { render :show, status: :ok, location: @edu_setting } else - format.html { render :edit } format.json { render json: @edu_setting.errors, status: :unprocessable_entity } end end @@ -57,7 +53,6 @@ class EduSettingsController < ApplicationController def destroy @edu_setting.destroy respond_to do |format| - format.html { redirect_to edu_settings_url, notice: 'Edu setting was successfully destroyed.' } format.json { head :no_content } end end diff --git a/app/models/application_record.rb b/app/models/application_record.rb index 3ab2b11e8..0b95d7a58 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -24,4 +24,12 @@ class ApplicationRecord < ActiveRecord::Base def reset_platform_cache_async_job ResetPlatformCacheJob.perform_later end + + def self.strip_param(key) + key.to_s.strip.presence + end + + def strip_param(key) + key.to_s.strip.presence + end end diff --git a/app/models/edu_setting.rb b/app/models/edu_setting.rb index 6968b008e..22575ff15 100644 --- a/app/models/edu_setting.rb +++ b/app/models/edu_setting.rb @@ -1,22 +1,24 @@ -# == Schema Information -# -# Table name: edu_settings -# -# id :integer not null, primary key -# name :string(255) -# value :string(255) -# created_at :datetime not null -# updated_at :datetime not null -# description :string(255) -# -# Indexes -# -# index_edu_settings_on_name (name) UNIQUE -# - +# == Schema Information +# +# Table name: edu_settings +# +# id :integer not null, primary key +# name :string(255) +# value :string(255) +# created_at :datetime not null +# updated_at :datetime not null +# description :string(255) +# +# Indexes +# +# index_edu_settings_on_name (name) UNIQUE +# + class EduSetting < ApplicationRecord after_commit :expire_value_cache + scope :by_search, -> (keyword){ where("name LIKE :keyword OR value LIKE :keyword", keyword: "%#{strip_param(keyword)}%") unless strip_param(keyword).blank? } + def value_cache_key self.class.value_cache_key(name) end diff --git a/app/models/site.rb b/app/models/site.rb index 58daddf14..de352dcc5 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -17,6 +17,9 @@ class Site < ApplicationRecord # common: 普通链接 enum site_type: { add: 0, personal: 1, common: 2 } + scope :by_search, -> (keyword){ where("name LIKE :keyword OR url LIKE :keyword", keyword: "%#{strip_param(keyword)}%") unless strip_param(keyword).blank? } + scope :by_site_type, -> (site_type){ where(site_type: strip_param(site_type)) unless strip_param(site_type).blank? } + def self.set_default_menu set_add_menu! set_personal_menu! @@ -26,8 +29,8 @@ class Site < ApplicationRecord private def self.set_add_menu! adds= [ - {name: '新建镜像项目', key: 'add_mirror_project', url: '/projects/mirror/new'}, - {name: '新建托管项目', key: 'add_common', url: '/projects/deposit/new'}, + {name: '新建项目', key: 'add_mirror_project', url: '/projects/mirror/new'}, + {name: '导入项目', key: 'add_common', url: '/projects/deposit/new'}, {name: '新建组织', key: 'add_r', url: '/organize/new'}] adds.each { |ele| diff --git a/app/queries/admins/edu_setting_query.rb b/app/queries/admins/edu_setting_query.rb new file mode 100644 index 000000000..3e61ffd33 --- /dev/null +++ b/app/queries/admins/edu_setting_query.rb @@ -0,0 +1,28 @@ +class Admins::EduSettingQuery < ApplicationQuery + include CustomSortable + + attr_reader :params + + sort_columns :id, default_by: :id, default_direction: :desc + + def initialize(params) + @params = params + end + + def call + collection = EduSetting.all + collection = filter_settings(collection) + + custom_sort collection, params[:sort_by], params[:sort_direction] + end + + def filter_settings(collection) + by_search(collection) + end + + def by_search(collection) + keyword = strip_param(:search) + collection.by_search(keyword) + end + +end \ No newline at end of file diff --git a/app/queries/admins/site_query.rb b/app/queries/admins/site_query.rb new file mode 100644 index 000000000..1d15f0312 --- /dev/null +++ b/app/queries/admins/site_query.rb @@ -0,0 +1,35 @@ +class Admins::SiteQuery < ApplicationQuery + include CustomSortable + + attr_reader :params + + sort_columns :id, default_by: :id, default_direction: :desc + + def initialize(params) + @params = params + end + + def call + collection = Site.all + collection = filter_sites(collection) + + custom_sort collection, params[:sort_by], params[:sort_direction] + end + + def filter_sites(collection) + collection = by_search(collection) + collection = by_stie_type(collection) + collection + end + + def by_search(collection) + keyword = strip_param(:search) + collection.by_search(keyword) + end + + def by_stie_type(collection) + site_type = strip_param(:site_type) + collection.by_site_type(site_type) + end + +end \ No newline at end of file diff --git a/app/views/admins/edu_settings/_form.html.erb b/app/views/admins/edu_settings/_form.html.erb new file mode 100644 index 000000000..cce930f2a --- /dev/null +++ b/app/views/admins/edu_settings/_form.html.erb @@ -0,0 +1,38 @@ + \ No newline at end of file diff --git a/app/views/admins/edu_settings/_list.html.erb b/app/views/admins/edu_settings/_list.html.erb new file mode 100644 index 000000000..a37cc9bef --- /dev/null +++ b/app/views/admins/edu_settings/_list.html.erb @@ -0,0 +1,36 @@ + + + + + + + + + + + + + <% if edu_settings.present? %> + <% edu_settings.each_with_index do |edu_setting, index| %> + + + + + + + + + + <% end %> + <% else %> + <%= render 'admins/shared/no_data_for_table' %> + <% end %> + +
序号变量名变量值备注说明<%= sort_tag('创建时间', name: 'created_at', path: admins_edu_settings_path) %>操作
<%= list_index_no((params[:page] || 1).to_i, index) %> + <%= edu_setting.name %> + <%= edu_setting.value %><%= overflow_hidden_span display_text(edu_setting.description), width: 200 %><%= edu_setting.created_at&.strftime('%Y-%m-%d %H:%M') %> + <%= link_to "编辑", edit_admins_edu_setting_path(edu_setting), remote: true, class: "action" %> + <%= link_to "删除", admins_edu_setting_path(edu_setting), method: :delete, data:{confirm: "确认删除的吗?"}, class: "action" %> +
+ +<%= render partial: 'admins/shared/paginate', locals: { objects: edu_settings } %> \ No newline at end of file diff --git a/app/views/admins/edu_settings/edit.js.erb b/app/views/admins/edu_settings/edit.js.erb new file mode 100644 index 000000000..c2e0405f2 --- /dev/null +++ b/app/views/admins/edu_settings/edit.js.erb @@ -0,0 +1,2 @@ +$("#edu_setting-modals").html("<%= j render(partial: 'admins/edu_settings/form', locals: {type: 'update'}) %>") +$(".edu_setting-change-modal").modal('show'); \ No newline at end of file diff --git a/app/views/admins/edu_settings/index.html.erb b/app/views/admins/edu_settings/index.html.erb new file mode 100644 index 000000000..d52480bae --- /dev/null +++ b/app/views/admins/edu_settings/index.html.erb @@ -0,0 +1,22 @@ +<% define_admin_breadcrumbs do %> + <% add_admin_breadcrumb('全局变量配置') %> +<% end %> + +
+ <%= form_tag(admins_edu_settings_path, method: :get, class: 'form-inline search-form flex-1', remote: true) do %> + <%= text_field_tag(:search, params[:search], class: 'form-control col-12 col-md-2 mr-3', placeholder: '关键字检索') %> + <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %> + + <% end %> + <%= link_to "新增", new_admins_edu_setting_path, remote: true, class: "btn btn-primary pull-right", "data-disabled-with":"...新增" %> +
+ +
+ 说明:该界面适用于存储全局变量. +
+ +
+ <%= render partial: 'admins/edu_settings/list', locals: { edu_settings: @edu_settings } %> +
+
+
diff --git a/app/views/admins/edu_settings/index.js.erb b/app/views/admins/edu_settings/index.js.erb new file mode 100644 index 000000000..92a4bfeff --- /dev/null +++ b/app/views/admins/edu_settings/index.js.erb @@ -0,0 +1 @@ +$('.edu_settings-list-container').html("<%= j( render partial: 'admins/edu_settings/list', locals: { edu_settings: @edu_settings } ) %>"); \ No newline at end of file diff --git a/app/views/admins/edu_settings/new.js.erb b/app/views/admins/edu_settings/new.js.erb new file mode 100644 index 000000000..21abf3895 --- /dev/null +++ b/app/views/admins/edu_settings/new.js.erb @@ -0,0 +1,2 @@ +$("#edu_setting-modals").html("<%= j render(partial: 'admins/edu_settings/form', locals: {type: 'create'}) %>") +$(".edu_setting-change-modal").modal('show'); \ No newline at end of file diff --git a/app/views/admins/shared/_sidebar.html.erb b/app/views/admins/shared/_sidebar.html.erb index b4959c3ff..e58337c18 100644 --- a/app/views/admins/shared/_sidebar.html.erb +++ b/app/views/admins/shared/_sidebar.html.erb @@ -43,6 +43,12 @@
  • <%= sidebar_item(admins_faqs_path, 'FAQ', icon: 'question-circle', controller: 'admins-faqs') %>
  • <% end %> +
  • + <%= sidebar_item_group('#setting-system', '系统配置', icon: 'wrench') do %> +
  • <%= sidebar_item(admins_sites_path, 'setting接口配置', icon: 'deaf', controller: 'admins-sites') %>
  • +
  • <%= sidebar_item(admins_edu_settings_path, '全局变量配置', icon: 'pencil-square', controller: 'admins-edu_settings') %>
  • + <% end %> +
  • <%= sidebar_item('/admins/sidekiq', '定时任务', icon: 'bell', controller: 'root') %>
  • diff --git a/app/views/admins/sites/_form.html.erb b/app/views/admins/sites/_form.html.erb new file mode 100644 index 000000000..1776bcd03 --- /dev/null +++ b/app/views/admins/sites/_form.html.erb @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/app/views/admins/sites/_list.html.erb b/app/views/admins/sites/_list.html.erb new file mode 100644 index 000000000..bef39cf1f --- /dev/null +++ b/app/views/admins/sites/_list.html.erb @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + <% if sites.present? %> + <% sites.each_with_index do |site, index| %> + + + + + + + + + + + <% end %> + <% else %> + <%= render 'admins/shared/no_data_for_table' %> + <% end %> + +
    序号名称路由标识类型<%= sort_tag('创建时间', name: 'created_at', path: admins_sites_path) %>操作
    <%= list_index_no((params[:page] || 1).to_i, index) %> + <%= overflow_hidden_span display_text(site.name), width: 150 %> + <%= site.url %><%= overflow_hidden_span display_text(site.key), width: 150 %><%= site.site_type.humanize %><%= site.created_at&.strftime('%Y-%m-%d %H:%M') %> + <%= link_to "编辑", edit_admins_site_path(site), remote: true, class: "action" %> + <%= link_to "删除", admins_site_path(site), method: :delete, data:{confirm: "确认删除的吗?"}, class: "action" %> +
    + +<%= render partial: 'admins/shared/paginate', locals: { objects: sites } %> \ No newline at end of file diff --git a/app/views/admins/sites/edit.js.erb b/app/views/admins/sites/edit.js.erb new file mode 100644 index 000000000..6711ffc1f --- /dev/null +++ b/app/views/admins/sites/edit.js.erb @@ -0,0 +1,2 @@ +$("#site-modals").html("<%= j render(partial: 'admins/sites/form', locals: {type: 'update'}) %>") +$(".site-change-modal").modal('show'); \ No newline at end of file diff --git a/app/views/admins/sites/index.html.erb b/app/views/admins/sites/index.html.erb new file mode 100644 index 000000000..8a5fa1bfc --- /dev/null +++ b/app/views/admins/sites/index.html.erb @@ -0,0 +1,24 @@ +<% define_admin_breadcrumbs do %> + <% add_admin_breadcrumb('Setting接口配置') %> +<% end %> + +
    + <%= form_tag(admins_sites_path, method: :get, class: 'form-inline search-form flex-1', remote: true) do %> +
    + + <% type_options = [['全部', ''], ['Add', Site.site_types[:add]], ['Personal', Site.site_types[:personal]], ['Common', Site.site_types[:common]]] %> + <%= select_tag(:site_type, options_for_select(type_options), class: 'form-control') %> +
    + + <%= text_field_tag(:search, params[:search], class: 'form-control col-12 col-md-2 mr-3', placeholder: '关键字检索') %> + <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %> + + <% end %> + <%= link_to "新增", new_admins_site_path, remote: true, class: "btn btn-primary pull-right", "data-disabled-with":"...新增" %> +
    + +
    + <%= render partial: 'admins/sites/list', locals: { sites: @sites } %> +
    +
    +
    diff --git a/app/views/admins/sites/index.js.erb b/app/views/admins/sites/index.js.erb new file mode 100644 index 000000000..797d58296 --- /dev/null +++ b/app/views/admins/sites/index.js.erb @@ -0,0 +1 @@ +$('.sites-list-container').html("<%= j( render partial: 'admins/sites/list', locals: { sites: @sites } ) %>"); \ No newline at end of file diff --git a/app/views/admins/sites/new.js.erb b/app/views/admins/sites/new.js.erb new file mode 100644 index 000000000..6978fed32 --- /dev/null +++ b/app/views/admins/sites/new.js.erb @@ -0,0 +1,2 @@ +$("#site-modals").html("<%= j render(partial: 'admins/sites/form', locals: {type: 'create'}) %>") +$(".site-change-modal").modal('show'); \ No newline at end of file diff --git a/app/views/edu_settings/_form.html.erb b/app/views/edu_settings/_form.html.erb deleted file mode 100644 index 3b7f09f1c..000000000 --- a/app/views/edu_settings/_form.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<%= form_with(model: edu_setting, local: true) do |form| %> - <% if edu_setting.errors.any? %> -
    -

    <%= pluralize(edu_setting.errors.count, "error") %> prohibited this edu_setting from being saved:

    - - -
    - <% end %> - -
    - <%= form.label :name %> - <%= form.text_field :name %> -
    - -
    - <%= form.label :value %> - <%= form.text_field :value %> -
    - -
    - <%= form.submit %> -
    -<% end %> diff --git a/app/views/edu_settings/edit.html.erb b/app/views/edu_settings/edit.html.erb deleted file mode 100644 index 2a0796842..000000000 --- a/app/views/edu_settings/edit.html.erb +++ /dev/null @@ -1,6 +0,0 @@ -

    Editing Edu Setting

    - -<%= render 'form', edu_setting: @edu_setting %> - -<%= link_to 'Show', @edu_setting %> | -<%= link_to 'Back', edu_settings_path %> diff --git a/app/views/edu_settings/index.html.erb b/app/views/edu_settings/index.html.erb deleted file mode 100644 index d49977254..000000000 --- a/app/views/edu_settings/index.html.erb +++ /dev/null @@ -1,30 +0,0 @@ -

    <%= notice %>

    - -

    EduCoder公共配置

    -

    说明:该界面适用于存储全局变量

    - - - - - - - - - - - - <% @edu_settings.each do |edu_setting| %> - - - - - - - - <% end %> - -
    变量名变量值
    <%= edu_setting.name %><%= edu_setting.value %><%= link_to 'Show', edu_setting %><%= link_to 'Edit', edit_edu_setting_path(edu_setting) %><%= link_to 'Destroy', edu_setting, method: :delete, data: { confirm: 'Are you sure?' } %>
    - -
    - -<%= link_to 'New Edu Setting', new_edu_setting_path %> diff --git a/app/views/edu_settings/new.html.erb b/app/views/edu_settings/new.html.erb deleted file mode 100644 index 8a70e3a63..000000000 --- a/app/views/edu_settings/new.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -

    New Edu Setting

    - -<%= render 'form', edu_setting: @edu_setting %> - -<%= link_to 'Back', edu_settings_path %> diff --git a/app/views/edu_settings/show.html.erb b/app/views/edu_settings/show.html.erb deleted file mode 100644 index 9d027373f..000000000 --- a/app/views/edu_settings/show.html.erb +++ /dev/null @@ -1,14 +0,0 @@ -

    <%= notice %>

    - -

    - Name: - <%= @edu_setting.name %> -

    - -

    - Value: - <%= @edu_setting.value %> -

    - -<%= link_to 'Edit', edit_edu_setting_path(@edu_setting) %> | -<%= link_to 'Back', edu_settings_path %> diff --git a/config/routes.rb b/config/routes.rb index 346468fb7..37b98b228 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -651,6 +651,8 @@ Rails.application.routes.draw do get :visits_static end end + resources :sites + resources :edu_settings resources :project_languages resources :project_categories resources :project_licenses diff --git a/spec/controllers/admins/edu_settings_controller_spec.rb b/spec/controllers/admins/edu_settings_controller_spec.rb new file mode 100644 index 000000000..ae5164879 --- /dev/null +++ b/spec/controllers/admins/edu_settings_controller_spec.rb @@ -0,0 +1,47 @@ +require 'rails_helper' + +RSpec.describe Admins::EduSettingsController, type: :controller do + + describe "GET #index" do + it "returns http success" do + get :index + expect(response).to have_http_status(:success) + end + end + + describe "GET #new" do + it "returns http success" do + get :new + expect(response).to have_http_status(:success) + end + end + + describe "GET #update" do + it "returns http success" do + get :update + expect(response).to have_http_status(:success) + end + end + + describe "GET #edit" do + it "returns http success" do + get :edit + expect(response).to have_http_status(:success) + end + end + + describe "GET #create" do + it "returns http success" do + get :create + expect(response).to have_http_status(:success) + end + end + + describe "GET #destroy" do + it "returns http success" do + get :destroy + expect(response).to have_http_status(:success) + end + end + +end diff --git a/spec/controllers/admins/sites_controller_spec.rb b/spec/controllers/admins/sites_controller_spec.rb new file mode 100644 index 000000000..0c5f79b3d --- /dev/null +++ b/spec/controllers/admins/sites_controller_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Admins::SitesController, type: :controller do + +end diff --git a/spec/views/admins/edu_settings/create.html.erb_spec.rb b/spec/views/admins/edu_settings/create.html.erb_spec.rb new file mode 100644 index 000000000..bc53b9f18 --- /dev/null +++ b/spec/views/admins/edu_settings/create.html.erb_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe "edu_settings/create.html.erb", type: :view do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/views/admins/edu_settings/destroy.html.erb_spec.rb b/spec/views/admins/edu_settings/destroy.html.erb_spec.rb new file mode 100644 index 000000000..51acd4901 --- /dev/null +++ b/spec/views/admins/edu_settings/destroy.html.erb_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe "edu_settings/destroy.html.erb", type: :view do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/views/admins/edu_settings/edit.html.erb_spec.rb b/spec/views/admins/edu_settings/edit.html.erb_spec.rb new file mode 100644 index 000000000..e381cbb04 --- /dev/null +++ b/spec/views/admins/edu_settings/edit.html.erb_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe "edu_settings/edit.html.erb", type: :view do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/views/admins/edu_settings/index.html.erb_spec.rb b/spec/views/admins/edu_settings/index.html.erb_spec.rb new file mode 100644 index 000000000..ba6e16ebc --- /dev/null +++ b/spec/views/admins/edu_settings/index.html.erb_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe "edu_settings/index.html.erb", type: :view do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/views/admins/edu_settings/new.html.erb_spec.rb b/spec/views/admins/edu_settings/new.html.erb_spec.rb new file mode 100644 index 000000000..00bc830cd --- /dev/null +++ b/spec/views/admins/edu_settings/new.html.erb_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe "edu_settings/new.html.erb", type: :view do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/views/admins/edu_settings/update.html.erb_spec.rb b/spec/views/admins/edu_settings/update.html.erb_spec.rb new file mode 100644 index 000000000..89ae0feb8 --- /dev/null +++ b/spec/views/admins/edu_settings/update.html.erb_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe "edu_settings/update.html.erb", type: :view do + pending "add some examples to (or delete) #{__FILE__}" +end