From 705826d95c14e64ed384ef68fe06f445ec37ac04 Mon Sep 17 00:00:00 2001 From: Subash R Date: Sun, 11 Jun 2023 13:32:31 +0530 Subject: [PATCH 1/3] Fix typo in "reccomend_textbook" --- app/controllers/reviews_controller.rb | 4 ++-- app/helpers/course_helper.rb | 4 ++-- app/models/review.rb | 10 +++++----- app/views/reviews/_review.json.jbuilder | 2 +- .../20230611074937_rename_reccomend_textbook_column.rb | 5 +++++ sorbet/rails-rbi/models/review.rbi | 6 +++--- test/factories.rb | 2 +- test/helpers/course_helper_test.rb | 8 ++++---- test/models/review_test.rb | 4 ++-- test/system/reviews_system_test.rb | 6 +++--- 10 files changed, 28 insertions(+), 23 deletions(-) create mode 100644 db/migrate/20230611074937_rename_reccomend_textbook_column.rb diff --git a/app/controllers/reviews_controller.rb b/app/controllers/reviews_controller.rb index 211d2cc4..a10e65d5 100644 --- a/app/controllers/reviews_controller.rb +++ b/app/controllers/reviews_controller.rb @@ -133,7 +133,7 @@ def create requires_attendance: review_params.attendance, midterm_count: review_params.midterm_count, final: review_params.final, - reccomend_textbook: review_params.textbook, + recommend_textbook: review_params.textbook, comments: review_params.comments, status: "pending", ) @@ -183,7 +183,7 @@ def update requires_attendance: review_params.attendance, midterm_count: review_params.midterm_count, final: review_params.final, - reccomend_textbook: review_params.textbook, + recommend_textbook: review_params.textbook, comments: review_params.comments, status: "pending", ) diff --git a/app/helpers/course_helper.rb b/app/helpers/course_helper.rb index a1140578..0b3b3756 100644 --- a/app/helpers/course_helper.rb +++ b/app/helpers/course_helper.rb @@ -109,7 +109,7 @@ def course_detail_icon(course_detail) else "icons/pencil-alt" end - when :reccomend_textbook + when :recommend_textbook "icons/book-open" end end @@ -147,7 +147,7 @@ def course_detail_label(course_detail) else pluralize(value, "midterm") end - when :reccomend_textbook + when :recommend_textbook # Check if value is boolean case value when true diff --git a/app/models/review.rb b/app/models/review.rb index def8aabc..b9af82b3 100644 --- a/app/models/review.rb +++ b/app/models/review.rb @@ -74,8 +74,8 @@ def self.course_details(reviews) .pick(Arel.sql("mode() within group (order by requires_attendance)")) midterm_count = reviews.where.not(midterm_count: nil) .pick(Arel.sql("mode() within group (order by midterm_count)")) - textbook_reccomendations = reviews.where.not(reccomend_textbook: nil) - .group(:reccomend_textbook).count + textbook_reccomendations = reviews.where.not(recommend_textbook: nil) + .group(:recommend_textbook).count textbook_reccomend_percentage = (textbook_reccomendations[true].to_f / textbook_reccomendations.values.sum) details = [] @@ -106,7 +106,7 @@ def self.course_details(reviews) end unless textbook_reccomend_percentage.nan? details.push({ - label: :reccomend_textbook, + label: :recommend_textbook, value: textbook_reccomend_percentage * 100, }) end @@ -216,8 +216,8 @@ def course_details value: read_attribute_before_type_cast(:final), }, { - label: :reccomend_textbook, - value: reccomend_textbook, + label: :recommend_textbook, + value: recommend_textbook, }, ] end diff --git a/app/views/reviews/_review.json.jbuilder b/app/views/reviews/_review.json.jbuilder index 740a5da6..97b7e3c1 100644 --- a/app/views/reviews/_review.json.jbuilder +++ b/app/views/reviews/_review.json.jbuilder @@ -16,5 +16,5 @@ json.extra_credit(review.offers_extra_credit.to_s) json.attendance(review.requires_attendance.to_s) json.midterm_count(review.midterm_count.to_s) json.final(review.read_attribute_before_type_cast(:final)) -json.textbook(review.reccomend_textbook.to_s) +json.textbook(review.recommend_textbook.to_s) json.comments(review.comments) diff --git a/db/migrate/20230611074937_rename_reccomend_textbook_column.rb b/db/migrate/20230611074937_rename_reccomend_textbook_column.rb new file mode 100644 index 00000000..89d2905d --- /dev/null +++ b/db/migrate/20230611074937_rename_reccomend_textbook_column.rb @@ -0,0 +1,5 @@ +class RenameReccomendTextbookColumn < ActiveRecord::Migration[7.0] + def change + rename_column :reviews, :reccomend_textbook, :recommend_textbook + end +end diff --git a/sorbet/rails-rbi/models/review.rbi b/sorbet/rails-rbi/models/review.rbi index 212bb8c2..a79ab12b 100644 --- a/sorbet/rails-rbi/models/review.rbi +++ b/sorbet/rails-rbi/models/review.rbi @@ -284,13 +284,13 @@ module Review::GeneratedAttributeMethods def overall?; end sig { returns(T.nilable(T::Boolean)) } - def reccomend_textbook; end + def recommend_textbook; end sig { params(value: T.nilable(T::Boolean)).void } - def reccomend_textbook=(value); end + def recommend_textbook=(value); end sig { returns(T::Boolean) } - def reccomend_textbook?; end + def recommend_textbook?; end sig { returns(T.nilable(Integer)) } def relationship_id; end diff --git a/test/factories.rb b/test/factories.rb index 8f43693e..805f9426 100644 --- a/test/factories.rb +++ b/test/factories.rb @@ -104,6 +104,6 @@ midterm_count { 2 } requires_attendance { false } final { "finals" } - reccomend_textbook { false } + recommend_textbook { false } end end diff --git a/test/helpers/course_helper_test.rb b/test/helpers/course_helper_test.rb index b7c35796..6d5b3f8f 100644 --- a/test/helpers/course_helper_test.rb +++ b/test/helpers/course_helper_test.rb @@ -135,10 +135,10 @@ class CourseHelperTest < ActionView::TestCase end end - describe "reccomend_textbook" do + describe "recommend_textbook" do it "returns a string if the value is true" do course_detail = { - label: :reccomend_textbook, + label: :recommend_textbook, value: true, } assert_equal("Recommends textbook", course_detail_label(course_detail)) @@ -146,7 +146,7 @@ class CourseHelperTest < ActionView::TestCase it "returns a string if the value is false" do course_detail = { - label: :reccomend_textbook, + label: :recommend_textbook, value: false, } assert_equal("Does not recommend textbook", course_detail_label(course_detail)) @@ -154,7 +154,7 @@ class CourseHelperTest < ActionView::TestCase it "returns a percentage if given a number" do course_detail = { - label: :reccomend_textbook, + label: :recommend_textbook, value: 65, } assert_equal("65% recommend the textbook", course_detail_label(course_detail)) diff --git a/test/models/review_test.rb b/test/models/review_test.rb index d4a08403..19f38787 100644 --- a/test/models/review_test.rb +++ b/test/models/review_test.rb @@ -98,7 +98,7 @@ class ReviewTest < ActiveSupport::TestCase midterm_count: 2, requires_attendance: false, final: "10th", - reccomend_textbook: false) + recommend_textbook: false) assert_equal( [ { @@ -118,7 +118,7 @@ class ReviewTest < ActiveSupport::TestCase value: "10th", }, { - label: :reccomend_textbook, + label: :recommend_textbook, value: false, }, ], diff --git a/test/system/reviews_system_test.rb b/test/system/reviews_system_test.rb index 590545ab..8da693cf 100644 --- a/test/system/reviews_system_test.rb +++ b/test/system/reviews_system_test.rb @@ -89,7 +89,7 @@ class ReviewsSystemTest < ApplicationSystemTestCase assert_not review.requires_attendance assert_equal 2, review.midterm_count assert_predicate review, :finals_week? - assert review.reccomend_textbook + assert review.recommend_textbook assert_not review.offers_extra_credit assert_equal review_text, review.comments @@ -166,7 +166,7 @@ class ReviewsSystemTest < ApplicationSystemTestCase assert_not review.requires_attendance assert_equal 2, review.midterm_count assert_predicate review, :finals_week? - assert review.reccomend_textbook + assert review.recommend_textbook assert_not review.offers_extra_credit assert_equal review_text, review.comments assert_equal "pending", review.status @@ -193,7 +193,7 @@ class ReviewsSystemTest < ApplicationSystemTestCase grade: "C+", has_group_project: true, requires_attendance: false, - reccomend_textbook: false, + recommend_textbook: false, midterm_count: 2, final: "finals", offers_extra_credit: true), Review) From abce7539a7b392861b389fa64fddf2503defeddc Mon Sep 17 00:00:00 2001 From: Subash R Date: Sun, 11 Jun 2023 21:37:49 +0530 Subject: [PATCH 2/3] Fix Lint error --- db/migrate/20230611074937_rename_reccomend_textbook_column.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/db/migrate/20230611074937_rename_reccomend_textbook_column.rb b/db/migrate/20230611074937_rename_reccomend_textbook_column.rb index 89d2905d..e3e5079e 100644 --- a/db/migrate/20230611074937_rename_reccomend_textbook_column.rb +++ b/db/migrate/20230611074937_rename_reccomend_textbook_column.rb @@ -1,5 +1,7 @@ +# frozen_string_literal: true + class RenameReccomendTextbookColumn < ActiveRecord::Migration[7.0] def change - rename_column :reviews, :reccomend_textbook, :recommend_textbook + rename_column(:reviews, :reccomend_textbook, :recommend_textbook) end end From 1995fbbd3cd8b1eab02f98224426ee1b04afcf06 Mon Sep 17 00:00:00 2001 From: Subash R Date: Sun, 11 Jun 2023 21:51:59 +0530 Subject: [PATCH 3/3] Update structure.sql --- db/structure.sql | 104 +++++++++++++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 39 deletions(-) diff --git a/db/structure.sql b/db/structure.sql index f17f7ba8..2639741a 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -130,43 +130,6 @@ CREATE TYPE public.weekly_time_type AS ENUM ( ); --- --- Name: is_graduate(character varying); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.is_graduate(num character varying) RETURNS boolean - LANGUAGE plpgsql IMMUTABLE STRICT - AS $$ - BEGIN - RETURN (num SIMILAR TO '%[2-9][0-9][0-9]%'); - END -$$; - - --- --- Name: strposrev(text, text); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.strposrev(instring text, insubstring text) RETURNS integer - LANGUAGE plpgsql IMMUTABLE STRICT COST 4 - AS $$ -DECLARE result INTEGER; -BEGIN - IF strpos(instring, insubstring) = 0 THEN - -- no match - result:=0; - ELSEIF length(insubstring)=1 THEN - -- add one to get the correct position from the left. - result:= 1 + length(instring) - strpos(reverse(instring), insubstring); - ELSE - -- add two minus the legth of the search string - result:= 2 + length(instring)- length(insubstring) - strpos(reverse(instring), reverse(insubstring)); - END IF; - RETURN result; -END; -$$; - - SET default_tablespace = ''; SET default_table_access_method = heap; @@ -927,6 +890,39 @@ CREATE SEQUENCE public.pay_webhooks_id_seq ALTER SEQUENCE public.pay_webhooks_id_seq OWNED BY public.pay_webhooks.id; +-- +-- Name: pg_search_documents; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.pg_search_documents ( + id bigint NOT NULL, + content text, + searchable_type character varying, + searchable_id bigint, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL +); + + +-- +-- Name: pg_search_documents_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.pg_search_documents_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pg_search_documents_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.pg_search_documents_id_seq OWNED BY public.pg_search_documents.id; + + -- -- Name: relationships; Type: TABLE; Schema: public; Owner: - -- @@ -974,9 +970,9 @@ CREATE TABLE public.reviews ( updated_at timestamp(6) without time zone NOT NULL, has_group_project boolean, requires_attendance boolean, + recommend_textbook boolean, midterm_count integer, final public.final_type, - reccomend_textbook boolean, grade public.grade_type, weekly_time public.weekly_time_type, offers_extra_credit boolean, @@ -1448,6 +1444,13 @@ ALTER TABLE ONLY public.pay_subscriptions ALTER COLUMN id SET DEFAULT nextval('p ALTER TABLE ONLY public.pay_webhooks ALTER COLUMN id SET DEFAULT nextval('public.pay_webhooks_id_seq'::regclass); +-- +-- Name: pg_search_documents id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.pg_search_documents ALTER COLUMN id SET DEFAULT nextval('public.pg_search_documents_id_seq'::regclass); + + -- -- Name: relationships id; Type: DEFAULT; Schema: public; Owner: - -- @@ -1679,6 +1682,14 @@ ALTER TABLE ONLY public.pay_webhooks ADD CONSTRAINT pay_webhooks_pkey PRIMARY KEY (id); +-- +-- Name: pg_search_documents pg_search_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.pg_search_documents + ADD CONSTRAINT pg_search_documents_pkey PRIMARY KEY (id); + + -- -- Name: relationships relationships_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2025,6 +2036,20 @@ CREATE UNIQUE INDEX index_pay_payment_methods_on_customer_id_and_processor_id ON CREATE UNIQUE INDEX index_pay_subscriptions_on_customer_id_and_processor_id ON public.pay_subscriptions USING btree (customer_id, processor_id); +-- +-- Name: index_pg_search_documents_on_searchable; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX index_pg_search_documents_on_searchable ON public.pg_search_documents USING btree (searchable_type, searchable_id); + + +-- +-- Name: index_pg_search_documents_on_to_tsvector_simple_content; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_pg_search_documents_on_to_tsvector_simple_content ON public.pg_search_documents USING gin (to_tsvector('simple'::regconfig, COALESCE(content, ''::text))); + + -- -- Name: index_relationships_on_section_id; Type: INDEX; Schema: public; Owner: - -- @@ -2457,6 +2482,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20230204030922'), ('20230228014101'), ('20230421233948'), -('20230430161016'); +('20230430161016'), +('20230611074937');