From ac575207b90e7136227e9d6292ffec755a0f6164 Mon Sep 17 00:00:00 2001 From: Dean Brettle Date: Sat, 31 Oct 2020 21:35:44 -0700 Subject: [PATCH] Fix issue #55 (add CAD platform & drawing links) Support per project CAD platform (Onshape or SOLIDWORKS). Use drawing links instead of uploaded drawings for Onshape projects. --- db/migrations/019_add_cad_platform_to_projects.rb | 7 +++++++ db/migrations/020_add_drawing_link_to_parts.rb | 7 +++++++ models/project.rb | 5 +++++ parts_server.rb | 15 ++++++++++++++- views/new_project.erb | 14 ++++++++++++++ views/part.erb | 14 ++++++++++---- views/part_edit.erb | 12 +++++++++++- views/project_edit.erb | 14 ++++++++++++++ 8 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 db/migrations/019_add_cad_platform_to_projects.rb create mode 100644 db/migrations/020_add_drawing_link_to_parts.rb diff --git a/db/migrations/019_add_cad_platform_to_projects.rb b/db/migrations/019_add_cad_platform_to_projects.rb new file mode 100644 index 0000000..fd01372 --- /dev/null +++ b/db/migrations/019_add_cad_platform_to_projects.rb @@ -0,0 +1,7 @@ +Sequel.migration do + change do + alter_table(:projects) do + add_column :cad_platform, String, :default => "SOLIDWORKS", :null => false + end + end +end diff --git a/db/migrations/020_add_drawing_link_to_parts.rb b/db/migrations/020_add_drawing_link_to_parts.rb new file mode 100644 index 0000000..1654517 --- /dev/null +++ b/db/migrations/020_add_drawing_link_to_parts.rb @@ -0,0 +1,7 @@ +Sequel.migration do + change do + alter_table(:parts) do + add_column :drawing_link, String, :default => "", :null => false + end + end +end diff --git a/models/project.rb b/models/project.rb index cb97422..e25cb7c 100755 --- a/models/project.rb +++ b/models/project.rb @@ -6,4 +6,9 @@ class Project < Sequel::Model one_to_many :parts one_to_many :orders + + CAD_PLATFORM_MAP = { + "Onshape" => "Onshape", + "SOLIDWORKS" => "SOLIDWORKS" + } end diff --git a/parts_server.rb b/parts_server.rb index 1e651c3..7bf4f7c 100755 --- a/parts_server.rb +++ b/parts_server.rb @@ -147,8 +147,11 @@ def send_email(to, subject, body) # Check parameter existence and format. halt(400, "Missing project name.") if params[:name].nil? halt(400, "Missing part number prefix.") if params[:part_number_prefix].nil? + halt(400, "Missing CAD platform.") if params[:cad_platform].nil? + halt(400, "Invalid CAD platform.") unless Project::CAD_PLATFORM_MAP.include?(params[:cad_platform]) - project = Project.create(:name => params[:name], :part_number_prefix => params[:part_number_prefix], :hide_dashboards => 0) + project = Project.create(:name => params[:name], :part_number_prefix => params[:part_number_prefix], :hide_dashboards => 0, + :cad_platform => params[:cad_platform]) redirect "/projects/#{project.id}" end @@ -210,6 +213,11 @@ def send_email(to, subject, body) @project.part_number_prefix = params[:part_number_prefix] end + if params[:cad_platform] + halt(400, "Invalid CAD platform.") unless Project::CAD_PLATFORM_MAP.include?(params[:cad_platform]) + @project.cad_platform = params[:cad_platform] + end + if params[:avatar] file = params[:avatar][:tempfile] Dir.mkdir("./uploads/projects/#{@project.id}") unless Dir.exist?("./uploads/projects/#{@project.id}") @@ -423,6 +431,11 @@ def send_email(to, subject, body) @part.drawing_created = 1 end + if params[:drawing_link] + @part.drawing_link = params[:drawing_link].strip + @part.drawing_created = 1 + end + if params[:toolpath] file = params[:toolpath][:tempfile] # Create directories if they do not exist already diff --git a/views/new_project.erb b/views/new_project.erb index 4bf0188..169027e 100755 --- a/views/new_project.erb +++ b/views/new_project.erb @@ -11,6 +11,20 @@ +
+
+ +
+
+ +
+
diff --git a/views/part.erb b/views/part.erb index 744a69f..20ca04f 100755 --- a/views/part.erb +++ b/views/part.erb @@ -61,7 +61,11 @@ Part Number + <% if @part.drawing_created == 1 && @part.project.cad_platform == "Onshape" %> + <%= @part.full_part_number %> + <% else %> <%= @part.full_part_number %> + <% end %> <% if @part.type != "cots" %> @@ -87,23 +91,25 @@ Quantity Required<%= @part.quantity %> - <% if @part.type != "cots" %> +<% if @part.type != "cots" %> Drawing Created? <%= (@part.drawing_created == 1) ? "Yes" : "No" %> + <%if @part.project.cad_platform == "SOLIDWORKS" %> Revision Letter <%= @part.rev %> - <% end %> -<%if @part.drawing_created == 1 %> + <%if @part.drawing_created == 1 %> Drawing Link ">Revision <%= @part.rev %> + <% end %> + <% end %> <% end %> <%if File.file?("./uploads/"+ @part.full_part_number + "/docs/" + @part.full_part_number + ".pdf") %> @@ -158,7 +164,7 @@ <% end %>
-<%if @part.drawing_created == 1 %> +<%if @part.drawing_created == 1 && @part.project.cad_platform == "SOLIDWORKS" %>
" type="application/pdf">
diff --git a/views/part_edit.erb b/views/part_edit.erb index bef6874..028f3f8 100755 --- a/views/part_edit.erb +++ b/views/part_edit.erb @@ -44,7 +44,14 @@
<% if @part.type != "cots" %> - + <% if @part.project.cad_platform == "Onshape" %> +
+ +
+
+ +
+ <% else %>
@@ -58,6 +65,7 @@
<% end %> + <% end %>
<% end %> @@ -106,6 +114,7 @@
+ <% if @part.project.cad_platform == "SOLIDWORKS" %>
@@ -116,6 +125,7 @@
+ <% end %>
diff --git a/views/project_edit.erb b/views/project_edit.erb index cf7e701..7c04833 100755 --- a/views/project_edit.erb +++ b/views/project_edit.erb @@ -13,6 +13,20 @@
+
+
+ +
+
+ +
+