forked from shibao/cannery
		
	export shotgun fields
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
				
			|||||||
# v0.9.2
 | 
					# v0.9.2
 | 
				
			||||||
- Add lot number to packs
 | 
					- Add lot number to packs
 | 
				
			||||||
- Don't show price paid and lot number columns when displaying packs if not used
 | 
					- Don't show price paid and lot number columns when displaying packs if not used
 | 
				
			||||||
 | 
					- Fix additional shotgun fields not being exportable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# v0.9.1
 | 
					# v0.9.1
 | 
				
			||||||
- Rename ammo type's "type" to "class" to avoid confusion
 | 
					- Rename ammo type's "type" to "class" to avoid confusion
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,28 +13,38 @@ defmodule Cannery.Ammo.Type do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  @derive {Jason.Encoder,
 | 
					  @derive {Jason.Encoder,
 | 
				
			||||||
           only: [
 | 
					           only: [
 | 
				
			||||||
             :id,
 | 
					 | 
				
			||||||
             :name,
 | 
					             :name,
 | 
				
			||||||
             :desc,
 | 
					             :desc,
 | 
				
			||||||
 | 
					             :class,
 | 
				
			||||||
             :bullet_type,
 | 
					             :bullet_type,
 | 
				
			||||||
             :bullet_core,
 | 
					             :bullet_core,
 | 
				
			||||||
             :cartridge,
 | 
					 | 
				
			||||||
             :caliber,
 | 
					             :caliber,
 | 
				
			||||||
             :case_material,
 | 
					             :case_material,
 | 
				
			||||||
             :jacket_type,
 | 
					 | 
				
			||||||
             :muzzle_velocity,
 | 
					 | 
				
			||||||
             :powder_type,
 | 
					             :powder_type,
 | 
				
			||||||
             :powder_grains_per_charge,
 | 
					 | 
				
			||||||
             :grains,
 | 
					             :grains,
 | 
				
			||||||
             :pressure,
 | 
					             :pressure,
 | 
				
			||||||
             :primer_type,
 | 
					             :primer_type,
 | 
				
			||||||
             :firing_type,
 | 
					             :firing_type,
 | 
				
			||||||
 | 
					             :manufacturer,
 | 
				
			||||||
 | 
					             :upc,
 | 
				
			||||||
             :tracer,
 | 
					             :tracer,
 | 
				
			||||||
             :incendiary,
 | 
					             :incendiary,
 | 
				
			||||||
             :blank,
 | 
					             :blank,
 | 
				
			||||||
             :corrosive,
 | 
					             :corrosive,
 | 
				
			||||||
             :manufacturer,
 | 
					             :cartridge,
 | 
				
			||||||
             :upc
 | 
					             :jacket_type,
 | 
				
			||||||
 | 
					             :powder_grains_per_charge,
 | 
				
			||||||
 | 
					             :muzzle_velocity,
 | 
				
			||||||
 | 
					             :wadding,
 | 
				
			||||||
 | 
					             :shot_type,
 | 
				
			||||||
 | 
					             :shot_material,
 | 
				
			||||||
 | 
					             :shot_size,
 | 
				
			||||||
 | 
					             :unfired_length,
 | 
				
			||||||
 | 
					             :brass_height,
 | 
				
			||||||
 | 
					             :chamber_size,
 | 
				
			||||||
 | 
					             :load_grains,
 | 
				
			||||||
 | 
					             :shot_charge_weight,
 | 
				
			||||||
 | 
					             :dram_equivalent
 | 
				
			||||||
           ]}
 | 
					           ]}
 | 
				
			||||||
  @primary_key {:id, :binary_id, autogenerate: true}
 | 
					  @primary_key {:id, :binary_id, autogenerate: true}
 | 
				
			||||||
  @foreign_key_type :binary_id
 | 
					  @foreign_key_type :binary_id
 | 
				
			||||||
