From 0135116c4bc5a7f3acc91135a63445165b530f88 Mon Sep 17 00:00:00 2001
From: kd00506 <kd00506@surrey.ac.uk>
Date: Fri, 11 Dec 2020 16:51:42 +0000
Subject: [PATCH] Little changes

---
 .generators                                   |   8 -
 .idea/.generators                             |   8 -
 .idea/.gitignore                              |   8 -
 .idea/.rakeTasks                              |   7 -
 .idea/Lab4.iml                                | 121 ---------
 .idea/dataSources.xml                         |  29 +--
 .../b59049a7-d0b0-41d6-952b-198ef8c20c3e.xml  | 234 ------------------
 .../dfe11bac-5364-4110-bc2f-ca5b3c541330.xml  | 229 -----------------
 .idea/inspectionProfiles/Project_Default.xml  |  21 --
 .idea/misc.xml                                |   4 -
 .idea/modules.xml                             |   2 +-
 Gemfile                                       |   2 +-
 Gemfile.lock                                  |   2 +-
 app/controllers/listview_controller.rb        |   5 +
 app/mailers/contact_mailer.rb                 |   2 +-
 app/views/home/homepage.html.haml             |   1 +
 16 files changed, 16 insertions(+), 667 deletions(-)
 delete mode 100644 .generators
 delete mode 100644 .idea/.generators
 delete mode 100644 .idea/.gitignore
 delete mode 100644 .idea/.rakeTasks
 delete mode 100644 .idea/Lab4.iml
 delete mode 100644 .idea/dataSources/b59049a7-d0b0-41d6-952b-198ef8c20c3e.xml
 delete mode 100644 .idea/dataSources/dfe11bac-5364-4110-bc2f-ca5b3c541330.xml
 delete mode 100644 .idea/inspectionProfiles/Project_Default.xml
 delete mode 100644 .idea/misc.xml

