1
0
Fork 0

Remove scripts

This commit is contained in:
Alex Kotov 2019-10-24 10:37:33 +05:00
parent bbdd03db20
commit 90092b3cf8
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
33 changed files with 1 additions and 12129 deletions

View File

@ -5,7 +5,3 @@
//= require popper
//= require bootstrap-sprockets
//= require_tree .
document.addEventListener('turbolinks:load', function() {
Prism.highlightAll()
})

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,3 @@
@import 'bootstrap';
@import 'font-awesome-sprockets';
@import 'font-awesome';
@import 'prism';

View File

@ -1,125 +0,0 @@
/* PrismJS 1.17.1
https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+abap+abnf+actionscript+ada+antlr4+apacheconf+apl+applescript+aql+c+arff+asciidoc+asm6502+csharp+autohotkey+autoit+bash+basic+batch+bison+bnf+brainfuck+bro+cpp+aspnet+arduino+cil+coffeescript+cmake+clojure+ruby+csp+css-extras+d+dart+diff+markup-templating+dns-zone-file+docker+ebnf+eiffel+ejs+elixir+elm+lua+erb+erlang+fsharp+firestore-security-rules+flow+fortran+ftl+gcode+gdscript+gedcom+gherkin+git+glsl+gml+go+graphql+groovy+less+handlebars+haskell+haxe+hcl+http+hpkp+hsts+ichigojam+icon+inform7+ini+io+j+java+scala+php+javastacktrace+jolie+jq+javadoclike+n4js+markdown+json+jsonp+json5+julia+keyman+kotlin+latex+crystal+scheme+liquid+lisp+livescript+lolcode+etlua+makefile+js-templates+django+matlab+mel+mizar+monkey+n1ql+typescript+nand2tetris-hdl+nasm+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+pascaligo+pcaxis+perl+jsdoc+phpdoc+php-extras+sql+powershell+processing+prolog+properties+protobuf+scss+puppet+pure+python+q+qore+r+js-extras+jsx+renpy+reason+vala+rest+rip+roboconf+robot-framework+textile+rust+sas+sass+stylus+javadoc+lilypond+shell-session+smalltalk+smarty+solidity+soy+turtle+splunk-spl+sqf+plsql+twig+swift+yaml+tcl+haml+toml+tt2+sparql+pug+tsx+t4-templating+visual-basic+t4-cs+regex+vbnet+velocity+verilog+vhdl+vim+t4-vb+wasm+wiki+xeora+xojo+xquery+tap+zig */
/**
* prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
* Based on https://github.com/chriskempson/tomorrow-theme
* @author Rose Pritchard
*/
code[class*="language-"],
pre[class*="language-"] {
color: #ccc;
background: none;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
font-size: 1em;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background: #2d2d2d;
}
/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #999;
}
.token.punctuation {
color: #ccc;
}
.token.tag,
.token.attr-name,
.token.namespace,
.token.deleted {
color: #e2777a;
}
.token.function-name {
color: #6196cc;
}
.token.boolean,
.token.number,
.token.function {
color: #f08d49;
}
.token.property,
.token.class-name,
.token.constant,
.token.symbol {
color: #f8c555;
}
.token.selector,
.token.important,
.token.atrule,
.token.keyword,
.token.builtin {
color: #cc99cd;
}
.token.string,
.token.char,
.token.attr-value,
.token.regex,
.token.variable {
color: #7ec699;
}
.token.operator,
.token.entity,
.token.url {
color: #67cdcc;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
.token.inserted {
color: green;
}

View File

@ -1,25 +0,0 @@
# frozen_string_literal: true
class Staffs::ScriptsController < ApplicationController
before_action :set_script, only: :show
# GET /staff/scripts
def index
authorize [:staff, Script]
@scripts = policy_scope(
Script.order(codename: :asc),
policy_scope_class: Staff::ScriptPolicy::Scope,
).page(params[:page])
end
# GET /staff/scripts/:codename
def show
authorize [:staff, @script]
end
private
def set_script
@script = Script.find_by! codename: params[:codename]
end
end

View File

@ -1,21 +0,0 @@
# frozen_string_literal: true
class Script < ApplicationRecord
###############
# Validations #
###############
validates :codename, codename: true, uniqueness: { case_sensitive: false }
validates :name, good_small_text: true, uniqueness: true
validates :source_code, presence: true
###########
# Methods #
###########
def to_param
codename
end
end

View File

@ -1,25 +0,0 @@
# frozen_string_literal: true
class Staff::ScriptPolicy < ApplicationPolicy
def index?
return false if restricted?
account&.superuser?
end
def show?
return false if restricted?
account&.superuser?
end
class Scope < Scope
def resolve
return scope.none if restricted?
return scope.all if account&.superuser?
scope.none
end
end
end

View File

@ -48,12 +48,5 @@
staff_org_units_path %>
</li>
<% end %>
<% if policy([:staff, Script]).index? %>
<li>
<%= link_to Script.model_name.human(count: 0),
staff_scripts_path %>
</li>
<% end %>
</ul>
</div>

View File

@ -1,27 +0,0 @@
<table class="table">
<thead>
<tr>
<th scope="col">
<%= Script.human_attribute_name :codename %>
</th>
<th scope="col">
<%= Script.human_attribute_name :name %>
</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<% scripts.each do |script| %>
<tr>
<td scope="row"><%= script.codename %></td>
<td><%= script.name %></td>
<td>
<% if policy([:staff, script]).show? %>
<%= open_action [:staff, script] %>
<% end %>
</td>
</tr>
<% end %>
</tbody>
</table>

View File

@ -1,9 +0,0 @@
<div class="container">
<%= nav_breadcrumb(
[translate(:staff_services), staff_root_path],
Script.model_name.human(count: 0),
) %>
<%= render partial: 'table', locals: { scripts: @scripts } %>
<%= pagination @scripts %>
</div>

View File

@ -1,19 +0,0 @@
<div class="container">
<%= nav_breadcrumb(
[translate(:staff_services), staff_root_path],
[Script.model_name.human(count: 0), staff_scripts_path],
@script.codename,
) %>
<dl>
<dt><%= Script.human_attribute_name :codename %></dt>
<dd><%= @script.codename %></dd>
<dt><%= Script.human_attribute_name :name %></dt>
<dd><%= @script.name %></dd>
</dl>
<hr/>
<pre><code class="language-ruby"><%= @script.source_code %></code></pre>
</div>

View File

@ -38,10 +38,6 @@ en:
relationship:
one: Party relation
many: Party relations
script:
one: Script
few: Scripts
many: Scripts
session:
one: Session
few: Sessions
@ -124,11 +120,6 @@ en:
relationship:
id: ID
from_date: From date
script:
id: ID
codename: Codename
name: Name
source_code: Source code
session:
id: ID
account: Account

View File

@ -38,10 +38,6 @@ ru:
relationship:
one: Отношение с партией
one: Отношения с партией
script:
one: Скрипт
few: Скрипты
many: Скрипты
session:
one: Сессия
few: Сессии
@ -124,11 +120,6 @@ ru:
relationship:
id: ID
from_date: Дата начала
script:
id: ID
codename: Кодовое имя
name: Название
source_code: Исходный код
session:
id: ID
account: Аккаунт

View File

@ -67,8 +67,6 @@ Rails.application.routes.draw do
resources :org_units, only: %i[index show]
resources :scripts, param: :codename, only: %i[index show]
resources :people, only: %i[index show new create] do
resources :person_comments,
path: 'comments',

View File

@ -1,12 +0,0 @@
accept_as_supporter | Принять в сторонники |
accept_as_member | Принять в члены |
exit_from_supporters | Выйти из сторонников |
exclude_from_supporters | Исключить из сторонников |
pause_membership | Приостановить членство |
exit_from_members | Выйти из членов |
exclude_from_members | Исключить из членов |
resume_membership | Возобновить членство |
accept_former_supp_as_supporter | Принять в сторонники бывшего сторонника |
accept_former_member_as_supporter | Принять в сторонники бывшего члена |
accept_excluded_supp_as_supporter | Принять в сторонники исключённого сторонника |
accept_excluded_member_as_supporter | Принять в сторонники исключённого члена |
1 accept_as_supporter Принять в сторонники
2 accept_as_member Принять в члены
3 exit_from_supporters Выйти из сторонников
4 exclude_from_supporters Исключить из сторонников
5 pause_membership Приостановить членство
6 exit_from_members Выйти из членов
7 exclude_from_members Исключить из членов
8 resume_membership Возобновить членство
9 accept_former_supp_as_supporter Принять в сторонники бывшего сторонника
10 accept_former_member_as_supporter Принять в сторонники бывшего члена
11 accept_excluded_supp_as_supporter Принять в сторонники исключённого сторонника
12 accept_excluded_member_as_supporter Принять в сторонники исключённого члена

View File

@ -1,24 +0,0 @@
# frozen_string_literal: true
class CreateScripts < ActiveRecord::Migration[6.0]
include Partynest::Migration
def change
create_table :scripts do |t|
t.timestamps null: false
t.string :codename, null: false, index: { unique: true }
t.string :name, null: false, index: { unique: true }
t.text :source_code, null: false
end
add_constraint :scripts, :codename, <<~SQL
is_codename(codename)
SQL
add_constraint :scripts, :name, <<~SQL
is_good_small_text(name)
SQL
end
end

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1,142 +0,0 @@
# frozen_string_literal: true
class AcceptAsSupporterProgram
attr_reader :current_account, :person, :federal_subject
def initialize(current_account, person, federal_subject)
self.current_account = current_account
self.person = person
self.federal_subject = federal_subject
end
def active?
latest_lpr_relationship.nil?
end
def call
[lpr_rel, reg_dept_rel] if active?
end
private
def current_account=(value)
unless value.instance_of? Account
raise TypeError, "Expected #{Account}, got #{value.class}"
end
raise 'Expected record to be persisted' unless value.persisted?
@current_account = value
end
def person=(value)
unless value.instance_of? Person
raise TypeError, "Expected #{Person}, got #{value.class}"
end
raise 'Expected record to be persisted' unless value.persisted?
@person = value
end
def federal_subject=(value)
unless value.instance_of? FederalSubject
raise TypeError, "Expected #{FederalSubject}, got #{value.class}"
end
raise 'Expected record to be persisted' unless value.persisted?
@federal_subject = value
end
#####################
# Relation statuses #
#####################
def included_rel_status
@included_rel_status ||= RelationStatus.find_by! codename: :included
end
def supporter_rel_status
@supporter_rel_status ||= RelationStatus.find_by! codename: :supporter
end
#############################
# Organizational unit types #
#############################
def lpr_org_unit_kind
@lpr_org_unit_kind ||= OrgUnitKind.find_by! codename: :lpr
end
def reg_dept_org_unit_kind
@reg_dept_org_unit_kind ||= OrgUnitKind.find_by! codename: :reg_dept
end
########################
# Organizational units #
########################
def lpr_org_unit
@lpr_org_unit ||=
lpr_org_unit_kind
.instances
.order(created_at: :asc)
.first
end
def reg_dept_org_unit
@reg_dept_org_unit ||=
reg_dept_org_unit_kind
.instances
.where(resource: federal_subject)
.order(created_at: :asc)
.first
end
######################
# Manipulated person #
######################
def current_person
@current_person ||= current_account.person
end
def latest_lpr_relationship
if instance_variable_defined? :@latest_lpr_relationship
return @latest_lpr_relationship
end
@latest_lpr_relationship =
person
.all_relationships
.where(org_unit: lpr_org_unit)
.order(from_date: :asc)
.last
end
####################
# Generated values #
####################
def from_date
@from_date ||= Time.zone.now.to_date
end
def lpr_rel
@lpr_rel ||= Relationship.create!(
org_unit: lpr_org_unit,
parent_rel: nil,
status: included_rel_status,
person: person,
from_date: from_date,
)
end
def reg_dept_rel
@reg_dept_rel ||= Relationship.create!(
org_unit: reg_dept_org_unit,
parent_rel: lpr_rel,
status: supporter_rel_status,
person: person,
from_date: from_date,
)
end
end

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -1 +0,0 @@
# frozen_string_literal: true

View File

@ -79,21 +79,6 @@ do |(org_unit_kind, codename, name)|
end
end
csv_foreach :scripts \
do |(codename, name)|
codename.strip!
name.strip!
source_code = File.read(
File.expand_path(File.join('scripts', "#{codename}.rb"), __dir__),
)
Script.where(codename: codename).first_or_create!(
name: name,
source_code: source_code,
)
end
Rails.application.settings(:superuser).tap do |config|
user = User.where(email: config[:email]).first_or_create! do |new_user|
new_user.password = config[:password]

View File

@ -1042,41 +1042,6 @@ CREATE TABLE public.schema_migrations (
);
--
-- Name: scripts; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.scripts (
id bigint NOT NULL,
created_at timestamp(6) without time zone NOT NULL,
updated_at timestamp(6) without time zone NOT NULL,
codename character varying NOT NULL,
name character varying NOT NULL,
source_code text NOT NULL,
CONSTRAINT codename CHECK (public.is_codename((codename)::text)),
CONSTRAINT name CHECK (public.is_good_small_text((name)::text))
);
--
-- Name: scripts_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.scripts_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: scripts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.scripts_id_seq OWNED BY public.scripts.id;
--
-- Name: sessions; Type: TABLE; Schema: public; Owner: -
--
@ -1293,13 +1258,6 @@ ALTER TABLE ONLY public.relation_statuses ALTER COLUMN id SET DEFAULT nextval('p
ALTER TABLE ONLY public.relationships ALTER COLUMN id SET DEFAULT nextval('public.relationships_id_seq'::regclass);
--
-- Name: scripts id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.scripts ALTER COLUMN id SET DEFAULT nextval('public.scripts_id_seq'::regclass);
--
-- Name: sessions id; Type: DEFAULT; Schema: public; Owner: -
--
@ -1449,14 +1407,6 @@ ALTER TABLE ONLY public.schema_migrations
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
--
-- Name: scripts scripts_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.scripts
ADD CONSTRAINT scripts_pkey PRIMARY KEY (id);
--
-- Name: sessions sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
@ -1740,20 +1690,6 @@ CREATE UNIQUE INDEX index_relationships_on_person_id_and_org_unit_id_and_from_da
CREATE INDEX index_relationships_on_status_id ON public.relationships USING btree (status_id);
--
-- Name: index_scripts_on_codename; Type: INDEX; Schema: public; Owner: -
--
CREATE UNIQUE INDEX index_scripts_on_codename ON public.scripts USING btree (codename);
--
-- Name: index_scripts_on_name; Type: INDEX; Schema: public; Owner: -
--
CREATE UNIQUE INDEX index_scripts_on_name ON public.scripts USING btree (name);
--
-- Name: index_sessions_on_account_id; Type: INDEX; Schema: public; Owner: -
--
@ -2041,7 +1977,6 @@ INSERT INTO "schema_migrations" (version) VALUES
('20191002002101'),
('20191002170727'),
('20191021060000'),
('20191021061920'),
('20191021093331');
('20191021061920');

View File

@ -1,10 +0,0 @@
# frozen_string_literal: true
FactoryBot.define do
factory :some_script, class: Script do
codename { Faker::Internet.unique.username 3..36, %w[_] }
name { Faker::Company.unique.name }
source_code { "puts 'Hello, World!'\n" }
end
end

View File

@ -1,85 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Script do
subject { create :some_script }
describe '#to_param' do
specify do
expect(subject.to_param).to eq subject.codename
end
end
describe '#codename' do
def allow_value(*)
super.for :codename
end
it { is_expected.to validate_presence_of :codename }
it { is_expected.to validate_uniqueness_of(:codename).case_insensitive }
it do
is_expected.to validate_length_of(:codename).is_at_least(3).is_at_most(36)
end
it { is_expected.not_to allow_value nil }
it { is_expected.not_to allow_value '' }
it { is_expected.not_to allow_value ' ' * 3 }
it { is_expected.to allow_value Faker::Internet.username(3..36, %w[_]) }
it { is_expected.to allow_value 'foo_bar' }
it { is_expected.to allow_value 'foo123' }
it do
is_expected.not_to \
allow_value Faker::Internet.username(3..36, %w[_]).upcase
end
it { is_expected.not_to allow_value Faker::Internet.email }
it { is_expected.not_to allow_value '_foo' }
it { is_expected.not_to allow_value 'bar_' }
it { is_expected.not_to allow_value '1foo' }
end
describe '#name' do
def allow_value(*)
super.for :name
end
it { is_expected.to validate_presence_of :name }
it { is_expected.to validate_uniqueness_of :name }
it do
is_expected.to \
validate_length_of(:name)
.is_at_least(1)
.is_at_most(255)
end
it { is_expected.not_to allow_value nil }
it { is_expected.not_to allow_value '' }
it { is_expected.not_to allow_value ' ' }
it { is_expected.to allow_value Faker::Name.name }
it { is_expected.to allow_value Faker::Name.first_name }
it { is_expected.to allow_value 'Foo Bar' }
it { is_expected.not_to allow_value ' Foo' }
it { is_expected.not_to allow_value 'Foo ' }
it { is_expected.not_to allow_value "\tFoo" }
it { is_expected.not_to allow_value "Foo\t" }
it { is_expected.not_to allow_value "\nFoo" }
it { is_expected.not_to allow_value "Foo\n" }
end
describe '#source_code' do
def allow_value(*)
super.for :source_code
end
it { is_expected.to validate_presence_of :source_code }
it { is_expected.to allow_value "puts 'Hello, World!'\n" }
end
end

View File

@ -1,7 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Staff::ScriptPolicy do
pending "add some examples to (or delete) #{__FILE__}"
end