@@ -95,17 +105,23 @@ defmodule Cannery.Ammo.Type do
 | 
				
			|||||||
          class: class(),
 | 
					          class: class(),
 | 
				
			||||||
          bullet_type: String.t() | nil,
 | 
					          bullet_type: String.t() | nil,
 | 
				
			||||||
          bullet_core: String.t() | nil,
 | 
					          bullet_core: String.t() | nil,
 | 
				
			||||||
          cartridge: String.t() | nil,
 | 
					 | 
				
			||||||
          caliber: String.t() | nil,
 | 
					          caliber: String.t() | nil,
 | 
				
			||||||
          case_material: String.t() | nil,
 | 
					          case_material: String.t() | nil,
 | 
				
			||||||
          jacket_type: String.t() | nil,
 | 
					 | 
				
			||||||
          muzzle_velocity: integer() | nil,
 | 
					 | 
				
			||||||
          powder_type: String.t() | nil,
 | 
					          powder_type: String.t() | nil,
 | 
				
			||||||
          powder_grains_per_charge: integer() | nil,
 | 
					 | 
				
			||||||
          grains: integer() | nil,
 | 
					          grains: integer() | nil,
 | 
				
			||||||
          pressure: String.t() | nil,
 | 
					          pressure: String.t() | nil,
 | 
				
			||||||
          primer_type: String.t() | nil,
 | 
					          primer_type: String.t() | nil,
 | 
				
			||||||
          firing_type: String.t() | nil,
 | 
					          firing_type: String.t() | nil,
 | 
				
			||||||
 | 
					          manufacturer: String.t() | nil,
 | 
				
			||||||
 | 
					          upc: String.t() | nil,
 | 
				
			||||||
 | 
					          tracer: boolean(),
 | 
				
			||||||
 | 
					          incendiary: boolean(),
 | 
				
			||||||
 | 
					          blank: boolean(),
 | 
				
			||||||
 | 
					          corrosive: boolean(),
 | 
				
			||||||
 | 
					          cartridge: String.t() | nil,
 | 
				
			||||||
 | 
					          jacket_type: String.t() | nil,
 | 
				
			||||||
 | 
					          powder_grains_per_charge: integer() | nil,
 | 
				
			||||||
 | 
					          muzzle_velocity: integer() | nil,
 | 
				
			||||||
          wadding: String.t() | nil,
 | 
					          wadding: String.t() | nil,
 | 
				
			||||||
          shot_type: String.t() | nil,
 | 
					          shot_type: String.t() | nil,
 | 
				
			||||||
          shot_material: String.t() | nil,
 | 
					          shot_material: String.t() | nil,
 | 
				
			||||||
@@ -116,12 +132,6 @@ defmodule Cannery.Ammo.Type do
 | 
				
			|||||||
          load_grains: integer() | nil,
 | 
					          load_grains: integer() | nil,
 | 
				
			||||||
          shot_charge_weight: String.t() | nil,
 | 
					          shot_charge_weight: String.t() | nil,
 | 
				
			||||||
          dram_equivalent: String.t() | nil,
 | 
					          dram_equivalent: String.t() | nil,
 | 
				
			||||||
          tracer: boolean(),
 | 
					 | 
				
			||||||
          incendiary: boolean(),
 | 
					 | 
				
			||||||
          blank: boolean(),
 | 
					 | 
				
			||||||
          corrosive: boolean(),
 | 
					 | 
				
			||||||
          manufacturer: String.t() | nil,
 | 
					 | 
				
			||||||
          upc: String.t() | nil,
 | 
					 | 
				
			||||||
          user_id: User.id(),
 | 
					          user_id: User.id(),
 | 
				
			||||||
          packs: [Pack.t()] | nil,
 | 
					          packs: [Pack.t()] | nil,
 | 
				
			||||||
          inserted_at: NaiveDateTime.t(),
 | 
					          inserted_at: NaiveDateTime.t(),
 | 
				
			||||||
@@ -140,17 +150,23 @@ defmodule Cannery.Ammo.Type do
 | 
				
			|||||||
      :class,
 | 
					      :class,
 | 
				
			||||||
      :bullet_type,
 | 
					      :bullet_type,
 | 
				
			||||||
      :bullet_core,
 | 
					      :bullet_core,
 | 
				
			||||||
      :cartridge,
 | 
					 | 
				
			||||||
      :caliber,
 | 
					      :caliber,
 | 
				
			||||||
      :case_material,
 | 
					      :case_material,
 | 
				
			||||||
      :jacket_type,
 | 
					 | 
				
			||||||
      :muzzle_velocity,
 | 
					 | 
				
			||||||
      :powder_type,
 | 
					      :powder_type,
 | 
				
			||||||
      :powder_grains_per_charge,
 | 
					 | 
				
			||||||
      :grains,
 | 
					      :grains,
 | 
				
			||||||
      :pressure,
 | 
					      :pressure,
 | 
				
			||||||
      :primer_type,
 | 
					      :primer_type,
 | 
				
			||||||
      :firing_type,
 | 
					      :firing_type,
 | 
				
			||||||
 | 
					      :manufacturer,
 | 
				
			||||||
 | 
					      :upc,
 | 
				
			||||||
 | 
					      :tracer,
 | 
				
			||||||
 | 
					      :incendiary,
 | 
				
			||||||
 | 
					      :blank,
 | 
				
			||||||
 | 
					      :corrosive,
 | 
				
			||||||
 | 
					      :cartridge,
 | 
				
			||||||
 | 
					      :jacket_type,
 | 
				
			||||||
 | 
					      :powder_grains_per_charge,
 | 
				
			||||||
 | 
					      :muzzle_velocity,
 | 
				
			||||||
      :wadding,
 | 
					      :wadding,
 | 
				
			||||||
      :shot_type,
 | 
					      :shot_type,
 | 
				
			||||||
      :shot_material,
 | 
					      :shot_material,
 | 
				
			||||||