diff --git a/.generators b/.generators
deleted file mode 100644
index a65751d..0000000
--- a/.generators
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Settings><!--This file was automatically generated by Ruby plugin.
-You are allowed to: 
-1. Reorder generators
-2. Remove generators
-3. Add installed generators
-To add new installed generators automatically delete this file and reload the project.
---><GeneratorsGroup><Generator name="active_record:application_record" /><Generator name="application_record" /><Generator name="assets" /><Generator name="channel" /><Generator name="coffee:assets" /><Generator name="controller" /><Generator name="generator" /><Generator name="helper" /><Generator name="integration_test" /><Generator name="jbuilder" /><Generator name="job" /><Generator name="js:assets" /><Generator name="mailer" /><Generator name="migration" /><Generator name="model" /><Generator name="resource" /><Generator name="scaffold" /><Generator name="scaffold_controller" /><Generator name="system_test" /><Generator name="task" /><Generator name="test_unit:generator" /><Generator name="test_unit:plugin" /></GeneratorsGroup></Settings>
diff --git a/.idea/.generators b/.idea/.generators
deleted file mode 100644
index 8e70c27..0000000
--- a/.idea/.generators
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Settings><!--This file was automatically generated by Ruby plugin.
-You are allowed to: 
-1. Reorder generators
-2. Remove generators
-3. Add installed generators
-To add new installed generators automatically delete this file and reload the project.
---><GeneratorsGroup><Generator name="active_record:application_record" /><Generator name="application_record" /><Generator name="assets" /><Generator name="channel" /><Generator name="coffee:assets" /><Generator name="controller" /><Generator name="erb:controller" /><Generator name="erb:mailer" /><Generator name="erb:scaffold" /><Generator name="generator" /><Generator name="haml:application_layout" /><Generator name="helper" /><Generator name="integration_test" /><Generator name="jbuilder" /><Generator name="job" /><Generator name="js:assets" /><Generator name="mailer" /><Generator name="migration" /><Generator name="model" /><Generator name="resource" /><Generator name="scaffold" /><Generator name="scaffold_controller" /><Generator name="system_test" /><Generator name="task" /><Generator name="test_unit:generator" /><Generator name="test_unit:plugin" /></GeneratorsGroup></Settings>
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index e157179..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Datasource local storage ignored files
-/../../../../../../../:\Users\kiera\Documents\COM2025WAD\Lab4\.idea/dataSources/
-/dataSources.local.xml
-# Editor-based HTTP Client requests
-/httpRequests/
diff --git a/.idea/.rakeTasks b/.idea/.rakeTasks
deleted file mode 100644
index 73e9c0d..0000000
--- a/.idea/.rakeTasks
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Settings><!--This file was automatically generated by Ruby plugin.
-You are allowed to: 
-1. Remove rake task
-2. Add existing rake tasks
-To add existing rake tasks automatically delete this file and reload the project.
---><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="List versions of all Rails frameworks and the environment" fullCmd="about" taksId="about" /><RakeGroup description="" fullCmd="" taksId="active_storage"><RakeTask description="Copy over the migration needed to the application" fullCmd="active_storage:install" taksId="install" /><RakeGroup description="" fullCmd="" taksId="install"><RakeTask description="" fullCmd="active_storage:install:migrations" taksId="migrations" /></RakeGroup></RakeGroup><RakeGroup description="" fullCmd="" taksId="app"><RakeTask description="Applies the template supplied by LOCATION=(/path/to/template) or URL" fullCmd="app:template" taksId="template" /><RakeTask description="Update configs and some other initially generated files (or use just update:configs or update:bin)" fullCmd="app:update" taksId="update" /><RakeGroup description="" fullCmd="" taksId="templates"><RakeTask description="" fullCmd="app:templates:copy" taksId="copy" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="update"><RakeTask description="" fullCmd="app:update:bin" taksId="bin" /><RakeTask description="" fullCmd="app:update:configs" taksId="configs" /><RakeTask description="" fullCmd="app:update:upgrade_guide_info" taksId="upgrade_guide_info" /></RakeGroup></RakeGroup><RakeGroup description="" fullCmd="" taksId="assets"><RakeTask description="Remove old compiled assets" fullCmd="assets:clean[keep]" taksId="clean[keep]" /><RakeTask description="Remove compiled assets" fullCmd="assets:clobber" taksId="clobber" /><RakeTask description="Load asset compile environment" fullCmd="assets:environment" taksId="environment" /><RakeTask description="Compile all the assets named in config.assets.precompile" fullCmd="assets:precompile" taksId="precompile" /><RakeTask description="" fullCmd="assets:clean" taksId="clean" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="cache_digests"><RakeTask description="Lookup first-level dependencies for TEMPLATE (like messages/show or comments/_comment.html)" fullCmd="cache_digests:dependencies" taksId="dependencies" /><RakeTask description="Lookup nested dependencies for TEMPLATE (like messages/show or comments/_comment.html)" fullCmd="cache_digests:nested_dependencies" taksId="nested_dependencies" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="db"><RakeTask description="Creates the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:create:all to create all databases in the config). Without RAILS_ENV or when RAILS_ENV is development, it defaults to creating the development and test databases" fullCmd="db:create" taksId="create" /><RakeTask description="Drops the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:drop:all to drop all databases in the config). Without RAILS_ENV or when RAILS_ENV is development, it defaults to dropping the development and test databases" fullCmd="db:drop" taksId="drop" /><RakeGroup description="" fullCmd="" taksId="environment"><RakeTask description="Set the environment value for the database" fullCmd="db:environment:set" taksId="set" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="fixtures"><RakeTask description="Loads fixtures into the current environment's database" fullCmd="db:fixtures:load" taksId="load" /><RakeTask description="" fullCmd="db:fixtures:identify" taksId="identify" /></RakeGroup><RakeTask description="Migrate the database (options: VERSION=x, VERBOSE=false, SCOPE=blog)" fullCmd="db:migrate" taksId="migrate" /><RakeGroup description="" fullCmd="" taksId="migrate"><RakeTask description="Display status of migrations" fullCmd="db:migrate:status" taksId="status" /><RakeTask description="" fullCmd="db:migrate:down" taksId="down" /><RakeTask description="" fullCmd="db:migrate:redo" taksId="redo" /><RakeTask description="" fullCmd="db:migrate:reset" taksId="reset" /><RakeTask description="" fullCmd="db:migrate:up" taksId="up" /></RakeGroup><RakeTask description="Rolls the schema back to the previous version (specify steps w/ STEP=n)" fullCmd="db:rollback" taksId="rollback" /><RakeGroup description="" fullCmd="" taksId="schema"><RakeGroup description="" fullCmd="" taksId="cache"><RakeTask description="Clears a db/schema_cache.yml file" fullCmd="db:schema:cache:clear" taksId="clear" /><RakeTask description="Creates a db/schema_cache.yml file" fullCmd="db:schema:cache:dump" taksId="dump" /></RakeGroup><RakeTask description="Creates a db/schema.rb file that is portable against any DB supported by Active Record" fullCmd="db:schema:dump" taksId="dump" /><RakeTask description="Loads a schema.rb file into the database" fullCmd="db:schema:load" taksId="load" /><RakeTask description="" fullCmd="db:schema:load_if_ruby" taksId="load_if_ruby" /></RakeGroup><RakeTask description="Loads the seed data from db/seeds.rb" fullCmd="db:seed" taksId="seed" /><RakeTask description="Creates the database, loads the schema, and initializes with the seed data (use db:reset to also drop the database first)" fullCmd="db:setup" taksId="setup" /><RakeGroup description="" fullCmd="" taksId="structure"><RakeTask description="Dumps the database structure to db/structure.sql" fullCmd="db:structure:dump" taksId="dump" /><RakeTask description="Recreates the databases from the structure.sql file" fullCmd="db:structure:load" taksId="load" /><RakeTask description="" fullCmd="db:structure:load_if_sql" taksId="load_if_sql" /></RakeGroup><RakeTask description="Retrieves the current schema version number" fullCmd="db:version" taksId="version" /><RakeTask description="" fullCmd="db:_dump" taksId="_dump" /><RakeTask description="" fullCmd="db:abort_if_pending_migrations" taksId="abort_if_pending_migrations" /><RakeTask description="" fullCmd="db:charset" taksId="charset" /><RakeTask description="" fullCmd="db:check_protected_environments" taksId="check_protected_environments" /><RakeTask description="" fullCmd="db:collation" taksId="collation" /><RakeGroup description="" fullCmd="" taksId="create"><RakeTask description="" fullCmd="db:create:all" taksId="all" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="drop"><RakeTask description="" fullCmd="db:drop:_unsafe" taksId="_unsafe" /><RakeTask description="" fullCmd="db:drop:all" taksId="all" /></RakeGroup><RakeTask description="" fullCmd="db:forward" taksId="forward" /><RakeTask description="" fullCmd="db:load_config" taksId="load_config" /><RakeTask description="" fullCmd="db:purge" taksId="purge" /><RakeGroup description="" fullCmd="" taksId="purge"><RakeTask description="" fullCmd="db:purge:all" taksId="all" /></RakeGroup><RakeTask description="" fullCmd="db:reset" taksId="reset" /><RakeGroup description="" fullCmd="" taksId="test"><RakeTask description="" fullCmd="db:test:load" taksId="load" /><RakeTask description="" fullCmd="db:test:load_schema" taksId="load_schema" /><RakeTask description="" fullCmd="db:test:load_structure" taksId="load_structure" /><RakeTask description="" fullCmd="db:test:prepare" taksId="prepare" /><RakeTask description="" fullCmd="db:test:purge" taksId="purge" /></RakeGroup></RakeGroup><RakeGroup description="" fullCmd="" taksId="dev"><RakeTask description="Toggle development mode caching on/off" fullCmd="dev:cache" taksId="cache" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="haml"><RakeTask description="Convert html.erb to html.haml each file in app/views" fullCmd="haml:erb2haml" taksId="erb2haml" /></RakeGroup><RakeTask description="Print out all defined initializers in the order they are invoked by Rails" fullCmd="initializers" taksId="initializers" /><RakeGroup description="" fullCmd="" taksId="log"><RakeTask description="Truncates all/specified *.log files in log/ to zero bytes (specify which logs with LOGS=test,development)" fullCmd="log:clear" taksId="clear" /></RakeGroup><RakeTask description="Prints out your Rack middleware stack" fullCmd="middleware" taksId="middleware" /><RakeTask description="Enumerate all annotations (use notes:optimize, :fixme, :todo for focus)" fullCmd="notes" taksId="notes" /><RakeGroup description="" fullCmd="" taksId="notes"><RakeTask description="Enumerate a custom annotation, specify with ANNOTATION=CUSTOM" fullCmd="notes:custom" taksId="custom" /><RakeTask description="" fullCmd="notes:fixme" taksId="fixme" /><RakeTask description="" fullCmd="notes:optimize" taksId="optimize" /><RakeTask description="" fullCmd="notes:todo" taksId="todo" /></RakeGroup><RakeTask description="Restart app by touching tmp/restart.txt" fullCmd="restart" taksId="restart" /><RakeTask description="Print out all defined routes in match order, with names" fullCmd="routes" taksId="routes" /><RakeTask description="Generate a cryptographically secure secret key (this is typically used to generate a secret for cookie sessions)" fullCmd="secret" taksId="secret" /><RakeTask description="Report code statistics (KLOCs, etc) from the application or engine" fullCmd="stats" taksId="stats" /><RakeTask description="Runs all tests in test folder except system ones" fullCmd="test" taksId="test" /><RakeGroup description="" fullCmd="" taksId="test"><RakeTask description="Run tests quickly, but also reset db" fullCmd="test:db" taksId="db" /><RakeTask description="Run system tests only" fullCmd="test:system" taksId="system" /><RakeTask description="" fullCmd="test:controllers" taksId="controllers" /><RakeTask description="" fullCmd="test:functionals" taksId="functionals" /><RakeTask description="" fullCmd="test:generators" taksId="generators" /><RakeTask description="" fullCmd="test:helpers" taksId="helpers" /><RakeTask description="" fullCmd="test:integration" taksId="integration" /><RakeTask description="" fullCmd="test:jobs" taksId="jobs" /><RakeTask description="" fullCmd="test:mailers" taksId="mailers" /><RakeTask description="" fullCmd="test:models" taksId="models" /><RakeTask description="" fullCmd="test:prepare" taksId="prepare" /><RakeTask description="" fullCmd="test:run" taksId="run" /><RakeTask description="" fullCmd="test:units" taksId="units" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="time"><RakeTask description="List all time zones, list by two-letter country code (`rails time:zones[US]`), or list by UTC offset (`rails time:zones[-8]`)" fullCmd="time:zones[country_or_offset]" taksId="zones[country_or_offset]" /><RakeTask description="" fullCmd="time:zones" taksId="zones" /><RakeGroup description="" fullCmd="" taksId="zones"><RakeTask description="" fullCmd="time:zones:all" taksId="all" /><RakeTask description="" fullCmd="time:zones:local" taksId="local" /><RakeTask description="" fullCmd="time:zones:us" taksId="us" /></RakeGroup></RakeGroup><RakeGroup description="" fullCmd="" taksId="tmp"><RakeTask description="Clear cache, socket and screenshot files from tmp/ (narrow w/ tmp:cache:clear, tmp:sockets:clear, tmp:screenshots:clear)" fullCmd="tmp:clear" taksId="clear" /><RakeTask description="Creates tmp directories for cache, sockets, and pids" fullCmd="tmp:create" taksId="create" /><RakeGroup description="" fullCmd="" taksId="cache"><RakeTask description="" fullCmd="tmp:cache:clear" taksId="clear" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="pids"><RakeTask description="" fullCmd="tmp:pids:clear" taksId="clear" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="screenshots"><RakeTask description="" fullCmd="tmp:screenshots:clear" taksId="clear" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="sockets"><RakeTask description="" fullCmd="tmp:sockets:clear" taksId="clear" /></RakeGroup></RakeGroup><RakeGroup description="" fullCmd="" taksId="yarn"><RakeTask description="Install all JavaScript dependencies as specified via Yarn" fullCmd="yarn:install" taksId="install" /></RakeGroup><RakeTask description="" fullCmd="default" taksId="default" /><RakeTask description="" fullCmd="environment" taksId="environment" /><RakeGroup description="" fullCmd="" taksId="railties"><RakeGroup description="" fullCmd="" taksId="install"><RakeTask description="" fullCmd="railties:install:migrations" taksId="migrations" /></RakeGroup></RakeGroup><RakeTask description="" fullCmd="tmp" taksId="tmp" /><RakeTask description="" fullCmd="tmp/cache" taksId="tmp/cache" /><RakeTask description="" fullCmd="tmp/cache/assets" taksId="tmp/cache/assets" /><RakeTask description="" fullCmd="tmp/pids" taksId="tmp/pids" /><RakeTask description="" fullCmd="tmp/sockets" taksId="tmp/sockets" /><RakeGroup description="" fullCmd="" taksId="webdrivers"><RakeGroup description="" fullCmd="" taksId="chromedriver"><RakeTask description="" fullCmd="webdrivers:chromedriver:remove" taksId="remove" /><RakeTask description="" fullCmd="webdrivers:chromedriver:update" taksId="update" /><RakeTask description="" fullCmd="webdrivers:chromedriver:version" taksId="version" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="edgedriver"><RakeTask description="" fullCmd="webdrivers:edgedriver:remove" taksId="remove" /><RakeTask description="" fullCmd="webdrivers:edgedriver:update" taksId="update" /><RakeTask description="" fullCmd="webdrivers:edgedriver:version" taksId="version" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="geckodriver"><RakeTask description="" fullCmd="webdrivers:geckodriver:remove" taksId="remove" /><RakeTask description="" fullCmd="webdrivers:geckodriver:update" taksId="update" /><RakeTask description="" fullCmd="webdrivers:geckodriver:version" taksId="version" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="iedriver"><RakeTask description="" fullCmd="webdrivers:iedriver:remove" taksId="remove" /><RakeTask description="" fullCmd="webdrivers:iedriver:update" taksId="update" /><RakeTask description="" fullCmd="webdrivers:iedriver:version" taksId="version" /></RakeGroup></RakeGroup></RakeGroup></Settings>
diff --git a/.idea/Lab4.iml b/.idea/Lab4.iml
deleted file mode 100644
index 824c5d4..0000000
--- a/.idea/Lab4.iml
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="RUBY_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="RailsFacetType" name="Ruby on Rails">
-      <configuration>
-        <RAILS_FACET_CONFIG_ID NAME="RAILS_FACET_SUPPORT_REMOVED" VALUE="false" />
-        <RAILS_FACET_CONFIG_ID NAME="RAILS_TESTS_SOURCES_PATCHED" VALUE="true" />
-        <RAILS_FACET_CONFIG_ID NAME="RAILS_FACET_APPLICATION_ROOT" VALUE="$MODULE_DIR$" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="ModuleRunConfigurationManager">
-    <shared />
-  </component>
-  <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/.bundle" />
-      <excludeFolder url="file://$MODULE_DIR$/components" />
-      <excludeFolder url="file://$MODULE_DIR$/log" />
-      <excludeFolder url="file://$MODULE_DIR$/public/packs" />
-      <excludeFolder url="file://$MODULE_DIR$/public/system" />
-      <excludeFolder url="file://$MODULE_DIR$/tmp" />
-      <excludeFolder url="file://$MODULE_DIR$/vendor/bundle" />
-      <excludeFolder url="file://$MODULE_DIR$/vendor/cache" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" scope="PROVIDED" name="actioncable (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="actionmailer (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="actionpack (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="actionview (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="activejob (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="activemodel (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="activerecord (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="activestorage (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="activesupport (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="addressable (v2.7.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="arel (v9.0.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="autoprefixer-rails (v10.0.1.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="bindex (v0.8.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="bootsnap (v1.4.8, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="bootstrap-sass (v3.3.7, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="builder (v3.2.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="bundler (v2.1.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="byebug (v11.1.3, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="capybara (v3.33.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="childprocess (v3.0.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="coffee-rails (v4.2.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="coffee-script (v2.4.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="coffee-script-source (v1.12.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.7, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="crass (v1.0.6, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="duktape (v2.3.0.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="erubi (v1.9.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="erubis (v2.7.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="execjs (v2.7.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="ffi (v1.13.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="globalid (v0.4.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="haml (v5.2.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="haml-rails (v2.0.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="html2haml (v2.2.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="i18n (v1.8.5, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="jbuilder (v2.10.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="jquery-rails (v4.4.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="loofah (v2.7.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="mail (v2.7.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="marcel (v0.3.3, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="method_source (v1.0.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="mimemagic (v0.3.5, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="mini_mime (v1.0.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="mini_portile2 (v2.4.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="modernizr-rails (v2.7.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="msgpack (v1.3.3, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="nio4r (v2.5.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.10.10, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="public_suffix (v4.0.6, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="puma (v3.12.6, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rack (v2.2.3, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rack-test (v1.1.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rails (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rails-dom-testing (v2.0.3, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.3.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="railties (v5.2.4.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rb-fsevent (v0.10.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rb-inotify (v0.10.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v1.8.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="ruby_parser (v3.15.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="rubyzip (v2.3.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="sass (v3.7.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="sass-listen (v4.0.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="sass-rails (v5.1.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="selenium-webdriver (v3.142.7, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="sexp_processor (v4.15.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="sprockets (v3.7.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="sprockets-rails (v3.2.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="sqlite3 (v1.4.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="temple (v0.8.2, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="thor (v1.0.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.6, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="tilt (v2.0.10, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="turbolinks (v5.2.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="turbolinks-source (v5.2.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.2.7, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="tzinfo-data (v1.2020.4, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="uglifier (v4.2.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="web-console (v3.7.0, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="webdrivers (v4.4.1, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="websocket-driver (v0.7.3, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.5, ruby-2.5.8-p224) [gem]" level="application" />
-    <orderEntry type="library" scope="PROVIDED" name="xpath (v3.2.0, ruby-2.5.8-p224) [gem]" level="application" />
-  </component>
-  <component name="RModuleSettingsStorage">
-    <LOAD_PATH number="0" />
-    <I18N_FOLDERS number="1" string0="$MODULE_DIR$/config/locales" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
index f73bc99..3c8c450 100644
--- a/.idea/dataSources.xml
+++ b/.idea/dataSources.xml
@@ -1,40 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
-    <data-source source="LOCAL" name="Rails: development" uuid="b59049a7-d0b0-41d6-952b-198ef8c20c3e">
+    <data-source source="LOCAL" name="Rails Coursework: test" uuid="6d0113cf-13c6-4c25-8429-df790fd1e7b1">
       <driver-ref>sqlite.xerial</driver-ref>
       <synchronize>true</synchronize>
       <imported>true</imported>
       <remarks>$PROJECT_DIR$/config/database.yml</remarks>
       <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
-      <jdbc-url>jdbc:sqlite:C:\Users\kiera\Documents\COM2025WAD\Coursework\db\development.sqlite3</jdbc-url>
+      <jdbc-url>jdbc:sqlite:C:\Users\kiera\OneDrive - University of Surrey\Documents\Uni\COM2025WAD\Coursework\db\test.sqlite3</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
     </data-source>
-    <data-source source="LOCAL" name="test" uuid="dfe11bac-5364-4110-bc2f-ca5b3c541330">
-      <driver-ref>sqlite.xerial</driver-ref>
-      <synchronize>true</synchronize>
-      <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
-      <jdbc-url>jdbc:sqlite:C:\Users\kiera\Documents\COM2025WAD\Coursework\db\test.sqlite3</jdbc-url>
-      <libraries>
-        <library>
-          <url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.31.1/sqlite-jdbc-3.31.1.jar</url>
-        </library>
-      </libraries>
-    </data-source>
-    <data-source source="LOCAL" name="Rails Lab4: test" uuid="7b8d0096-5fb7-44d2-9ddb-c8639886d44f">
-      <driver-ref>sqlite.xerial</driver-ref>
-      <synchronize>true</synchronize>
-      <imported>true</imported>
-      <remarks>$PROJECT_DIR$/config/database.yml</remarks>
-      <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
-      <jdbc-url>jdbc:sqlite:C:\Users\kiera\Documents\COM2025WAD\Coursework\db\test.sqlite3</jdbc-url>
-    </data-source>
-    <data-source source="LOCAL" name="Rails Lab4: development" uuid="bf80988c-35f0-4f8b-996b-ed02880324df">
+    <data-source source="LOCAL" name="Rails Coursework: development" uuid="06db8897-9fec-4ada-8983-07137cafc416">
       <driver-ref>sqlite.xerial</driver-ref>
       <synchronize>true</synchronize>
       <imported>true</imported>
       <remarks>$PROJECT_DIR$/config/database.yml</remarks>
       <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
-      <jdbc-url>jdbc:sqlite:C:\Users\kiera\Documents\COM2025WAD\Coursework\db\development.sqlite3</jdbc-url>
+      <jdbc-url>jdbc:sqlite:C:\Users\kiera\OneDrive - University of Surrey\Documents\Uni\COM2025WAD\Coursework\db\development.sqlite3</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
     </data-source>
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/dataSources/b59049a7-d0b0-41d6-952b-198ef8c20c3e.xml b/.idea/dataSources/b59049a7-d0b0-41d6-952b-198ef8c20c3e.xml
deleted file mode 100644
index ffca81e..0000000
--- a/.idea/dataSources/b59049a7-d0b0-41d6-952b-198ef8c20c3e.xml
+++ /dev/null
@@ -1,234 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dataSource name="Rails: development">
-  <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.19">
-    <root id="1">
-      <ServerVersion>3.31.1</ServerVersion>
-    </root>
-    <schema id="2" parent="1" name="main">
-      <Current>1</Current>
-    </schema>
-    <collation id="3" parent="1" name="BINARY"/>
-    <collation id="4" parent="1" name="NOCASE"/>
-    <collation id="5" parent="1" name="RTRIM"/>
-    <table id="6" parent="2" name="ar_internal_metadata"/>
-    <table id="7" parent="2" name="lists"/>
-    <table id="8" parent="2" name="products"/>
-    <table id="9" parent="2" name="schema_migrations"/>
-    <table id="10" parent="2" name="sqlite_master">
-      <System>1</System>
-    </table>
-    <table id="11" parent="2" name="sqlite_sequence">
-      <System>1</System>
-    </table>
-    <table id="12" parent="2" name="users"/>
-    <column id="13" parent="6" name="key">
-      <Position>1</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="14" parent="6" name="value">
-      <Position>2</Position>
-      <DataType>varchar|0s</DataType>
-    </column>
-    <column id="15" parent="6" name="created_at">
-      <Position>3</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="16" parent="6" name="updated_at">
-      <Position>4</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="17" parent="6" name="sqlite_autoindex_ar_internal_metadata_1">
-      <NameSurrogate>1</NameSurrogate>
-      <ColNames>key</ColNames>
-      <ColumnCollations></ColumnCollations>
-      <Unique>1</Unique>
-    </index>
-    <key id="18" parent="6">
-      <ColNames>key</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>sqlite_autoindex_ar_internal_metadata_1</UnderlyingIndexName>
-    </key>
-    <column id="19" parent="7" name="id">
-      <Position>1</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-      <SequenceIdentity>null</SequenceIdentity>
-    </column>
-    <column id="20" parent="7" name="name">
-      <Position>2</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="21" parent="7" name="user_id">
-      <Position>3</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="22" parent="7" name="created_at">
-      <Position>4</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="23" parent="7" name="updated_at">
-      <Position>5</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="24" parent="7" name="index_lists_on_id">
-      <ColNames>id</ColNames>
-      <ColumnCollations></ColumnCollations>
-    </index>
-    <key id="25" parent="7">
-      <ColNames>id</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>index_lists_on_id</UnderlyingIndexName>
-    </key>
-    <foreign-key id="26" parent="7" name="fk_rails_d6cf4279f7">
-      <ColNames>user_id</ColNames>
-      <RefTableName>users</RefTableName>
-      <RefColNames>id</RefColNames>
-    </foreign-key>
-    <column id="27" parent="8" name="id">
-      <Position>1</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-      <SequenceIdentity>null</SequenceIdentity>
-    </column>
-    <column id="28" parent="8" name="name">
-      <Position>2</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="29" parent="8" name="quantity">
-      <Position>3</Position>
-      <DataType>integer|0s</DataType>
-    </column>
-    <column id="30" parent="8" name="price">
-      <Position>4</Position>
-      <DataType>float|0s</DataType>
-    </column>
-    <column id="31" parent="8" name="acquired">
-      <Position>5</Position>
-      <DataType>boolean|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="32" parent="8" name="list_id">
-      <Position>6</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="33" parent="8" name="created_at">
-      <Position>7</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="34" parent="8" name="updated_at">
-      <Position>8</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="35" parent="8" name="index_products_on_id">
-      <ColNames>id</ColNames>
-      <ColumnCollations></ColumnCollations>
-    </index>
-    <index id="36" parent="8" name="index_products_on_list_id">
-      <ColNames>list_id</ColNames>
-      <ColumnCollations></ColumnCollations>
-    </index>
-    <key id="37" parent="8">
-      <ColNames>id</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>index_products_on_id</UnderlyingIndexName>
-    </key>
-    <foreign-key id="38" parent="8" name="fk_rails_71c961290f">
-      <ColNames>list_id</ColNames>
-      <RefTableName>lists</RefTableName>
-      <RefColNames>id</RefColNames>
-    </foreign-key>
-    <column id="39" parent="9" name="version">
-      <Position>1</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="40" parent="9" name="sqlite_autoindex_schema_migrations_1">
-      <NameSurrogate>1</NameSurrogate>
-      <ColNames>version</ColNames>
-      <ColumnCollations></ColumnCollations>
-      <Unique>1</Unique>
-    </index>
-    <key id="41" parent="9">
-      <ColNames>version</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>sqlite_autoindex_schema_migrations_1</UnderlyingIndexName>
-    </key>
-    <column id="42" parent="10" name="type">
-      <Position>1</Position>
-      <DataType>text|0s</DataType>
-    </column>
-    <column id="43" parent="10" name="name">
-      <Position>2</Position>
-      <DataType>text|0s</DataType>
-    </column>
-    <column id="44" parent="10" name="tbl_name">
-      <Position>3</Position>
-      <DataType>text|0s</DataType>
-    </column>
-    <column id="45" parent="10" name="rootpage">
-      <Position>4</Position>
-      <DataType>int|0s</DataType>
-    </column>
-    <column id="46" parent="10" name="sql">
-      <Position>5</Position>
-      <DataType>text|0s</DataType>
-    </column>
-    <column id="47" parent="11" name="name">
-      <Position>1</Position>
-    </column>
-    <column id="48" parent="11" name="seq">
-      <Position>2</Position>
-    </column>
-    <column id="49" parent="12" name="id">
-      <Position>1</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-      <SequenceIdentity>null</SequenceIdentity>
-    </column>
-    <column id="50" parent="12" name="email">
-      <Position>2</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="51" parent="12" name="name">
-      <Position>3</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="52" parent="12" name="password">
-      <Position>4</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="53" parent="12" name="created_at">
-      <Position>5</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="54" parent="12" name="updated_at">
-      <Position>6</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="55" parent="12" name="index_users_on_id">
-      <ColNames>id</ColNames>
-      <ColumnCollations></ColumnCollations>
-    </index>
-    <key id="56" parent="12">
-      <ColNames>id</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>index_users_on_id</UnderlyingIndexName>
-    </key>
-  </database-model>
-</dataSource>
\ No newline at end of file
diff --git a/.idea/dataSources/dfe11bac-5364-4110-bc2f-ca5b3c541330.xml b/.idea/dataSources/dfe11bac-5364-4110-bc2f-ca5b3c541330.xml
deleted file mode 100644
index 612b1c4..0000000
--- a/.idea/dataSources/dfe11bac-5364-4110-bc2f-ca5b3c541330.xml
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dataSource name="test">
-  <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.19">
-    <root id="1">
-      <ServerVersion>3.31.1</ServerVersion>
-    </root>
-    <schema id="2" parent="1" name="main">
-      <Current>1</Current>
-    </schema>
-    <collation id="3" parent="1" name="BINARY"/>
-    <collation id="4" parent="1" name="NOCASE"/>
-    <collation id="5" parent="1" name="RTRIM"/>
-    <table id="6" parent="2" name="ar_internal_metadata"/>
-    <table id="7" parent="2" name="lists"/>
-    <table id="8" parent="2" name="products"/>
-    <table id="9" parent="2" name="schema_migrations"/>
-    <table id="10" parent="2" name="sqlite_master">
-      <System>1</System>
-    </table>
-    <table id="11" parent="2" name="sqlite_sequence">
-      <System>1</System>
-    </table>
-    <table id="12" parent="2" name="users"/>
-    <column id="13" parent="6" name="key">
-      <Position>1</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="14" parent="6" name="value">
-      <Position>2</Position>
-      <DataType>varchar|0s</DataType>
-    </column>
-    <column id="15" parent="6" name="created_at">
-      <Position>3</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="16" parent="6" name="updated_at">
-      <Position>4</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="17" parent="6" name="sqlite_autoindex_ar_internal_metadata_1">
-      <NameSurrogate>1</NameSurrogate>
-      <ColNames>key</ColNames>
-      <ColumnCollations></ColumnCollations>
-      <Unique>1</Unique>
-    </index>
-    <key id="18" parent="6">
-      <ColNames>key</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>sqlite_autoindex_ar_internal_metadata_1</UnderlyingIndexName>
-    </key>
-    <column id="19" parent="7" name="id">
-      <Position>1</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-      <SequenceIdentity>null</SequenceIdentity>
-    </column>
-    <column id="20" parent="7" name="name">
-      <Position>2</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="21" parent="7" name="user_id">
-      <Position>3</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="22" parent="7" name="created_at">
-      <Position>4</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="23" parent="7" name="updated_at">
-      <Position>5</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="24" parent="7" name="index_lists_on_id">
-      <ColNames>id</ColNames>
-      <ColumnCollations></ColumnCollations>
-    </index>
-    <key id="25" parent="7">
-      <ColNames>id</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>index_lists_on_id</UnderlyingIndexName>
-    </key>
-    <foreign-key id="26" parent="7" name="fk_rails_d6cf4279f7">
-      <ColNames>user_id</ColNames>
-      <RefTableName>users</RefTableName>
-      <RefColNames>id</RefColNames>
-    </foreign-key>
-    <column id="27" parent="8" name="id">
-      <Position>1</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-      <SequenceIdentity>null</SequenceIdentity>
-    </column>
-    <column id="28" parent="8" name="name">
-      <Position>2</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="29" parent="8" name="quantity">
-      <Position>3</Position>
-      <DataType>integer|0s</DataType>
-    </column>
-    <column id="30" parent="8" name="price">
-      <Position>4</Position>
-      <DataType>float|0s</DataType>
-    </column>
-    <column id="31" parent="8" name="acquired">
-      <Position>5</Position>
-      <DataType>boolean|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="32" parent="8" name="list_id">
-      <Position>6</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="33" parent="8" name="created_at">
-      <Position>7</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="34" parent="8" name="updated_at">
-      <Position>8</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="35" parent="8" name="index_products_on_list_id">
-      <ColNames>list_id</ColNames>
-      <ColumnCollations></ColumnCollations>
-    </index>
-    <key id="36" parent="8">
-      <ColNames>id</ColNames>
-      <Primary>1</Primary>
-    </key>
-    <foreign-key id="37" parent="8" name="fk_rails_71c961290f">
-      <ColNames>list_id</ColNames>
-      <RefTableName>lists</RefTableName>
-      <RefColNames>id</RefColNames>
-    </foreign-key>
-    <column id="38" parent="9" name="version">
-      <Position>1</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="39" parent="9" name="sqlite_autoindex_schema_migrations_1">
-      <NameSurrogate>1</NameSurrogate>
-      <ColNames>version</ColNames>
-      <ColumnCollations></ColumnCollations>
-      <Unique>1</Unique>
-    </index>
-    <key id="40" parent="9">
-      <ColNames>version</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>sqlite_autoindex_schema_migrations_1</UnderlyingIndexName>
-    </key>
-    <column id="41" parent="10" name="type">
-      <Position>1</Position>
-      <DataType>text|0s</DataType>
-    </column>
-    <column id="42" parent="10" name="name">
-      <Position>2</Position>
-      <DataType>text|0s</DataType>
-    </column>
-    <column id="43" parent="10" name="tbl_name">
-      <Position>3</Position>
-      <DataType>text|0s</DataType>
-    </column>
-    <column id="44" parent="10" name="rootpage">
-      <Position>4</Position>
-      <DataType>int|0s</DataType>
-    </column>
-    <column id="45" parent="10" name="sql">
-      <Position>5</Position>
-      <DataType>text|0s</DataType>
-    </column>
-    <column id="46" parent="11" name="name">
-      <Position>1</Position>
-    </column>
-    <column id="47" parent="11" name="seq">
-      <Position>2</Position>
-    </column>
-    <column id="48" parent="12" name="id">
-      <Position>1</Position>
-      <DataType>integer|0s</DataType>
-      <NotNull>1</NotNull>
-      <SequenceIdentity>null</SequenceIdentity>
-    </column>
-    <column id="49" parent="12" name="email">
-      <Position>2</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="50" parent="12" name="name">
-      <Position>3</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="51" parent="12" name="password">
-      <Position>4</Position>
-      <DataType>varchar|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="52" parent="12" name="created_at">
-      <Position>5</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <column id="53" parent="12" name="updated_at">
-      <Position>6</Position>
-      <DataType>datetime|0s</DataType>
-      <NotNull>1</NotNull>
-    </column>
-    <index id="54" parent="12" name="index_users_on_id">
-      <ColNames>id</ColNames>
-      <ColumnCollations></ColumnCollations>
-    </index>
-    <key id="55" parent="12">
-      <ColNames>id</ColNames>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>index_users_on_id</UnderlyingIndexName>
-    </key>
-  </database-model>
-</dataSource>
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 8a190e3..0000000
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<component name="InspectionProjectProfileManager">
-  <profile version="1.0">
-    <option name="myName" value="Project Default" />
-    <inspection_tool class="HtmlUnknownTag" enabled="true" level="WARNING" enabled_by_default="true">
-      <option name="myValues">
-        <value>
-          <list size="7">
-            <item index="0" class="java.lang.String" itemvalue="nobr" />
-            <item index="1" class="java.lang.String" itemvalue="noembed" />
-            <item index="2" class="java.lang.String" itemvalue="comment" />
-            <item index="3" class="java.lang.String" itemvalue="noscript" />
-            <item index="4" class="java.lang.String" itemvalue="embed" />
-            <item index="5" class="java.lang.String" itemvalue="script" />
-            <item index="6" class="java.lang.String" itemvalue="inputtext" />
-          </list>
-        </value>
-      </option>
-      <option name="myCustomValuesEnabled" value="true" />
-    </inspection_tool>
-  </profile>
-</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index cdd639a..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectRootManager" version="2" project-jdk-name="ruby-2.5.8-p224" project-jdk-type="RUBY_SDK" />
-</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 0c0d001..ab263a3 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,7 @@
 <project version="4">
   <component name="ProjectModuleManager">
     <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/Lab4.iml" filepath="$PROJECT_DIR$/.idea/Lab4.iml" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/Coursework.iml" filepath="$PROJECT_DIR$/.idea/Coursework.iml" />
     </modules>
   </component>
 </project>
\ No newline at end of file
diff --git a/Gemfile b/Gemfile
index 99d787d..23d08f5 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,7 +1,7 @@
 source 'https://rubygems.org'
 git_source(:github) { |repo| "https://github.com/#{repo}.git" }
 
-ruby '2.5.8'
+ruby '2.7.2'
 
 # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
 gem 'rails', '~> 5.2.4', '>= 5.2.4.4'
diff --git a/Gemfile.lock b/Gemfile.lock
index c4f86db..9b497be 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -233,7 +233,7 @@ DEPENDENCIES
   webdrivers
 
 RUBY VERSION
-   ruby 2.5.8p224
+   ruby 2.7.2p137
 
 BUNDLED WITH
    2.1.4
diff --git a/app/controllers/listview_controller.rb b/app/controllers/listview_controller.rb
index 63bfda8..dc1ed44 100644
--- a/app/controllers/listview_controller.rb
+++ b/app/controllers/listview_controller.rb
@@ -26,6 +26,11 @@ class ListviewController < ApplicationController
       redirect_to root_path
     else # Otherwise we set the relevant variables and render the listview page
       session[:list_id] = params[:list_id]
+      unless List.where(id: params[:list_id]).exists?
+        redirect_to homepage_path
+        return
+      end
+
       @list_id = session[:list_id]
 
       @username = User.find(session[:user_id]).name
diff --git a/app/mailers/contact_mailer.rb b/app/mailers/contact_mailer.rb
index f8e7737..4406866 100644
--- a/app/mailers/contact_mailer.rb
+++ b/app/mailers/contact_mailer.rb
@@ -1,6 +1,6 @@
 class ContactMailer < ApplicationMailer
 
-  def contact_email(email, message) # Handling of mail
+  def contact_email(email, message) # Handling of email
     @email = email
     @message = message
 
diff --git a/app/views/home/homepage.html.haml b/app/views/home/homepage.html.haml
index cbce390..848bbeb 100644
--- a/app/views/home/homepage.html.haml
+++ b/app/views/home/homepage.html.haml
@@ -7,6 +7,7 @@
     %p{class: "text"}= list.name
     .listButtons
       = form_tag listview_path, method: 'get' do
+        =hidden_field_tag :list_id, list.id
         %input{type: "submit", value: t('.view'), class: "button1"}
 
       = button_tag(class: "iconButton", onclick: "removeList(" + String(list.id) + ", this)") do
-- 
GitLab