Compare commits
1 Commits
add-filmin
...
allow-user
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c21286de7 |
@@ -68,8 +68,7 @@ class LocationReleasesController < ApplicationController
|
|||||||
:territory_id, :territory_text,
|
:territory_id, :territory_text,
|
||||||
:term_id, :term_text,
|
:term_id, :term_text,
|
||||||
:restriction_id, :restriction_text,
|
:restriction_id, :restriction_text,
|
||||||
:filming_started_on, :filming_ended_on,
|
:filming_started_on, :filming_ended_on
|
||||||
:filming_hours
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -63,8 +63,7 @@ class Public::LocationReleasesController < Public::BaseController
|
|||||||
:person_address_zip,
|
:person_address_zip,
|
||||||
:person_address_country,
|
:person_address_country,
|
||||||
:signature_base64,
|
:signature_base64,
|
||||||
:locale, :contract_template, :filming_started_on, :filming_ended_on,
|
:locale, :contract_template, :filming_started_on, :filming_ended_on
|
||||||
:filming_hours
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -22,4 +22,8 @@ class TaskRequestPolicy < ApplicationPolicy
|
|||||||
def cancel?
|
def cancel?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def open_deliverable?
|
||||||
|
true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -29,7 +29,6 @@
|
|||||||
<% if releasable.model_name == "LocationRelease" %>
|
<% if releasable.model_name == "LocationRelease" %>
|
||||||
<%= description_list_pair "Filming Started On:", releasable&.filming_started_on&.strftime("%D") %>
|
<%= description_list_pair "Filming Started On:", releasable&.filming_started_on&.strftime("%D") %>
|
||||||
<%= description_list_pair "Filming Ended On:", releasable&.filming_ended_on&.strftime("%D") %>
|
<%= description_list_pair "Filming Ended On:", releasable&.filming_ended_on&.strftime("%D") %>
|
||||||
<%= description_list_pair "Filming Hours:", releasable&.filming_hours %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if contract_template.fee? %>
|
<% if contract_template.fee? %>
|
||||||
<%= description_list_pair "Fee:", number_to_currency(contract_template.fee) %>
|
<%= description_list_pair "Fee:", number_to_currency(contract_template.fee) %>
|
||||||
|
|||||||
@@ -39,9 +39,6 @@
|
|||||||
<%= form.text_field :filming_started_on, wrapper_class: "col-sm-6", class: "datepicker-control", readonly: true %>
|
<%= form.text_field :filming_started_on, wrapper_class: "col-sm-6", class: "datepicker-control", readonly: true %>
|
||||||
<%= form.text_field :filming_ended_on, wrapper_class: "col-sm-6", class: "datepicker-control", readonly: true %>
|
<%= form.text_field :filming_ended_on, wrapper_class: "col-sm-6", class: "datepicker-control", readonly: true %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
|
||||||
<%= form.text_field :filming_hours, wrapper_class: "col-sm-12" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -46,9 +46,6 @@
|
|||||||
<%= form.text_field :filming_started_on, wrapper_class: "col-sm-6", class: "datepicker-control", readonly: true %>
|
<%= form.text_field :filming_started_on, wrapper_class: "col-sm-6", class: "datepicker-control", readonly: true %>
|
||||||
<%= form.text_field :filming_ended_on, wrapper_class: "col-sm-6", class: "datepicker-control", readonly: true %>
|
<%= form.text_field :filming_ended_on, wrapper_class: "col-sm-6", class: "datepicker-control", readonly: true %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
|
||||||
<%= form.text_field :filming_hours, wrapper_class: "col-sm-12" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
|
|||||||
@@ -26,6 +26,9 @@
|
|||||||
<% if policy(task_request).edit? %>
|
<% if policy(task_request).edit? %>
|
||||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, task_request.project, task_request], class: "dropdown-item" %>
|
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, task_request.project, task_request], class: "dropdown-item" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(task_request).open_deliverable? && task_request.status == "completed" %>
|
||||||
|
<%= link_to fa_icon("external-link fw", text: t(".actions.open_deliverable")), task_request.deliverable_url, class: "dropdown-item", target: '_blank' %>
|
||||||
|
<% end %>
|
||||||
<% if policy(task_request).cancel? && !task_request.cancelled? %>
|
<% if policy(task_request).cancel? && !task_request.cancelled? %>
|
||||||
<%= link_to fa_icon("ban fw", text: "Cancel"), [:cancel, task_request.project, task_request], class: "dropdown-item", method: :post %>
|
<%= link_to fa_icon("ban fw", text: "Cancel"), [:cancel, task_request.project, task_request], class: "dropdown-item", method: :post %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -959,6 +959,7 @@ en:
|
|||||||
task_request:
|
task_request:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
|
open_deliverable: Open Deliverable
|
||||||
update:
|
update:
|
||||||
notice: Task request updated successfully.
|
notice: Task request updated successfully.
|
||||||
user_mailer:
|
user_mailer:
|
||||||
|
|||||||
@@ -182,3 +182,8 @@ es:
|
|||||||
photos:
|
photos:
|
||||||
guardian_photo:
|
guardian_photo:
|
||||||
heading: Guardian Photo (ES)
|
heading: Guardian Photo (ES)
|
||||||
|
task_requests:
|
||||||
|
task_request:
|
||||||
|
actions:
|
||||||
|
manage: Manage (ES)
|
||||||
|
open_deliverable: Open Deliverable (ES)
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
class AddFilmingHoursToLocationReleases < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :location_releases, :filming_hours, :text, default: ''
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -17,7 +17,6 @@ feature "User managing location releases" do
|
|||||||
fill_in person_phone_field, with: "555-555-5555"
|
fill_in person_phone_field, with: "555-555-5555"
|
||||||
fill_in person_email_field, with: "jane.doe@test.com"
|
fill_in person_email_field, with: "jane.doe@test.com"
|
||||||
fill_in person_address_street1_field, with: "100 Broadway"
|
fill_in person_address_street1_field, with: "100 Broadway"
|
||||||
fill_in filming_hours_field, with: "04:00 - 22:00"
|
|
||||||
draw_signature file_fixture("signature.png"), "location_release_signature_base64"
|
draw_signature file_fixture("signature.png"), "location_release_signature_base64"
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -52,7 +51,6 @@ feature "User managing location releases" do
|
|||||||
|
|
||||||
by "filling out the remaining information" do
|
by "filling out the remaining information" do
|
||||||
fill_in_release_fields name: "Test Location Release"
|
fill_in_release_fields name: "Test Location Release"
|
||||||
fill_in filming_hours_field, with: "04:00 - 22:00"
|
|
||||||
click_button create_release_button
|
click_button create_release_button
|
||||||
expect(page).to have_content(create_release_notice)
|
expect(page).to have_content(create_release_notice)
|
||||||
expect(page).to have_photo("location_photo.png")
|
expect(page).to have_photo("location_photo.png")
|
||||||
@@ -138,7 +136,6 @@ feature "User managing location releases" do
|
|||||||
:native,
|
:native,
|
||||||
project: project,
|
project: project,
|
||||||
name: "Benny's Burritos",
|
name: "Benny's Burritos",
|
||||||
filming_hours: "06:00 - 20:00",
|
|
||||||
tag_list: "Restaurant",
|
tag_list: "Restaurant",
|
||||||
notes: [
|
notes: [
|
||||||
build(:note,
|
build(:note,
|
||||||
@@ -175,8 +172,6 @@ feature "User managing location releases" do
|
|||||||
expect(pdf_body).to have_content("Restaurant")
|
expect(pdf_body).to have_content("Restaurant")
|
||||||
expect(pdf_body).to have_content photos_heading.upcase
|
expect(pdf_body).to have_content photos_heading.upcase
|
||||||
expect(pdf_body).to have_content("location_photo.png")
|
expect(pdf_body).to have_content("location_photo.png")
|
||||||
expect(pdf_body).to have_content("Filming Hours")
|
|
||||||
expect(pdf_body).to have_content("06:00 - 20:00")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when the user is associate" do
|
context "when the user is associate" do
|
||||||
@@ -227,10 +222,6 @@ feature "User managing location releases" do
|
|||||||
"location_release[person_phone]"
|
"location_release[person_phone]"
|
||||||
end
|
end
|
||||||
|
|
||||||
def filming_hours_field
|
|
||||||
"location_release[filming_hours]"
|
|
||||||
end
|
|
||||||
|
|
||||||
def have_photo(filename, attr: "src")
|
def have_photo(filename, attr: "src")
|
||||||
have_selector("img[#{attr}*='#{filename}']")
|
have_selector("img[#{attr}*='#{filename}']")
|
||||||
end
|
end
|
||||||
|
|||||||
73
spec/features/user_managing_task_requests_spec.rb
Normal file
73
spec/features/user_managing_task_requests_spec.rb
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
require "rails_helper"
|
||||||
|
|
||||||
|
feature "User managing task requests" do
|
||||||
|
let(:current_user) { create(:user) }
|
||||||
|
let(:project) { create(:project, account: current_user.primary_account) }
|
||||||
|
|
||||||
|
before :each do
|
||||||
|
sign_in current_user
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "task requests table is visible" do
|
||||||
|
visit project_task_requests_path(project)
|
||||||
|
|
||||||
|
expect(page).to have_content "Created On"
|
||||||
|
expect(page).to have_content "Deadline"
|
||||||
|
expect(page).to have_content "Time Allowed"
|
||||||
|
expect(page).to have_content "Status"
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "sees list of task requests" do
|
||||||
|
visit project_task_requests_path(project)
|
||||||
|
|
||||||
|
expect(page).to have_content no_task_requests_label
|
||||||
|
|
||||||
|
task_request = create(:task_request, project: project)
|
||||||
|
|
||||||
|
visit project_task_requests_path(project)
|
||||||
|
|
||||||
|
expect(page).not_to have_content no_task_requests_label
|
||||||
|
|
||||||
|
expect(page).to have_content task_request.created_at.try(:strftime, '%D')
|
||||||
|
expect(page).to have_content task_request.deadline.try(:strftime, '%D')
|
||||||
|
expect(page).to have_content task_request.time_allowed
|
||||||
|
expect(page).to have_content task_request.status.capitalize
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "user does not see open deliverable action in manage dropdown if task status is not completed" do
|
||||||
|
task_request = create(:task_request, project: project)
|
||||||
|
visit project_task_requests_path(project)
|
||||||
|
|
||||||
|
click_on manage_button
|
||||||
|
expect(page).not_to have_content open_deliverable_action_label
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "user can click deliverable action in manage dropdown if task status is completed", js: true do
|
||||||
|
create(:task_request, project: project, status: "completed", deliverable_url: "/")
|
||||||
|
visit project_task_requests_path(project)
|
||||||
|
|
||||||
|
click_on manage_button
|
||||||
|
expect(page).to have_content open_deliverable_action_label
|
||||||
|
click_link open_deliverable_action_label
|
||||||
|
switch_to_window(windows.last)
|
||||||
|
expect(page).to have_content add_new_project_label
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def no_task_requests_label
|
||||||
|
"Task requests will appear here"
|
||||||
|
end
|
||||||
|
|
||||||
|
def manage_button
|
||||||
|
t "task_requests.task_request.actions.manage"
|
||||||
|
end
|
||||||
|
|
||||||
|
def open_deliverable_action_label
|
||||||
|
t "task_requests.task_request.actions.open_deliverable"
|
||||||
|
end
|
||||||
|
|
||||||
|
def add_new_project_label
|
||||||
|
t "projects.index.actions.new"
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user