@@ -160,29 +176,26 @@ defmodule Cannery.Ammo.Type do
 | 
				
			|||||||
      :chamber_size,
 | 
					      :chamber_size,
 | 
				
			||||||
      :load_grains,
 | 
					      :load_grains,
 | 
				
			||||||
      :shot_charge_weight,
 | 
					      :shot_charge_weight,
 | 
				
			||||||
      :dram_equivalent,
 | 
					      :dram_equivalent
 | 
				
			||||||
      :tracer,
 | 
					 | 
				
			||||||
      :incendiary,
 | 
					 | 
				
			||||||
      :blank,
 | 
					 | 
				
			||||||
      :corrosive,
 | 
					 | 
				
			||||||
      :manufacturer,
 | 
					 | 
				
			||||||
      :upc
 | 
					 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @spec string_fields() :: [atom()]
 | 
					  @spec string_fields() :: [atom()]
 | 
				
			||||||
  defp string_fields,
 | 
					  defp string_fields,
 | 
				
			||||||
    do: [
 | 
					    do: [
 | 
				
			||||||
      :name,
 | 
					      :name,
 | 
				
			||||||
 | 
					      :desc,
 | 
				
			||||||
      :bullet_type,
 | 
					      :bullet_type,
 | 
				
			||||||
      :bullet_core,
 | 
					      :bullet_core,
 | 
				
			||||||
      :cartridge,
 | 
					 | 
				
			||||||
      :caliber,
 | 
					      :caliber,
 | 
				
			||||||
      :case_material,
 | 
					      :case_material,
 | 
				
			||||||
      :jacket_type,
 | 
					 | 
				
			||||||
      :powder_type,
 | 
					      :powder_type,
 | 
				
			||||||
      :pressure,
 | 
					      :pressure,
 | 
				
			||||||
      :primer_type,
 | 
					      :primer_type,
 | 
				
			||||||
      :firing_type,
 | 
					      :firing_type,
 | 
				
			||||||
 | 
					      :manufacturer,
 | 
				
			||||||
 | 
					      :upc,
 | 
				
			||||||
 | 
					      :cartridge,
 | 
				
			||||||
 | 
					      :jacket_type,
 | 
				
			||||||
      :wadding,
 | 
					      :wadding,
 | 
				
			||||||
      :shot_type,
 | 
					      :shot_type,
 | 
				
			||||||
      :shot_material,
 | 
					      :shot_material,
 | 
				
			||||||
@@ -191,9 +204,7 @@ defmodule Cannery.Ammo.Type do
 | 
				
			|||||||
      :brass_height,
 | 
					      :brass_height,
 | 
				
			||||||
      :chamber_size,
 | 
					      :chamber_size,
 | 
				
			||||||
      :shot_charge_weight,
 | 
					      :shot_charge_weight,
 | 
				
			||||||
      :dram_equivalent,
 | 
					      :dram_equivalent
 | 
				
			||||||
      :manufacturer,
 | 
					 | 
				
			||||||
      :upc
 | 
					 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @doc false
 | 
					  @doc false
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,28 +58,38 @@ defmodule CanneryWeb.ExportControllerTest do
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      ideal_type = %{
 | 
					      ideal_type = %{
 | 
				
			||||||
        "blank" => type.blank,
 | 
					 | 
				
			||||||
        "bullet_core" => type.bullet_core,
 | 
					 | 
				
			||||||
        "bullet_type" => type.bullet_type,
 | 
					 | 
				
			||||||
        "caliber" => type.caliber,
 | 
					 | 
				
			||||||
        "cartridge" => type.cartridge,
 | 
					 | 
				
			||||||
        "case_material" => type.case_material,
 | 
					 | 
				
			||||||
        "corrosive" => type.corrosive,
 | 
					 | 
				
			||||||
        "desc" => type.desc,
 | 
					 | 
				
			||||||
        "firing_type" => type.firing_type,
 | 
					 | 
				
			||||||
        "grains" => type.grains,
 | 
					 | 
				
			||||||
        "id" => type.id,
 | 
					 | 
				
			||||||
        "incendiary" => type.incendiary,
 | 
					 | 
				
			||||||
        "jacket_type" => type.jacket_type,
 | 
					 | 
				
			||||||
        "manufacturer" => type.manufacturer,
 | 
					 | 
				
			||||||
        "muzzle_velocity" => type.muzzle_velocity,
 | 
					 | 
				
			||||||
        "name" => type.name,
 | 
					        "name" => type.name,
 | 
				
			||||||
        "powder_grains_per_charge" => type.powder_grains_per_charge,
 | 
					        "desc" => type.desc,
 | 
				
			||||||
 | 
					        "class" => to_string(type.class),
 | 
				
			||||||
 | 
					        "bullet_type" => type.bullet_type,
 | 
				
			||||||
 | 
					        "bullet_core" => type.bullet_core,
 | 
				
			||||||
 | 
					        "caliber" => type.caliber,
 | 
				
			||||||
 | 
					        "case_material" => type.case_material,
 | 
				
			||||||
        "powder_type" => type.powder_type,
 | 
					        "powder_type" => type.powder_type,
 | 
				
			||||||
 | 
					        "grains" => type.grains,
 | 
				
			||||||
        "pressure" => type.pressure,
 | 
					        "pressure" => type.pressure,
 | 
				
			||||||
        "primer_type" => type.primer_type,
 | 
					        "primer_type" => type.primer_type,
 | 
				
			||||||
        "tracer" => type.tracer,
 | 
					        "firing_type" => type.firing_type,
 | 
				
			||||||
 | 
					        "manufacturer" => type.manufacturer,
 | 
				
			||||||
        "upc" => type.upc,
 | 
					        "upc" => type.upc,
 | 
				
			||||||
 | 
					        "tracer" => type.tracer,
 | 
				
			||||||
 | 
					        "incendiary" => type.incendiary,
 | 
				
			||||||
 | 
					        "blank" => type.blank,
 | 
				
			||||||
 | 
					        "corrosive" => type.corrosive,
 | 
				
			||||||
 | 
					        "cartridge" => type.cartridge,
 | 
				
			||||||
 | 
					        "jacket_type" => type.jacket_type,
 | 
				
			||||||
 | 
					        "powder_grains_per_charge" => type.powder_grains_per_charge,
 | 
				
			||||||
 | 
					        "muzzle_velocity" => type.muzzle_velocity,
 | 
				
			||||||
 | 
					        "wadding" => type.wadding,
 | 
				
			||||||
 | 
					        "shot_type" => type.shot_type,
 | 
				
			||||||
 | 
					        "shot_material" => type.shot_material,
 | 
				
			||||||
 | 
					        "shot_size" => type.shot_size,
 | 
				
			||||||
 | 
					        "unfired_length" => type.unfired_length,
 | 
				
			||||||
 | 
					        "brass_height" => type.brass_height,
 | 
				
			||||||
 | 
					        "chamber_size" => type.chamber_size,
 | 
				
			||||||
 | 
					        "load_grains" => type.load_grains,
 | 
				
			||||||
 | 
					        "shot_charge_weight" => type.shot_charge_weight,
 | 
				
			||||||
 | 
					        "dram_equivalent" => type.dram_equivalent,
 | 
				
			||||||
        "average_cost" => type |> Ammo.get_average_cost_for_type(current_user),
 | 
					        "average_cost" => type |> Ammo.get_average_cost_for_type(current_user),
 | 
				
			||||||
        "round_count" => type |> Ammo.get_round_count_for_type(current_user),
 | 
					        "round_count" => type |> Ammo.get_round_count_for_type(current_user),
 | 
				
			||||||
        "used_count" => type |> ActivityLog.get_used_count_for_type(current_user),
 | 
					        "used_count" => type |> ActivityLog.get_used_count_for_type(current_user),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user