Commit a89c829f by Son Do Hong

Merge branch 'feature/city_list' into 'master'

Feature/city_list/Updated city list

See merge request !5
parents b27de217 a861c741
...@@ -53,14 +53,14 @@ h1, h2, h3, h4, h5, h6 { ...@@ -53,14 +53,14 @@ h1, h2, h3, h4, h5, h6 {
} }
.row { .row {
padding: 5px; padding: 10px;
margin: 5px; margin: 10px;
background-color: $sub-color; background-color: $sub-color;
} }
.col-sm { .col-sm {
margin: 5px; margin: 10px;
padding: 5px; padding: 10px;
background-color: $primary-color; background-color: $primary-color;
} }
......
class CitiesController < ApplicationController
def index
@top_vn_cities = City.sort_top_vn_cities
@top_inter_cities = City.sort_top_inter_cities
@top_cities = City.sort_top_cities
end
end
class IndustriesController < ApplicationController
def index
@top_industries = Industry.sort_top_industries
end
end
class TopController < ApplicationController class TopController < ApplicationController
def index def index
@latest_jobs = Job.latest_jobs.take(Settings.top.job.limit) @latest_jobs = Job.latest_jobs
@top_cities = City.sort_top_cities.take(Settings.top.city.limit) @top_cities = City.sort_top_cities
@top_industries = Industry.sort_top_industries.take(Settings.top.industry.limit) @top_industries = Industry.sort_top_industries
end end
end end
...@@ -3,7 +3,15 @@ class City < ApplicationRecord ...@@ -3,7 +3,15 @@ class City < ApplicationRecord
has_many :jobs, through: :city_jobs has_many :jobs, through: :city_jobs
def self.sort_top_cities def self.sort_top_cities
@cities ||= all.sort_by(&:jobs_count).reverse @cities ||= all.sort_by(&:jobs_count).reject{ |city| city.jobs_count.zero? }.reverse.take(Settings.top.city.limit)
end
def self.sort_top_vn_cities
@vn_cities ||= City.where(region: 0).includes(:city_jobs).sort_by(&:jobs_count).reject{ |city| city.jobs_count.zero? }.reverse.take(Settings.top.city.limit)
end
def self.sort_top_inter_cities
@inter_cities ||= City.where(region: 1).includes(:city_jobs).sort_by(&:jobs_count).reject{ |city| city.jobs_count.zero? }.reverse.take(Settings.top.city.limit)
end end
def jobs_count def jobs_count
......
...@@ -3,7 +3,7 @@ class Industry < ApplicationRecord ...@@ -3,7 +3,7 @@ class Industry < ApplicationRecord
has_many :jobs, through: :industry_jobs has_many :jobs, through: :industry_jobs
def self.sort_top_industries def self.sort_top_industries
@industries ||= all.sort_by(&:jobs_count).reverse @industries ||= all.sort_by(&:jobs_count).reverse.take(Settings.top.industry.limit)
end end
def jobs_count def jobs_count
......
...@@ -3,6 +3,7 @@ class Job < ApplicationRecord ...@@ -3,6 +3,7 @@ class Job < ApplicationRecord
has_many :city_jobs has_many :city_jobs
def self.latest_jobs def self.latest_jobs
@latest ||= Job.order(created_at: :desc) @latest ||= order(created_at: :desc).take(Settings.top.job.limit)
end end
end end
<div class="container">
<div class="row justify-content-md-center">
<div class="col-sm text-center">
<%= cities_list.name %>
(<%= cities_list.jobs_count %>)
</div>
</div>
</div>
<div class="container"> <div class="container">
<div class="row justify-content-md-center"> <div class="row justify-content-md-center">
<div class="col-sm"> <div class="col text-center">
<%= city.name %> <%= city.name %>
(<%= city.jobs.count %>) (<%= city.jobs_count %> jobs)
</div> </div>
</div> </div>
</div> </div>
<div class="container">
<div class="row justify-content-md-center">
<div class="col-sm text-center">
<%= international_cities.name %>
(<%= international_cities.jobs_count %>)
</div>
</div>
</div>
<div class="container">
<div class="row justify-content-md-center">
<div class="col-sm text-center">
<%= vn_cities.name %>
(<%= vn_cities.jobs_count %>)
</div>
</div>
</div>
<div class="center jumbotron">
<head>
<title><%= yield(:title) %> Venjob</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
</div>
<!--Display regions list-->
<div class="area-title-wrapper">
<h3>City List</h3>
</div>
<div class="area-content-wrapper">
<div class="row row-cols-2">
<div><h5><a href="#vietnam">Viet Nam</a></h5></div>
<div><h5><a href="#international">International</a></h5></div>
</div>
</div>
</br>
<!--Display cities of Vietnam-->
<div class="area-title-wrapper">
<h3>Viet Nam</h3>
</div>
<div id="vietnam">
<div class="row row-cols-3">
<%= render partial: "cities/vn_cities", collection: @top_vn_cities %>
</div>
</div>
</br>
<!--Display cities of International-->
<div class="area-title-wrapper">
<h3>International</h3>
</div>
<div id="international">
<div class="row row-cols-3">
<%= render partial: "cities/international_cities", collection: @top_inter_cities %>
</div>
</div>
<div class="container">
<div class="row justify-content-md-center">
<div class="col-sm text-center">
<%= industries_list.name %>
(<%= industries_list.jobs_count %> jobs)
</div>
</div>
</div>
<div class="container"> <div class="container">
<div class="row justify-content-md-center"> <div class="row justify-content-md-center">
<div class="col-sm"> <div class="col text-center">
<%= industry.name %> <%= industry.name %>
(<%= industry.jobs.count %>) (<%= industry.jobs_count %> jobs)
</div> </div>
</div> </div>
</div> </div>
<div class="center jumbotron">
<head>
<title><%= yield(:title) %> Venjob</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
</div>
</br>
<!--Display industries list-->
<div class="area-title-wrapper">
<h3>Industry List</h3>
</div>
<div id="industry">
<div class="row row-cols-3">
<%= render partial: "industries/industries_list", collection: @top_industries %>
</div>
</div>
<div class="card text-center"> <div class="card text-center">
<div class="card-header">
Footer
</div>
<div class="card-body"> <div class="card-body">
<h5 class="card-title">Venjob project</h5> <h5 class="card-title">Venjob project</h5>
<a href="#">@Copyright Zigexn Ventura 2019</a> <a href="#">@Copyright Zigexn Ventura 2019</a>
......
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col"> <div class="col text-center">
<%= job.title %> <%= job.title %>
</div> </div>
</div> </div>
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
</div> </div>
</head> </head>
</div> </div>
<!-- List of latest jobs--> <!-- List of latest jobs-->
<div class="Job list"> <div class="Job list">
<div class="Job-title-wrapper"> <div class="Job-title-wrapper">
...@@ -17,33 +18,36 @@ ...@@ -17,33 +18,36 @@
<%= render partial: "top/job", collection: @latest_jobs %> <%= render partial: "top/job", collection: @latest_jobs %>
</div> </div>
</div> </div>
</br> </br>
<!--List of top cities--> <!--List of top cities-->
<div class="City list"> <div class="City-title-wrapper">
<div class="City-title-wrapper">
<h3>Top Cities</h3> <h3>Top Cities</h3>
</div> </div>
<div class="City-content-wrapper"> <div class="city-content-wrapper">
<div class="row row-cols-3"> <div class="row row-cols-3">
<%= render partial: "cities/city", collection: @top_cities %> <%= render partial: "cities/city", collection: @top_cities %>
<form class="form-inline-city"> <form class="form-inline-city">
<button class="btn btn-outline-success" type="button">All cities</button> <%= link_to "All cities", cities_path, class:"btn btn-outline-success" %>
</form> </form>
</div> </div>
</div> </div>
</div>
</br> </br>
<div class="Industry list">
<div class="Industry-title-wrapper"> <!--List of top industries-->
<div class="industry-title-wrapper">
<h3>Top Industries</h3> <h3>Top Industries</h3>
</div> </div>
<div class="Industry-content-wrapper"> <div class="industry-content-wrapper">
<div class="row row-cols-3"> <div class="row row-cols-3">
<%= render partial: "industries/industry", collection: @top_industries %> <%= render partial: "industries/industry", collection: @top_industries %>
<form class="form-inline-industry"> <form class="form-inline-industry">
<button class="btn btn-outline-success" type="button">All industries</button> <%= link_to "All industries", industries_path, class:"btn btn-outline-success" %>
</form> </form>
</div> </div>
</div> </div>
</div>
</div> </div>
</br>
Rails.application.routes.draw do Rails.application.routes.draw do
root "top#index" root "top#index"
resources :cities, only: :index
resources :industries, only: :index
resource :top, only: :index resource :top, only: :index
devise_for :users devise_for :users
end end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment