Skip to content

Commit

Permalink
Add home location condition to user model
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonKhorev committed Aug 11, 2023
1 parent f47eeb0 commit 033c032
Show file tree
Hide file tree
Showing 9 changed files with 15 additions and 11 deletions.
2 changes: 1 addition & 1 deletion app/controllers/diary_entries_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ def set_map_location
@lon = @diary_entry.longitude
@lat = @diary_entry.latitude
@zoom = 12
elsif current_user.home_lat.nil? || current_user.home_lon.nil?
elsif !current_user.has_home?
@lon = params[:lon] || -0.1
@lat = params[:lat] || 51.5
@zoom = params[:zoom] || 4
Expand Down
2 changes: 1 addition & 1 deletion app/helpers/application_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def application_data
if current_user
data[:user] = current_user.id.to_json

data[:user_home] = { :lat => current_user.home_lat, :lon => current_user.home_lon } unless current_user.home_lon.nil? || current_user.home_lat.nil?
data[:user_home] = { :lat => current_user.home_lat, :lon => current_user.home_lon } if current_user.has_home?
end

data[:location] = session[:location] if session[:location]
Expand Down
8 changes: 6 additions & 2 deletions app/models/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -238,8 +238,12 @@ def preferred_languages
@preferred_languages ||= Locale.list(languages)
end

def has_home?
home_lat && home_lon
end

def nearby(radius = Settings.nearby_radius, num = Settings.nearby_users)
if home_lon && home_lat
if has_home?
gc = OSM::GreatCircle.new(home_lat, home_lon)
sql_for_area = QuadTile.sql_for_area(gc.bounds(radius), "home_")
sql_for_distance = gc.sql_for_distance("home_lat", "home_lon")
Expand Down Expand Up @@ -401,6 +405,6 @@ def encrypt_password
end

def update_tile
self.home_tile = QuadTile.tile_for_point(home_lat, home_lon) if home_lat && home_lon
self.home_tile = QuadTile.tile_for_point(home_lat, home_lon) if has_home?
end
end
2 changes: 1 addition & 1 deletion app/views/api/users/_user.json.jbuilder
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ json.user do
end

if current_user && current_user == user && can?(:details, User)
if user.home_lat && user.home_lon
if user.has_home?
json.home do
json.lat user.home_lat
json.lon user.home_lon
Expand Down
2 changes: 1 addition & 1 deletion app/views/api/users/_user.xml.builder
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ xml.tag! "user", :id => user.id,
end
end
if current_user && current_user == user && can?(:details, User)
if user.home_lat && user.home_lon
if user.has_home?
xml.tag! "home", :lat => user.home_lat,
:lon => user.home_lon,
:zoom => user.home_zoom
Expand Down
2 changes: 1 addition & 1 deletion app/views/dashboards/_contact.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<div class="col">
<p class='text-muted mb-0'>
<%= link_to contact.display_name, user_path(contact) %>
<% if @user.home_lon and @user.home_lat and contact.home_lon and contact.home_lat %>
<% if @user.has_home? and contact.has_home? %>
<% distance = @user.distance(contact) %>
<% if distance < 1 %>
(<%= t ".m away", :count => (distance * 1000).round %>)
Expand Down
2 changes: 1 addition & 1 deletion app/views/dashboards/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<div class="row">
<% if current_user and @user.id == current_user.id %>
<div class="col-md order-md-last">
<% if @user.home_lat.nil? or @user.home_lon.nil? %>
<% if !@user.has_home? %>
<div id="map" class="content_map border border-grey">
<p class="m-3"><%= t(".no_home_location_html", :edit_profile_link => link_to(t(".edit_your_profile"), edit_profile_path)) %></p>
</div>
Expand Down
2 changes: 1 addition & 1 deletion app/views/layouts/map.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<% content_for(:body_class) { "map-layout" } %>

<% if current_user and !current_user.home_lon.nil? and !current_user.home_lat.nil? %>
<% if current_user&.has_home? %>
<% content_for :greeting do %>
<%= link_to t("layouts.home"),
"#",
Expand Down
4 changes: 2 additions & 2 deletions app/views/profiles/edit.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@

<fieldset>
<legend><%= t ".home location" -%></legend>
<p id="home_message" class="text-muted"<% if current_user.home_lat and current_user.home_lon %> hidden<% end %>><%= t ".no home location" %></p>
<p id="home_message" class="text-muted"<% if current_user.has_home? %> hidden<% end %>><%= t ".no home location" %></p>
<div class="row">
<%= f.text_field :home_lat, :wrapper_class => "col-sm-4", :id => "home_lat" %>
<%= f.text_field :home_lon, :wrapper_class => "col-sm-4", :id => "home_lon" %>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="updatehome" value="1" <% unless current_user.home_lat and current_user.home_lon %> checked="checked" <% end %> id="updatehome" />
<input class="form-check-input" type="checkbox" name="updatehome" value="1" <% unless current_user.has_home? %> checked="checked" <% end %> id="updatehome" />
<label class="form-check-label" for="updatehome"><%= t ".update home location on click" %></label>
</div>
<%= tag.div "", :id => "map", :class => "content_map set_location border border-grey rounded" %>
Expand Down

0 comments on commit 033c032

Please sign in to comment.