Merge branch 'csv'
Conflicts: app/models/user_certification.rb app/views/user_certifications/index.html.erb app/views/user_certifications/show.html.erb
This commit is contained in:
@@ -11,9 +11,10 @@
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% @card.user_id = params[:user] if params[:user].present? %>
|
||||
<div class="field">
|
||||
<%= f.label :user %><br />
|
||||
<%= collection_select(:card, :user_id, User.all.sort_by(&:name), :id, :name) %>
|
||||
<%= collection_select(:card, :user_id, User.all.sort_by(&:name), :id, :name, :include_blank => true) %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= f.label :name, "Card Note" %><br />
|
||||
|
||||
@@ -8,13 +8,10 @@
|
||||
<%= simple_format @certification.description %>
|
||||
</p>
|
||||
|
||||
<b>Certified Users:</b>
|
||||
<ul>
|
||||
<% @certification_users.each do |user| %>
|
||||
<li><%= link_to user.name, user %></li>
|
||||
<% end %>
|
||||
<% if @certification_users.blank? then %><li>n/a</li><% end %>
|
||||
</ul>
|
||||
<p>
|
||||
<b>Certified Users:</b>
|
||||
<%= link_to "Click Here", user_certifications_path %>
|
||||
</p>
|
||||
|
||||
<% if can? :update, @certification %><%= link_to 'Edit', edit_certification_path(@certification) %> |<% end %>
|
||||
<%= link_to 'Back', certifications_path %>
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
<dd><%= @num_users %> (<%= @recent_users %> new in the last 7 days)</dd>
|
||||
<dt># of People Certified:</dt>
|
||||
<dd><%= @num_certs %> (<%= @recent_certs %> new in the last 7 days)</dd>
|
||||
<dt># of Current Paying Members:</dt>
|
||||
<dd><%= @num_paid_users %> (<%= @num_delinquent_users %> not-current)</dd>
|
||||
<dt># of Door Accesses Granted:</dt>
|
||||
<dd><%= @num_door_opens %> (<%= @today_door_opens %> today, <%= @recent_door_opens %> in the last 7 days)</dd>
|
||||
<dt># of Door Accesses Denied:</dt>
|
||||
|
||||
35
app/views/ipns/index.html.erb
Normal file
35
app/views/ipns/index.html.erb
Normal file
@@ -0,0 +1,35 @@
|
||||
<h2>PayPal IPN Records</h2>
|
||||
<p>
|
||||
<em>Automatically loaded from PayPal's servers</em>
|
||||
</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Name</th>
|
||||
<th>Item</th>
|
||||
<th>Amount</th>
|
||||
</tr>
|
||||
<% @ipns.sort_by(&:date_parsed).reverse!.each do |ipn| %>
|
||||
<tr>
|
||||
<td><%= ipn.payment_date %></td>
|
||||
<td><%= ipn.first_name %> <%= ipn.last_name %></td>
|
||||
<td><%= ipn.item_name %></td>
|
||||
<td>
|
||||
<% if ipn.payment_gross.blank? %>
|
||||
<%= ipn.txn_type %>
|
||||
<% else %>
|
||||
<%= ipn.payment_gross %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<% if ipn.payment.present? %>
|
||||
<%= link_to "Linked Payment", ipn.payment %>
|
||||
<% else %>
|
||||
<%= link_to "Try to link email '#{ipn.payer_email}' at membership level '#{ipn.payment_gross.to_i}'", link_ipn_path(ipn) %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td><%= link_to "Details", ipn %></td>
|
||||
<td><%= link_to "Validate", validate_ipn_path(ipn) %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
123
app/views/ipns/new.html.erb
Normal file
123
app/views/ipns/new.html.erb
Normal file
@@ -0,0 +1,123 @@
|
||||
<%= form_tag('/ipns') do |f| %>
|
||||
|
||||
<style type="text/css">
|
||||
label {
|
||||
width: 10em;
|
||||
display: inline-block;}
|
||||
</style>
|
||||
|
||||
<div class="actions">
|
||||
<%= submit_tag %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :first_name %>
|
||||
<%= text_field_tag :first_name, "John" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :last_name %>
|
||||
<%= text_field_tag :last_name, "Smith" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :payer_email %>
|
||||
<%= text_field_tag :payer_email, "jsmith@example.com" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :item_name %>
|
||||
<%= text_field_tag :item_name, "Associate Membership" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :payment_gross %>
|
||||
<%= text_field_tag :payment_gross, "25.00" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :transaction_subject %>
|
||||
<%= text_field_tag :transaction_subject, "" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :payment_date %>
|
||||
<%= text_field_tag :payment_date, "20:46:54 Jun 20, 2013 PDT" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :txn_type %>
|
||||
<%= text_field_tag :txn_type, "subscr_payment" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :subscr_id %>
|
||||
<%= text_field_tag :subscr_id, "I-1234567890" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :residence_country %>
|
||||
<%= text_field_tag :residence_country, "US" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :mc_currency %>
|
||||
<%= text_field_tag :mc_currency, "USD" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :business %>
|
||||
<%= text_field_tag :business, "hslfinances@gmail.com" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :payment_type %>
|
||||
<%= text_field_tag :payment_type, "instant" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :protection_eligibility %>
|
||||
<%= text_field_tag :protection_eligibility, "Ineligible" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :verify_sign %>
|
||||
<%= text_field_tag :verify_sign, "12ru9021j9f21j90fj1290fj2910fj0219fj0" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :payer_status %>
|
||||
<%= text_field_tag :payer_status, "verified" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :txn_id %>
|
||||
<%= text_field_tag :txn_id, "1234567890" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :receiver_email %>
|
||||
<%= text_field_tag :receiver_email, "hslfinances@gmail.com" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :payer_id %>
|
||||
<%= text_field_tag :payer_id, "V812314914" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :receiver_id %>
|
||||
<%= text_field_tag :receiver_id, "V90R1280182" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :payment_status %>
|
||||
<%= text_field_tag :payment_status, "Completed" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :payment_fee %>
|
||||
<%= text_field_tag :payment_fee, "0.85" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :mc_fee %>
|
||||
<%= text_field_tag :mc_fee, "0.85" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :mc_gross %>
|
||||
<%= text_field_tag :mc_gross, "25.00" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :charset %>
|
||||
<%= text_field_tag :charset, "windows-1252" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :notify_version %>
|
||||
<%= text_field_tag :notify_version, "3.7" %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= label_tag :ipn_track_id %>
|
||||
<%= text_field_tag :ipn_track_id, "9d3d032d9070" %>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<%= submit_tag %>
|
||||
</div>
|
||||
<% end %>
|
||||
18
app/views/ipns/show.html.erb
Normal file
18
app/views/ipns/show.html.erb
Normal file
@@ -0,0 +1,18 @@
|
||||
<h2>IPN Details</h2>
|
||||
|
||||
<% @ipn.attributes.except("data","payment_id").each do |attr| %>
|
||||
<p>
|
||||
<b><%= attr.first.to_s %>:</b>
|
||||
<%= @ipn.attributes[attr.first] %>
|
||||
</p>
|
||||
<% end %>
|
||||
<p>
|
||||
<% if @ipn.payment.present? %>
|
||||
<%= link_to "Linked Payment", @ipn.payment %>
|
||||
<% else %>
|
||||
<span class="alert">Couldn't link automatically. Please create payment manually or adjust the user account and try again to <%= link_to "link email '#{@ipn.payer_email}' at membership level '#{@ipn.payment_gross.to_i}'", link_ipn_path(@ipn) %>.</span>
|
||||
<% end %>
|
||||
|
||||
</p>
|
||||
|
||||
<%= link_to "Back", ipns_path %>
|
||||
@@ -11,7 +11,7 @@
|
||||
<a href="/" title="Home"><img src="/assets/logo.png" id="logo" /></a>
|
||||
<%= link_to 'People', users_path if can? :read, User %>
|
||||
<%= link_to 'Access Cards', cards_path if can? :manage, Card %>
|
||||
<% if can? :manage, UserCertification %>
|
||||
<% if can? :create, UserCertification %>
|
||||
<%= link_to 'Cert Classes', certifications_path if can? :read, Certification %>
|
||||
<%= link_to 'User Certs', user_certifications_path if can? :create, UserCertification %>
|
||||
<% else %>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
Scanning...
|
||||
<% @log.each do |log| %>
|
||||
<% if can? :read_details, Mac
|
||||
@log.each do |log| %>
|
||||
<%= log.mac %> =
|
||||
<%= log.ip %><br/>
|
||||
<% end %>
|
||||
<% end
|
||||
end %>
|
||||
|
||||
@@ -19,6 +19,10 @@
|
||||
<%= f.label :date, "Paid for month beginning" %><br />
|
||||
<%= f.date_select :date, :default => (DateTime.now - 1.month) %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= f.label :amount %><br />
|
||||
<%= f.number_field :amount %>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<%= f.submit %>
|
||||
</div>
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
<h1>Listing payments</h1>
|
||||
|
||||
<%= link_to 'New Payment', new_payment_path %>
|
||||
<br />
|
||||
<p>
|
||||
<b>Create Payments:</b>
|
||||
<%= link_to 'Manually', new_payment_path %> |
|
||||
<%= link_to 'Batched CSV', paypal_csvs_path %> |
|
||||
<%= link_to 'IPN', ipns_path %>
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>User</th>
|
||||
<th>Paid for month <br/>beginning</th>
|
||||
<th>Amount</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
@@ -15,6 +21,7 @@
|
||||
<tr>
|
||||
<td><%= link_to payment.user.name_with_payee_and_member_level, payment.user unless payment.user.blank? %></td>
|
||||
<td><%= payment.human_date %></td>
|
||||
<td><%= payment.amount %></td>
|
||||
<td><%= link_to 'Details', payment %></td>
|
||||
<td><%= link_to 'Edit', edit_payment_path(payment) %></td>
|
||||
</tr>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<p>
|
||||
<b>User:</b>
|
||||
<%= @payment.user.name_with_payee_and_member_level unless @payment.user.blank? %>
|
||||
<%= link_to @payment.user.name_with_payee_and_member_level, @payment.user unless @payment.user.blank? %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -8,9 +8,19 @@
|
||||
<%= @payment.date %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Amount:</b>
|
||||
<%= @payment.amount %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Last Modified by:</b>
|
||||
<%= user = @users.find{|u| u.id == @payment.created_by}; link_to user.name, user unless user.blank? %>
|
||||
<% user = @users.find{|u| u.id == @payment.created_by} %>
|
||||
<% if user.blank? %>
|
||||
n/a
|
||||
<% else %>
|
||||
<%= link_to user.name, user %>
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -23,6 +33,18 @@
|
||||
<%= @payment.updated_at %>
|
||||
</p>
|
||||
|
||||
<% if @payment.ipn.present? %>
|
||||
<p>
|
||||
<%= link_to "Paid via PayPal (IPN)", @payment.ipn %>
|
||||
</p>
|
||||
<% end %>
|
||||
<% if @payment.paypal_csv.present? %>
|
||||
<p>
|
||||
<%= link_to "Paid via PayPal (CSV)", @payment.paypal_csv %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
|
||||
|
||||
<%= link_to 'Edit', edit_payment_path(@payment) %> |
|
||||
<%= link_to 'Destroy', @payment, :confirm => 'Are you sure you want to destroy this payment?', :method => :delete if can? :destroy, @payment %> |
|
||||
|
||||
35
app/views/paypal_csvs/index.html.erb
Normal file
35
app/views/paypal_csvs/index.html.erb
Normal file
@@ -0,0 +1,35 @@
|
||||
<h2>PayPal CSV Records</h2>
|
||||
<p>
|
||||
<%= link_to "Upload CSV", new_paypal_csv_path %>
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Name</th>
|
||||
<th>Item</th>
|
||||
<th>Amount</th>
|
||||
</tr>
|
||||
<% @paypal_csvs.sort_by(&:date_parsed).reverse!.each do |paypal_csv| %>
|
||||
<tr>
|
||||
<td><%= paypal_csv.date %></td>
|
||||
<td><%= paypal_csv._name %></td>
|
||||
<td><%= paypal_csv._item_title %></td>
|
||||
<td>
|
||||
<% if paypal_csv._gross.blank? %>
|
||||
<%= paypal_csv._type %>
|
||||
<% else %>
|
||||
<%= paypal_csv._gross %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<% if paypal_csv.payment.present? %>
|
||||
<%= link_to "Linked Payment", paypal_csv.payment %>
|
||||
<% else %>
|
||||
<%= link_to "Try to link email '#{paypal_csv._from_email_address}' at membership level '#{paypal_csv._gross.to_i}'", link_paypal_csv_path(paypal_csv) %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td><%= link_to "Details", paypal_csv %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
15
app/views/paypal_csvs/new.html.erb
Normal file
15
app/views/paypal_csvs/new.html.erb
Normal file
@@ -0,0 +1,15 @@
|
||||
<style type="text/css">
|
||||
label {
|
||||
width: 10em;
|
||||
display: inline-block;}
|
||||
</style>
|
||||
|
||||
<%= form_tag('/paypal_csvs', :multipart => true) do |f| %>
|
||||
<div class="field">
|
||||
<%= label_tag :file %>
|
||||
<%= file_field_tag :file %>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<%= submit_tag %>
|
||||
</div>
|
||||
<% end %>
|
||||
17
app/views/paypal_csvs/show.html.erb
Normal file
17
app/views/paypal_csvs/show.html.erb
Normal file
@@ -0,0 +1,17 @@
|
||||
<h2>PayPal CSV Item Details</h2>
|
||||
<% @paypal_csv.attributes.except("data","payment_id").each do |attr| %>
|
||||
<p>
|
||||
<b><%= attr.first.to_s %>:</b>
|
||||
<%= @paypal_csv.attributes[attr.first] %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<p>
|
||||
<% if @paypal_csv.payment.present? %>
|
||||
<%= link_to "Linked Payment", @paypal_csv.payment %>
|
||||
<% else %>
|
||||
<span class="alert">Couldn't link automatically. Please create payment manually or adjust the user account and try again to <%= link_to "link email '#{@paypal_csv._from_email_address}' at membership level '#{@paypal_csv._gross.to_i}'", link_paypal_csv_path(@paypal_csv) %>.</span>
|
||||
<% end %>
|
||||
|
||||
</p>
|
||||
<%= link_to "Back", paypal_csvs_path %>
|
||||
@@ -11,13 +11,14 @@
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% @user_certification.user_id = params[:user] if params[:user].present? %>
|
||||
<div class="field">
|
||||
<%= f.label :user_id, "User" %><br />
|
||||
<%= collection_select(:user_certification, :user_id, @users, :id, :name) %>
|
||||
<%= collection_select(:user_certification, :user_id, @users, :id, :name, :include_blank => true) %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= f.label :certification_id, "Certification" %><br />
|
||||
<%= collection_select(:user_certification, :certification_id, @certifications, :id, :name) %>
|
||||
<%= collection_select(:user_certification, :certification_id, @certifications, :id, :name, :include_blank => true) %>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<%= f.submit %>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<dt><%= cert.name %></dt>
|
||||
<% user_certifications.sort{|a,b| a.user_name <=> b.user_name}.each do |user_certification| %>
|
||||
<dd>
|
||||
<%= link_to user_certification.user_name, user_certification %>
|
||||
<%= link_to user_certification.user_name, user_certification %>
|
||||
</dd>
|
||||
<% end %>
|
||||
</dl>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<p>
|
||||
<b>User:</b>
|
||||
<%= @user_certification.user_name %>
|
||||
<%= link_to @user_certification.user.name, @user_certification.user %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
65
app/views/users/inactive.html.erb
Normal file
65
app/views/users/inactive.html.erb
Normal file
@@ -0,0 +1,65 @@
|
||||
<h1>Inactive Users</h1>
|
||||
|
||||
<table>
|
||||
<col />
|
||||
<col />
|
||||
<% if current_user.admin? then %><col /><% end %>
|
||||
<col />
|
||||
<% if current_user.admin? %><col />
|
||||
<col class="col_highlight" /><% end %>
|
||||
<col />
|
||||
<col class="col_highlight" />
|
||||
<col />
|
||||
<col class="col_highlight" />
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Name</th>
|
||||
<% if current_user.admin? then %><th>Email</th><% end %>
|
||||
<th>Certifications</th>
|
||||
<% if current_user.admin? then %>
|
||||
<th>Orientation?</th>
|
||||
<% end %>
|
||||
<th>Card?</th>
|
||||
<th>Pmt Method</th>
|
||||
<th>Desired Level</th>
|
||||
<th>Last Payment</th>
|
||||
<th>Joined</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
<% if !@users.blank? %>
|
||||
<% @users.each do |user| %>
|
||||
<tr<%= " class='hidden'" if user.hidden? %>>
|
||||
<td><%= image_tag user.gravatar_url(:default => "http://members.heatsynclabs.org/assets/nil.png"), :class => :avatar %></td>
|
||||
<td><%= link_to user.name, user %></td>
|
||||
<% if current_user.admin? then %><td><%= user.email %></td><% end %>
|
||||
<td><% user.certifications.each do |c| %>
|
||||
<%= link_to c.name, c %><%= "," unless c.id == user.certifications.last.id %>
|
||||
<% end %></td>
|
||||
<% if current_user.admin? then %><td>
|
||||
<%= unless user.orientation.blank? then raw("<span class='hoverinfo' title='"+user.orientation.strftime("%B %d %Y")+"'>✓</span>") end %>
|
||||
</td><% end %>
|
||||
<td><%= unless user.cards.blank? then raw("<span class='iconinfo'>✓</span>") end %></td>
|
||||
<td><%= user.payment_method %></td>
|
||||
<td><%= user.member_level %></td>
|
||||
<td><% delinquency = user.delinquency %>
|
||||
<% if delinquency == 9999 %>
|
||||
No Payments
|
||||
<% else %>
|
||||
<%= (delinquency/30).to_s+" mo. ago" %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td><%= user.created_at.to_date %></td>
|
||||
<td><%= link_to 'Edit', edit_user_path(user) if can? :update, user %></td>
|
||||
<td><%= link_to 'Destroy', user, :confirm => 'Are you sure? WARNING: THIS DOES NOT REMOVE THE USER FROM THE DOOR SYSTEM! DISABLE THEM FIRST.', :method => :delete if can? :destroy, user %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</table>
|
||||
|
||||
<% if current_user.orientation.blank? then %>
|
||||
<p class="alert">There's a lot more to see here, but our records show you haven't completed the new member orientation yet. If that's incorrect, please contact a volunteer.</p>
|
||||
<% end %>
|
||||
|
||||
<br />
|
||||
@@ -6,6 +6,9 @@
|
||||
<% if can? :manage, User %>
|
||||
| <%= link_to 'Merge Users', users_merge_path %>
|
||||
<% end %>
|
||||
<% if current_user.admin? %>
|
||||
| <%= link_to 'Inactive Users', users_inactive_path %>
|
||||
<% end %>
|
||||
<table>
|
||||
<col />
|
||||
<col />
|
||||
|
||||
@@ -74,17 +74,19 @@
|
||||
</p>
|
||||
<% end %>
|
||||
<p>
|
||||
<b>Card:</b>
|
||||
<b>Card: </b><%= link_to "+ Add", (new_card_path+"?user="+@user.id.to_s), :class => 'btn' if can? :create, Card %>
|
||||
<% if current_user.admin? then %>
|
||||
<ul>
|
||||
<% @user.cards.each do |c| %>
|
||||
<%= link_to c.card_number, c %><%= "," unless c == @user.cards.last %>
|
||||
<li><%= link_to c.card_number, c %><%= "," unless c == @user.cards.last %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% else %>
|
||||
<%= unless @user.cards.blank? then raw("✓") end %>
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
<b>Certifications:</b>
|
||||
<b>Certifications: </b><%= link_to "+ Add", (new_user_certification_path+"?user="+@user.id.to_s), :class => 'btn' if can? :create, UserCertification %>
|
||||
<ul>
|
||||
<% @user.certifications.each do |certification| %>
|
||||
<li><%= link_to certification.name, certification %></li>
|
||||
|
||||
Reference in New Issue
Block a user