Added user home lat and lon
authorNick Black <nickb@svn.openstreetmap.org>
Thu, 26 Apr 2007 09:01:03 +0000 (09:01 +0000)
committerNick Black <nickb@svn.openstreetmap.org>
Thu, 26 Apr 2007 09:01:03 +0000 (09:01 +0000)
app/controllers/user_controller.rb
app/models/user.rb
app/views/user/account.rhtml
app/views/user/edit.rhtml
config/routes.rb
db/migrate.sql

index b2ac3072cae18d3e30c52978576b24aba2bf685d..5b370334cc0c145f90f3d5c0e57d61c7c2ff963f 100644 (file)
@@ -3,8 +3,8 @@ class UserController < ApplicationController
 
   before_filter :authorize, :only => [:preferences, :api_details, :api_gpx_files]
   before_filter :authorize_web, :only => [:edit, :account, :go_public, :view, :diary]
-  before_filter :require_user, :only => [:edit, :account, :go_public]
+  before_filter :require_user, :only => [:edit, :set_home, :account, :go_public]
+
   def save
     @user = User.new(params[:user])
     @user.set_defaults
@@ -20,8 +20,13 @@ class UserController < ApplicationController
 
   def edit
     if params[:user] and params[:user][:display_name] and params[:user][:description]
+      home_lat =  params[:user][:home_lat]
+      home_lon =  params[:user][:home_lon]
+
       @user.display_name = params[:user][:display_name]
       @user.description = params[:user][:description]
+      @user.home_lat = home_lat.to_f
+      @user.home_lon = home_lon.to_f
       if @user.save
         flash[:notice] = "User edited OK."
         redirect_to :controller => 'user', :action => 'account'
@@ -31,15 +36,14 @@ class UserController < ApplicationController
 
   def set_home
     if params[:user][:home_lat] and params[:user][:home_lon]
-    lat = params[:user][:home_lat]
-    lon = params[:user][:home_lon]
-    unless 
-      #check the lat and lon
-    end
-    #make an api request to insert a new node
-    #get the onde id
-    end
+      @user.home_lat = params[:user][:home_lat].to_f
+      @user.home_lon = params[:user][:home_lon].to_f
+      if @user.save
+        flash[:notice] = "User home saved."
+        redirect_to :controller => 'user', :action => 'account'
+      end
     end
+  end
 
   def go_public
     @user.data_public = true
index 7befa479ac547387f6da99f4457b702749fd0ede..cd0623bc1a628591f8fe0865b964fabe44272f9f 100644 (file)
@@ -4,7 +4,7 @@ class User < ActiveRecord::Base
 
   has_many :traces
   has_many :diary_entries
-
   validates_confirmation_of :pass_crypt, :message => 'Password must match the confirmation password'
   validates_uniqueness_of :display_name, :allow_nil => true
   validates_uniqueness_of :email
@@ -57,4 +57,10 @@ class User < ActiveRecord::Base
     el1['account_created'] = self.creation_time.xmlschema
     return el1
   end
+  
+  def get_nearby_users
+  end
+
+
+  
 end
index 257e8c47abb53a1904c5583cf3a82d2e1fdf2020..90433f825450e29ab44c7c9c59560daacdd32c1e 100644 (file)
@@ -4,10 +4,16 @@
   <tr><td>email</td><td><%= @user.email %></td></tr>
   <tr><td>display name</td><td><%= @user.display_name %> (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>)</td></tr>
   <tr><td>account created</td><td><%= @user.creation_time %> (<%= time_ago_in_words(@user.creation_time) %> ago)</td></tr>
-  <tr><td>user home</td><td><%= @user.home_node_id %>  (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>) </td></tr>
+  <tr><td>user home</td><td>Latitude: <%=@user.home_lat%> Longitude <%=@user.home_lon%>  (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>) </td></tr>
   <tr><td valign="top">description</td><td><%= simple_format(@user.description) %>  (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>)</td></tr>
 </table>
 
+<h2>Users in your area</h2>
+
+These users are mapping in your area:
+
+
+
 <h2>Privacy</h2>
 <% if @user.data_public? %>
   All your edits are public.
index a78b9e17325743a3c3b35261965da89d43d0a5f6..65f028f16e1c96f4e13a4ba61c84728e20528c1d 100644 (file)
@@ -4,11 +4,10 @@
 <table>
   <tr><td>display name</td><td><%= text_field :user, :display_name, :value => @user.display_name %></td></tr>
   <tr><td valign="top">description</td><td><%= text_area :user, :description, :value => @user.description %></td></tr>
+  <tr><td>home latitude</td><td><%= text_field :user, :home_lat, :value => @user.home_lat %></td>
+  <tr><td>home longitude</td><td><%= text_field :user, :home_lon, :value => @user.home_lon %></td>
 </table>
 <%= submit_tag 'Change' %>
 <%= end_form_tag %>
 
-<%= start_form_tag :controller => 'user', :action => 'set_home' %>
-  <tr><td>home location</td><td><%= text_field :user, :home  %></td></tr>
-<%= submit_tag 'Change Home' %>
-<%= end_form_tag %>
index d6e800355e12414f9cd276ee1afff2babe9fc0b9..b00b3b649d17a4b15131673f817b25ad0f6f583a 100644 (file)
@@ -68,6 +68,7 @@ ActionController::Routing::Routes.draw do |map|
   map.connect '/user/:display_name/diary/newpost', :controller => 'diary_entry', :action => 'new'
   map.connect '/user/:display_name/edit', :controller => 'user', :action => 'edit'
   map.connect '/user/:display_name/account', :controller => 'user', :action => 'account'
+  map.connect '/user/:display_name/set_home', :controller => 'user', :action => 'set_home'
 
   # test pages
   map.connect '/test/populate/:table/:from/:count', :controller => 'test', :action => 'populate'
index 0f78b9dd35874c07ad803a57bb188bb2e3317b14..f953eec25998169200680864d616dce99b657a0a 100644 (file)
@@ -39,5 +39,6 @@ create table diary_entries(id bigint not null auto_increment, user_id bigint not
 alter table diary_entries add created_at datetime;
 alter table diary_entries add updated_at datetime;
 
-alter table users add column (home_node_id bigint(64) default NULL);
+alter table users add column (home_lat double default NULL);
+alter table users add column (home_lon double default NULL);