Compare commits
	
		
			5 Commits
		
	
	
		
			09ce17b0c0
			...
			b6b6cecc0a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b6b6cecc0a | |||
| 08916a504f | |||
| 3eda522903 | |||
| 2e6e26006d | |||
| b66d0ea8a1 | 
@@ -17,7 +17,7 @@ steps:
 | 
			
		||||
      - .mix
 | 
			
		||||
 | 
			
		||||
- name: test
 | 
			
		||||
  image: elixir:1.17.3-otp-27-alpine
 | 
			
		||||
  image: elixir:1.18.1-otp-27-alpine
 | 
			
		||||
  environment:
 | 
			
		||||
    TEST_DATABASE_URL: ecto://postgres:postgres@database/cannery_test
 | 
			
		||||
    HOST: testing.example.tld
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
elixir 1.17.3-otp-27
 | 
			
		||||
erlang 27.1.2
 | 
			
		||||
nodejs 23.0.0
 | 
			
		||||
elixir 1.18.1-otp-27
 | 
			
		||||
erlang 27.2.1
 | 
			
		||||
nodejs 23.7.0
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,7 @@
 | 
			
		||||
# v0.9.13
 | 
			
		||||
- Add button to resend email verification email
 | 
			
		||||
- Move staging to container, rather than ammo
 | 
			
		||||
- Add date restriction dropdown to range page
 | 
			
		||||
- Fix dates not rendering properly in table
 | 
			
		||||
- Update deps
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM elixir:1.17.3-otp-27-alpine AS build
 | 
			
		||||
FROM elixir:1.18.1-otp-27-alpine AS build
 | 
			
		||||
 | 
			
		||||
# install build dependencies
 | 
			
		||||
RUN apk add --no-cache build-base npm git python3
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ $fa-font-path: "@fortawesome/fontawesome-free/webfonts";
 | 
			
		||||
  100% { scale: 1.0; opacity: 1; }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// disconnect toast
 | 
			
		||||
/* disconnect toast */
 | 
			
		||||
.phx-connected > #disconnect {
 | 
			
		||||
  opacity: 0 !important;
 | 
			
		||||
  pointer-events: none;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										172
									
								
								assets/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										172
									
								
								assets/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -28,7 +28,7 @@
 | 
			
		||||
        "glob": "^11.0.1",
 | 
			
		||||
        "mini-css-extract-plugin": "^2.9.2",
 | 
			
		||||
        "npm-check-updates": "^17.1.13",
 | 
			
		||||
        "postcss": "^8.4.49",
 | 
			
		||||
        "postcss": "^8.5.1",
 | 
			
		||||
        "postcss-import": "^16.1.0",
 | 
			
		||||
        "postcss-loader": "^8.1.1",
 | 
			
		||||
        "postcss-preset-env": "^10.1.3",
 | 
			
		||||
@@ -42,8 +42,8 @@
 | 
			
		||||
        "webpack-dev-server": "^5.2.0"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": "v23.0.0",
 | 
			
		||||
        "npm": "10.9.0"
 | 
			
		||||
        "node": "v23.7.0",
 | 
			
		||||
        "npm": "10.9.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "../deps/phoenix": {
 | 
			
		||||
@@ -3234,10 +3234,11 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "hasInstallScript": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "optional": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
@@ -3254,24 +3255,25 @@
 | 
			
		||||
        "url": "https://opencollective.com/parcel"
 | 
			
		||||
      },
 | 
			
		||||
      "optionalDependencies": {
 | 
			
		||||
        "@parcel/watcher-android-arm64": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-darwin-arm64": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-darwin-x64": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-freebsd-x64": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-linux-arm-glibc": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-linux-arm64-glibc": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-linux-arm64-musl": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-linux-x64-glibc": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-linux-x64-musl": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-win32-arm64": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-win32-ia32": "2.4.1",
 | 
			
		||||
        "@parcel/watcher-win32-x64": "2.4.1"
 | 
			
		||||
        "@parcel/watcher-android-arm64": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-darwin-arm64": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-darwin-x64": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-freebsd-x64": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-linux-arm-glibc": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-linux-arm-musl": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-linux-arm64-glibc": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-linux-arm64-musl": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-linux-x64-glibc": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-linux-x64-musl": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-win32-arm64": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-win32-ia32": "2.5.1",
 | 
			
		||||
        "@parcel/watcher-win32-x64": "2.5.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-android-arm64": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "arm64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3290,9 +3292,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-darwin-arm64": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "arm64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3311,9 +3313,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-darwin-x64": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "x64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3332,9 +3334,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-freebsd-x64": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "x64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3353,9 +3355,30 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-linux-arm-glibc": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "arm"
 | 
			
		||||
      ],
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "optional": true,
 | 
			
		||||
      "os": [
 | 
			
		||||
        "linux"
 | 
			
		||||
      ],
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 10.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "type": "opencollective",
 | 
			
		||||
        "url": "https://opencollective.com/parcel"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-linux-arm-musl": {
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "arm"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3374,9 +3397,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-linux-arm64-glibc": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "arm64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3395,9 +3418,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-linux-arm64-musl": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "arm64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3416,9 +3439,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-linux-x64-glibc": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "x64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3437,9 +3460,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-linux-x64-musl": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "x64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3458,9 +3481,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-win32-arm64": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "arm64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3479,9 +3502,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-win32-ia32": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "ia32"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -3500,9 +3523,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@parcel/watcher-win32-x64": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==",
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
 | 
			
		||||
      "cpu": [
 | 
			
		||||
        "x64"
 | 
			
		||||
      ],
 | 
			
		||||
@@ -5879,9 +5902,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/enhanced-resolve": {
 | 
			
		||||
      "version": "5.17.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
 | 
			
		||||
      "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
@@ -9159,9 +9182,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/nanoid": {
 | 
			
		||||
      "version": "3.3.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
 | 
			
		||||
      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
 | 
			
		||||
      "version": "3.3.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
 | 
			
		||||
      "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "funding": [
 | 
			
		||||
        {
 | 
			
		||||
@@ -9169,6 +9192,7 @@
 | 
			
		||||
          "url": "https://github.com/sponsors/ai"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "nanoid": "bin/nanoid.cjs"
 | 
			
		||||
      },
 | 
			
		||||
@@ -9827,9 +9851,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/postcss": {
 | 
			
		||||
      "version": "8.4.49",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
 | 
			
		||||
      "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
 | 
			
		||||
      "version": "8.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "funding": [
 | 
			
		||||
        {
 | 
			
		||||
@@ -9847,7 +9871,7 @@
 | 
			
		||||
      ],
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "nanoid": "^3.3.7",
 | 
			
		||||
        "nanoid": "^3.3.8",
 | 
			
		||||
        "picocolors": "^1.1.1",
 | 
			
		||||
        "source-map-js": "^1.2.1"
 | 
			
		||||
      },
 | 
			
		||||
@@ -11893,9 +11917,9 @@
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/sass": {
 | 
			
		||||
      "version": "1.83.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.1.tgz",
 | 
			
		||||
      "integrity": "sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA==",
 | 
			
		||||
      "version": "1.83.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.4.tgz",
 | 
			
		||||
      "integrity": "sha512-B1bozCeNQiOgDcLd33e2Cs2U60wZwjUUXzh900ZyQF5qUasvMdDZYbQ566LJu7cqR+sAHlAfO6RMkaID5s6qpA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
@@ -11955,9 +11979,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/sass/node_modules/chokidar": {
 | 
			
		||||
      "version": "4.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
 | 
			
		||||
      "version": "4.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
@@ -11971,13 +11995,13 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/sass/node_modules/readdirp": {
 | 
			
		||||
      "version": "4.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
 | 
			
		||||
      "version": "4.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14.16.0"
 | 
			
		||||
        "node": ">= 14.18.0"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "type": "individual",
 | 
			
		||||
 
 | 
			
		||||
@@ -3,8 +3,8 @@
 | 
			
		||||
  "description": " ",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": "v23.0.0",
 | 
			
		||||
    "npm": "10.9.0"
 | 
			
		||||
    "node": "v23.7.0",
 | 
			
		||||
    "npm": "10.9.2"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "deploy": "NODE_ENV=production webpack --mode production",
 | 
			
		||||
@@ -35,7 +35,7 @@
 | 
			
		||||
    "glob": "^11.0.1",
 | 
			
		||||
    "mini-css-extract-plugin": "^2.9.2",
 | 
			
		||||
    "npm-check-updates": "^17.1.13",
 | 
			
		||||
    "postcss": "^8.4.49",
 | 
			
		||||
    "postcss": "^8.5.1",
 | 
			
		||||
    "postcss-import": "^16.1.0",
 | 
			
		||||
    "postcss-loader": "^8.1.1",
 | 
			
		||||
    "postcss-preset-env": "^10.1.3",
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@
 | 
			
		||||
import Config
 | 
			
		||||
 | 
			
		||||
config :cannery,
 | 
			
		||||
  env: :dev,
 | 
			
		||||
  ecto_repos: [Cannery.Repo],
 | 
			
		||||
  generators: [binary_id: true]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,8 @@ config :cannery, CanneryWeb.Endpoint, cache_static_manifest: "priv/static/cache_
 | 
			
		||||
# Do not print debug messages in production
 | 
			
		||||
config :logger, level: :info
 | 
			
		||||
 | 
			
		||||
config :cannery, env: :prod
 | 
			
		||||
 | 
			
		||||
# ## SSL Support
 | 
			
		||||
#
 | 
			
		||||
# To get SSL working, you will need to add the `https` key
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,8 @@ config :cannery, CanneryWeb.Endpoint,
 | 
			
		||||
  secret_key_base: "S3qq9QtUdsFtlYej+HTjAVN95uP5i5tf2sPYINWSQfCKJghFj2B1+wTAoljZyHOK",
 | 
			
		||||
  server: false
 | 
			
		||||
 | 
			
		||||
config :cannery, env: :test
 | 
			
		||||
 | 
			
		||||
# In test we don't send emails.
 | 
			
		||||
config :cannery, Cannery.Mailer, adapter: Swoosh.Adapters.Test
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -218,7 +218,7 @@ defmodule Cannery.Accounts do
 | 
			
		||||
 | 
			
		||||
    with {:ok, query} <- UserToken.verify_change_email_token_query(token, context),
 | 
			
		||||
         %UserToken{sent_to: email} <- Repo.one(query),
 | 
			
		||||
         {:ok, _} <- Repo.transaction(user_email_multi(user, email, context)) do
 | 
			
		||||
         {:ok, _result} <- Repo.transaction(user_email_multi(user, email, context)) do
 | 
			
		||||
      :ok
 | 
			
		||||
    else
 | 
			
		||||
      _error_tuple -> :error
 | 
			
		||||
 
 | 
			
		||||
@@ -136,7 +136,7 @@ defmodule Cannery.Accounts.User do
 | 
			
		||||
    |> cast(attrs, [:email])
 | 
			
		||||
    |> validate_email()
 | 
			
		||||
    |> case do
 | 
			
		||||
      %{changes: %{email: _}} = changeset -> changeset
 | 
			
		||||
      %{changes: %{email: _email}} = changeset -> changeset
 | 
			
		||||
      %{} = changeset -> add_error(changeset, :email, dgettext("errors", "did not change"))
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -150,7 +150,7 @@ defmodule Cannery.Accounts.UserToken do
 | 
			
		||||
    from t in __MODULE__, where: t.user_id == ^user.id
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def user_and_contexts_query(user, [_ | _] = contexts) do
 | 
			
		||||
  def user_and_contexts_query(user, [_first | _rest] = contexts) do
 | 
			
		||||
    from t in __MODULE__, where: t.user_id == ^user.id and t.context in ^contexts
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,8 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
  @type list_shot_records_option ::
 | 
			
		||||
          {:search, String.t() | nil}
 | 
			
		||||
          | {:class, Type.class() | :all | nil}
 | 
			
		||||
          | {:start_date, String.t() | nil}
 | 
			
		||||
          | {:end_date, String.t() | nil}
 | 
			
		||||
          | {:pack_id, Pack.id() | nil}
 | 
			
		||||
  @type list_shot_records_options :: [list_shot_records_option()]
 | 
			
		||||
 | 
			
		||||
@@ -49,6 +51,8 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
    |> list_shot_records_search(Keyword.get(opts, :search))
 | 
			
		||||
    |> list_shot_records_class(Keyword.get(opts, :class))
 | 
			
		||||
    |> list_shot_records_pack_id(Keyword.get(opts, :pack_id))
 | 
			
		||||
    |> list_shot_records_start_date(Keyword.get(opts, :start_date))
 | 
			
		||||
    |> list_shot_records_end_date(Keyword.get(opts, :end_date))
 | 
			
		||||
    |> Repo.all()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -100,6 +104,20 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
 | 
			
		||||
  defp list_shot_records_pack_id(query, _all), do: query
 | 
			
		||||
 | 
			
		||||
  @spec list_shot_records_start_date(Queryable.t(), String.t() | nil) :: Queryable.t()
 | 
			
		||||
  defp list_shot_records_start_date(query, start_date) when start_date |> is_binary() do
 | 
			
		||||
    query |> where([sr: sr], sr.date >= ^Date.from_iso8601!(start_date))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp list_shot_records_start_date(query, _all), do: query
 | 
			
		||||
 | 
			
		||||
  @spec list_shot_records_end_date(Queryable.t(), String.t() | nil) :: Queryable.t()
 | 
			
		||||
  defp list_shot_records_end_date(query, end_date) when end_date |> is_binary() do
 | 
			
		||||
    query |> where([sr: sr], sr.date <= ^Date.from_iso8601!(end_date))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp list_shot_records_end_date(query, _all), do: query
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Returns a count of shot records.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -547,7 +547,7 @@ defmodule Cannery.Ammo do
 | 
			
		||||
 | 
			
		||||
  @spec list_packs_staged(Queryable.t(), staged :: boolean() | nil) :: Queryable.t()
 | 
			
		||||
  defp list_packs_staged(query, staged) when staged |> is_boolean(),
 | 
			
		||||
    do: query |> where([p: p], p.staged == ^staged)
 | 
			
		||||
    do: query |> where([c: c], c.staged == ^staged)
 | 
			
		||||
 | 
			
		||||
  defp list_packs_staged(query, _nil), do: query
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,21 +11,19 @@ defmodule Cannery.Ammo.Pack do
 | 
			
		||||
 | 
			
		||||
  @derive {Jason.Encoder,
 | 
			
		||||
           only: [
 | 
			
		||||
             :id,
 | 
			
		||||
             :container_id,
 | 
			
		||||
             :count,
 | 
			
		||||
             :id,
 | 
			
		||||
             :lot_number,
 | 
			
		||||
             :notes,
 | 
			
		||||
             :price_paid,
 | 
			
		||||
             :lot_number,
 | 
			
		||||
             :staged,
 | 
			
		||||
             :type_id,
 | 
			
		||||
             :container_id
 | 
			
		||||
             :type_id
 | 
			
		||||
           ]}
 | 
			
		||||
  schema "packs" do
 | 
			
		||||
    field :count, :integer
 | 
			
		||||
    field :lot_number, :string
 | 
			
		||||
    field :notes, :string
 | 
			
		||||
    field :price_paid, :float
 | 
			
		||||
    field :staged, :boolean, default: false
 | 
			
		||||
    field :lot_number, :string
 | 
			
		||||
    field :purchased_on, :date
 | 
			
		||||
 | 
			
		||||
    belongs_to :type, Type
 | 
			
		||||
@@ -36,12 +34,11 @@ defmodule Cannery.Ammo.Pack do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @type t :: %__MODULE__{
 | 
			
		||||
          id: id(),
 | 
			
		||||
          count: integer,
 | 
			
		||||
          id: id(),
 | 
			
		||||
          lot_number: String.t() | nil,
 | 
			
		||||
          notes: String.t() | nil,
 | 
			
		||||
          price_paid: float() | nil,
 | 
			
		||||
          staged: boolean(),
 | 
			
		||||
          lot_number: String.t() | nil,
 | 
			
		||||
          purchased_on: Date.t(),
 | 
			
		||||
          type: Type.t() | nil,
 | 
			
		||||
          type_id: Type.id(),
 | 
			
		||||
@@ -92,7 +89,13 @@ defmodule Cannery.Ammo.Pack do
 | 
			
		||||
    |> change(type_id: type_id)
 | 
			
		||||
    |> change(container_id: container_id)
 | 
			
		||||
    |> change(user_id: user_id)
 | 
			
		||||
    |> cast(attrs, [:count, :lot_number, :notes, :price_paid, :purchased_on, :staged])
 | 
			
		||||
    |> cast(attrs, [
 | 
			
		||||
      :count,
 | 
			
		||||
      :lot_number,
 | 
			
		||||
      :notes,
 | 
			
		||||
      :price_paid,
 | 
			
		||||
      :purchased_on
 | 
			
		||||
    ])
 | 
			
		||||
    |> validate_required(:type_id, message: dgettext("errors", "Please select a valid type"))
 | 
			
		||||
    |> validate_required(:container_id,
 | 
			
		||||
      message: dgettext("errors", "Please select a valid container")
 | 
			
		||||
@@ -100,7 +103,13 @@ defmodule Cannery.Ammo.Pack do
 | 
			
		||||
    |> validate_number(:count, greater_than: 0)
 | 
			
		||||
    |> validate_number(:price_paid, greater_than_or_equal_to: 0)
 | 
			
		||||
    |> validate_length(:lot_number, max: 255)
 | 
			
		||||
    |> validate_required([:count, :staged, :purchased_on, :type_id, :container_id, :user_id])
 | 
			
		||||
    |> validate_required([
 | 
			
		||||
      :container_id,
 | 
			
		||||
      :count,
 | 
			
		||||
      :purchased_on,
 | 
			
		||||
      :type_id,
 | 
			
		||||
      :user_id
 | 
			
		||||
    ])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @doc false
 | 
			
		||||
@@ -108,19 +117,22 @@ defmodule Cannery.Ammo.Pack do
 | 
			
		||||
  def update_changeset(pack, attrs, user) do
 | 
			
		||||
    pack
 | 
			
		||||
    |> cast(attrs, [
 | 
			
		||||
      :container_id,
 | 
			
		||||
      :count,
 | 
			
		||||
      :price_paid,
 | 
			
		||||
      :notes,
 | 
			
		||||
      :staged,
 | 
			
		||||
      :purchased_on,
 | 
			
		||||
      :lot_number,
 | 
			
		||||
      :container_id
 | 
			
		||||
      :notes,
 | 
			
		||||
      :price_paid,
 | 
			
		||||
      :purchased_on
 | 
			
		||||
    ])
 | 
			
		||||
    |> validate_number(:count, greater_than_or_equal_to: 0)
 | 
			
		||||
    |> validate_number(:price_paid, greater_than_or_equal_to: 0)
 | 
			
		||||
    |> validate_container_id(user)
 | 
			
		||||
    |> validate_length(:lot_number, max: 255)
 | 
			
		||||
    |> validate_required([:count, :staged, :purchased_on, :container_id])
 | 
			
		||||
    |> validate_required([
 | 
			
		||||
      :container_id,
 | 
			
		||||
      :count,
 | 
			
		||||
      :purchased_on
 | 
			
		||||
    ])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp validate_container_id(changeset, user) do
 | 
			
		||||
@@ -140,7 +152,7 @@ defmodule Cannery.Ammo.Pack do
 | 
			
		||||
  @spec range_changeset(t() | new_pack(), attrs :: map()) :: changeset()
 | 
			
		||||
  def range_changeset(pack, attrs) do
 | 
			
		||||
    pack
 | 
			
		||||
    |> cast(attrs, [:count, :staged])
 | 
			
		||||
    |> validate_required([:count, :staged])
 | 
			
		||||
    |> cast(attrs, [:count])
 | 
			
		||||
    |> validate_required([:count])
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,9 @@ defmodule Cannery.Containers do
 | 
			
		||||
 | 
			
		||||
  @container_preloads [:tags]
 | 
			
		||||
 | 
			
		||||
  @type list_containers_option :: {:search, String.t() | nil}
 | 
			
		||||
  @type list_containers_option ::
 | 
			
		||||
          {:search, String.t() | nil}
 | 
			
		||||
          | {:staged, boolean() | nil}
 | 
			
		||||
  @type list_containers_options :: [list_containers_option()]
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
@@ -20,7 +22,10 @@ defmodule Cannery.Containers do
 | 
			
		||||
      iex> list_containers(%User{id: 123})
 | 
			
		||||
      [%Container{}, ...]
 | 
			
		||||
 | 
			
		||||
      iex> list_containers(%User{id: 123}, search: "cool")
 | 
			
		||||
      iex> list_containers(%User{id: 123},
 | 
			
		||||
      ...>   search: "cool",
 | 
			
		||||
      ...>   staged: true
 | 
			
		||||
      ...> )
 | 
			
		||||
      [%Container{name: "my cool container"}, ...]
 | 
			
		||||
 | 
			
		||||
  """
 | 
			
		||||
@@ -37,9 +42,16 @@ defmodule Cannery.Containers do
 | 
			
		||||
      preload: ^@container_preloads
 | 
			
		||||
    )
 | 
			
		||||
    |> list_containers_search(Keyword.get(opts, :search))
 | 
			
		||||
    |> list_containers_staged(Keyword.get(opts, :staged))
 | 
			
		||||
    |> Repo.all()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @spec list_containers_staged(Queryable.t(), staged :: boolean() | nil) :: Queryable.t()
 | 
			
		||||
  defp list_containers_staged(query, staged) when staged |> is_boolean(),
 | 
			
		||||
    do: query |> where([c: c], c.staged == ^staged)
 | 
			
		||||
 | 
			
		||||
  defp list_containers_staged(query, _nil), do: query
 | 
			
		||||
 | 
			
		||||
  @spec list_containers_search(Queryable.t(), search :: String.t() | nil) :: Queryable.t()
 | 
			
		||||
  defp list_containers_search(query, search) when search in ["", nil],
 | 
			
		||||
    do: query |> order_by([c: c], c.name)
 | 
			
		||||
 
 | 
			
		||||
@@ -8,17 +8,19 @@ defmodule Cannery.Containers.Container do
 | 
			
		||||
 | 
			
		||||
  @derive {Jason.Encoder,
 | 
			
		||||
           only: [
 | 
			
		||||
             :id,
 | 
			
		||||
             :name,
 | 
			
		||||
             :desc,
 | 
			
		||||
             :id,
 | 
			
		||||
             :location,
 | 
			
		||||
             :type,
 | 
			
		||||
             :tags
 | 
			
		||||
             :name,
 | 
			
		||||
             :staged,
 | 
			
		||||
             :tags,
 | 
			
		||||
             :type
 | 
			
		||||
           ]}
 | 
			
		||||
  schema "containers" do
 | 
			
		||||
    field :name, :string
 | 
			
		||||
    field :desc, :string
 | 
			
		||||
    field :location, :string
 | 
			
		||||
    field :name, :string
 | 
			
		||||
    field :staged, :boolean, default: false
 | 
			
		||||
    field :type, :string
 | 
			
		||||
 | 
			
		||||
    field :user_id, :binary_id
 | 
			
		||||
@@ -29,10 +31,11 @@ defmodule Cannery.Containers.Container do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @type t :: %__MODULE__{
 | 
			
		||||
          id: id(),
 | 
			
		||||
          name: String.t(),
 | 
			
		||||
          desc: String.t(),
 | 
			
		||||
          id: id(),
 | 
			
		||||
          location: String.t(),
 | 
			
		||||
          name: String.t(),
 | 
			
		||||
          staged: boolean(),
 | 
			
		||||
          type: String.t(),
 | 
			
		||||
          user_id: User.id(),
 | 
			
		||||
          tags: [Tag.t()] | nil,
 | 
			
		||||
@@ -48,19 +51,40 @@ defmodule Cannery.Containers.Container do
 | 
			
		||||
  def create_changeset(container, %User{id: user_id}, attrs) do
 | 
			
		||||
    container
 | 
			
		||||
    |> change(user_id: user_id)
 | 
			
		||||
    |> cast(attrs, [:name, :desc, :type, :location])
 | 
			
		||||
    |> cast(attrs, [
 | 
			
		||||
      :desc,
 | 
			
		||||
      :location,
 | 
			
		||||
      :name,
 | 
			
		||||
      :staged,
 | 
			
		||||
      :type
 | 
			
		||||
    ])
 | 
			
		||||
    |> validate_length(:name, max: 255)
 | 
			
		||||
    |> validate_length(:type, max: 255)
 | 
			
		||||
    |> validate_required([:name, :type, :user_id])
 | 
			
		||||
    |> validate_required([
 | 
			
		||||
      :name,
 | 
			
		||||
      :staged,
 | 
			
		||||
      :type,
 | 
			
		||||
      :user_id
 | 
			
		||||
    ])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @doc false
 | 
			
		||||
  @spec update_changeset(t() | new_container(), attrs :: map()) :: changeset()
 | 
			
		||||
  def update_changeset(container, attrs) do
 | 
			
		||||
    container
 | 
			
		||||
    |> cast(attrs, [:name, :desc, :type, :location])
 | 
			
		||||
    |> cast(attrs, [
 | 
			
		||||
      :desc,
 | 
			
		||||
      :location,
 | 
			
		||||
      :name,
 | 
			
		||||
      :staged,
 | 
			
		||||
      :type
 | 
			
		||||
    ])
 | 
			
		||||
    |> validate_length(:name, max: 255)
 | 
			
		||||
    |> validate_length(:type, max: 255)
 | 
			
		||||
    |> validate_required([:name, :type])
 | 
			
		||||
    |> validate_required([
 | 
			
		||||
      :name,
 | 
			
		||||
      :staged,
 | 
			
		||||
      :type
 | 
			
		||||
    ])
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
 | 
			
		||||
  """
 | 
			
		||||
  use CanneryWeb, :live_component
 | 
			
		||||
  alias Cannery.{Accounts.User, Ammo, Containers.Container}
 | 
			
		||||
  alias CanneryWeb.Components.TableComponent
 | 
			
		||||
  alias Ecto.UUID
 | 
			
		||||
  alias Phoenix.LiveView.{Rendered, Socket}
 | 
			
		||||
 | 
			
		||||
@@ -13,6 +14,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
 | 
			
		||||
            required(:id) => UUID.t(),
 | 
			
		||||
            required(:current_user) => User.t(),
 | 
			
		||||
            optional(:containers) => [Container.t()],
 | 
			
		||||
            optional(:range) => Rendered.t(),
 | 
			
		||||
            optional(:tag_actions) => Rendered.t(),
 | 
			
		||||
            optional(:actions) => Rendered.t(),
 | 
			
		||||
            optional(any()) => any()
 | 
			
		||||
@@ -23,6 +25,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
 | 
			
		||||
    socket =
 | 
			
		||||
      socket
 | 
			
		||||
      |> assign(assigns)
 | 
			
		||||
      |> assign_new(:range, fn -> [] end)
 | 
			
		||||
      |> assign_new(:tag_actions, fn -> [] end)
 | 
			
		||||
      |> assign_new(:actions, fn -> [] end)
 | 
			
		||||
      |> display_containers()
 | 
			
		||||
@@ -35,6 +38,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
 | 
			
		||||
           assigns: %{
 | 
			
		||||
             containers: containers,
 | 
			
		||||
             current_user: current_user,
 | 
			
		||||
             range: range,
 | 
			
		||||
             tag_actions: tag_actions,
 | 
			
		||||
             actions: actions
 | 
			
		||||
           }
 | 
			
		||||
@@ -62,13 +66,22 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
 | 
			
		||||
      end)
 | 
			
		||||
      |> Enum.concat([
 | 
			
		||||
        %{label: gettext("Packs"), key: :packs, type: :integer},
 | 
			
		||||
        %{label: gettext("Rounds"), key: :rounds, type: :integer},
 | 
			
		||||
        %{label: gettext("Tags"), key: :tags, type: :tags},
 | 
			
		||||
        %{label: gettext("Actions"), key: :actions, sortable: false, type: :actions}
 | 
			
		||||
        %{label: gettext("Rounds"), key: :rounds, type: :integer}
 | 
			
		||||
      ])
 | 
			
		||||
      |> Enum.concat(
 | 
			
		||||
        [
 | 
			
		||||
          %{label: gettext("Tags"), key: :tags, type: :tags},
 | 
			
		||||
          %{label: gettext("Actions"), key: :actions, sortable: false, type: :actions}
 | 
			
		||||
        ]
 | 
			
		||||
        |> TableComponent.maybe_compose_columns(
 | 
			
		||||
          %{label: gettext("Range"), key: :range},
 | 
			
		||||
          range != []
 | 
			
		||||
        )
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
    extra_data = %{
 | 
			
		||||
      current_user: current_user,
 | 
			
		||||
      range: range,
 | 
			
		||||
      tag_actions: tag_actions,
 | 
			
		||||
      actions: actions,
 | 
			
		||||
      pack_count:
 | 
			
		||||
@@ -136,6 +149,15 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
 | 
			
		||||
    round_count |> Map.get(container_id, 0)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_value_for_key(:range, %{staged: staged} = container, %{range: range}) do
 | 
			
		||||
    assigns = %{range: range, container: container}
 | 
			
		||||
 | 
			
		||||
    {staged,
 | 
			
		||||
     ~H"""
 | 
			
		||||
     <%= render_slot(@range, @container) %>
 | 
			
		||||
     """}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_value_for_key(:tags, container, %{tag_actions: tag_actions}) do
 | 
			
		||||
    assigns = %{tag_actions: tag_actions, container: container}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -141,6 +141,18 @@ defmodule CanneryWeb.CoreComponents do
 | 
			
		||||
  """
 | 
			
		||||
  def datetime(assigns)
 | 
			
		||||
 | 
			
		||||
  attr :name, :string, required: true
 | 
			
		||||
 | 
			
		||||
  attr :start_date, :string,
 | 
			
		||||
    default: Date.utc_today() |> Date.shift(year: -1) |> Date.to_iso8601()
 | 
			
		||||
 | 
			
		||||
  attr :end_date, :string, default: Date.utc_today() |> Date.to_iso8601()
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Phoenix.Component for an element that generates date fields for a range
 | 
			
		||||
  """
 | 
			
		||||
  def date_range(assigns)
 | 
			
		||||
 | 
			
		||||
  @spec cast_datetime(NaiveDateTime.t() | nil) :: String.t()
 | 
			
		||||
  defp cast_datetime(%NaiveDateTime{} = datetime) do
 | 
			
		||||
    datetime |> DateTime.from_naive!("Etc/UTC") |> DateTime.to_iso8601(:extended)
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
<div class="flex items-center mx-4 my-2 space-x-1">
 | 
			
		||||
  <input
 | 
			
		||||
    class="w-36 text-center input input-primary"
 | 
			
		||||
    name={"#{@name}_start"}
 | 
			
		||||
    type="date"
 | 
			
		||||
    value={@start_date}
 | 
			
		||||
  />
 | 
			
		||||
  <span>—</span>
 | 
			
		||||
  <input
 | 
			
		||||
    class="w-36 text-center input input-primary"
 | 
			
		||||
    name={"#{@name}_end"}
 | 
			
		||||
    type="date"
 | 
			
		||||
    value={@end_date}
 | 
			
		||||
  />
 | 
			
		||||
</div>
 | 
			
		||||
@@ -201,13 +201,12 @@ defmodule CanneryWeb.Components.PackTableComponent do
 | 
			
		||||
     """}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_value_for_key(:range, %{staged: staged} = pack, %{range: range}) do
 | 
			
		||||
  defp get_value_for_key(:range, pack, %{range: range}) do
 | 
			
		||||
    assigns = %{range: range, pack: pack}
 | 
			
		||||
 | 
			
		||||
    {staged,
 | 
			
		||||
     ~H"""
 | 
			
		||||
     <%= render_slot(@range, @pack) %>
 | 
			
		||||
     """}
 | 
			
		||||
    ~H"""
 | 
			
		||||
    <%= render_slot(@range, @pack) %>
 | 
			
		||||
    """
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_value_for_key(
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ defmodule CanneryWeb.UserResetPasswordController do
 | 
			
		||||
  # leaked token giving the user access to the account.
 | 
			
		||||
  def update(conn, %{"user" => user_params}) do
 | 
			
		||||
    case Accounts.reset_user_password(conn.assigns.user, user_params) do
 | 
			
		||||
      {:ok, _} ->
 | 
			
		||||
      {:ok, _socket} ->
 | 
			
		||||
        conn
 | 
			
		||||
        |> put_flash(:info, dgettext("prompts", "Password reset successfully."))
 | 
			
		||||
        |> redirect(to: ~p"/users/log_in")
 | 
			
		||||
 
 | 
			
		||||
@@ -112,6 +112,20 @@ defmodule CanneryWeb.ContainerLive.Index do
 | 
			
		||||
    {:noreply, socket |> push_patch(to: ~p"/containers/search/#{search_term}")}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event(
 | 
			
		||||
        "toggle_staged",
 | 
			
		||||
        %{"container_id" => id},
 | 
			
		||||
        %{assigns: %{current_user: current_user}} = socket
 | 
			
		||||
      ) do
 | 
			
		||||
    container = Containers.get_container!(id, current_user)
 | 
			
		||||
 | 
			
		||||
    {:ok, _container} =
 | 
			
		||||
      container
 | 
			
		||||
      |> Containers.update_container(current_user, %{"staged" => !container.staged})
 | 
			
		||||
 | 
			
		||||
    {:noreply, socket |> display_containers()}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp display_containers(%{assigns: %{search: search, current_user: current_user}} = socket) do
 | 
			
		||||
    socket |> assign(:containers, Containers.list_containers(current_user, search: search))
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<div class="flex flex-col space-y-8 justify-center items-center">
 | 
			
		||||
  <h1 class="title text-2xl title-primary-500">
 | 
			
		||||
<div class="flex flex-col justify-center items-center space-y-8">
 | 
			
		||||
  <h1 class="text-2xl title title-primary-500">
 | 
			
		||||
    <%= gettext("Containers") %>
 | 
			
		||||
  </h1>
 | 
			
		||||
 | 
			
		||||
  <%= if @containers |> Enum.empty?() and @search |> is_nil() do %>
 | 
			
		||||
    <h2 class="title text-xl text-primary-600">
 | 
			
		||||
    <h2 class="text-xl title text-primary-600">
 | 
			
		||||
      <%= gettext("No containers") %>
 | 
			
		||||
      <%= display_emoji("😔") %>
 | 
			
		||||
    </h2>
 | 
			
		||||
@@ -17,14 +17,14 @@
 | 
			
		||||
      <%= dgettext("actions", "New Container") %>
 | 
			
		||||
    </.link>
 | 
			
		||||
 | 
			
		||||
    <div class="w-full flex flex-col sm:flex-row justify-center items-center space-y-4 sm:space-y-0 sm:space-x-4 max-w-2xl">
 | 
			
		||||
    <div class="flex flex-col justify-center items-center space-y-4 w-full max-w-2xl sm:flex-row sm:space-y-0 sm:space-x-4">
 | 
			
		||||
      <.form
 | 
			
		||||
        :let={f}
 | 
			
		||||
        for={%{}}
 | 
			
		||||
        as={:search}
 | 
			
		||||
        phx-change="search"
 | 
			
		||||
        phx-submit="search"
 | 
			
		||||
        class="grow flex items-center"
 | 
			
		||||
        class="flex items-center grow"
 | 
			
		||||
      >
 | 
			
		||||
        <%= text_input(f, :search_term,
 | 
			
		||||
          class: "grow input input-primary",
 | 
			
		||||
@@ -36,14 +36,14 @@
 | 
			
		||||
      </.form>
 | 
			
		||||
 | 
			
		||||
      <.toggle_button action="toggle_table" value={@view_table}>
 | 
			
		||||
        <span class="title text-lg text-primary-600">
 | 
			
		||||
        <span class="text-lg title text-primary-600">
 | 
			
		||||
          <%= gettext("View as table") %>
 | 
			
		||||
        </span>
 | 
			
		||||
      </.toggle_button>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <%= if @containers |> Enum.empty?() do %>
 | 
			
		||||
      <h2 class="title text-xl text-primary-600">
 | 
			
		||||
      <h2 class="text-xl title text-primary-600">
 | 
			
		||||
        <%= gettext("No containers") %>
 | 
			
		||||
        <%= display_emoji("😔") %>
 | 
			
		||||
      </h2>
 | 
			
		||||
@@ -56,6 +56,20 @@
 | 
			
		||||
          containers={@containers}
 | 
			
		||||
          current_user={@current_user}
 | 
			
		||||
        >
 | 
			
		||||
          <:range :let={container}>
 | 
			
		||||
            <div class="flex justify-center items-center px-4 py-2 h-full min-w-20 flex-wrap">
 | 
			
		||||
              <button
 | 
			
		||||
                type="button"
 | 
			
		||||
                class="mx-2 my-1 text-sm btn btn-primary"
 | 
			
		||||
                phx-click="toggle_staged"
 | 
			
		||||
                phx-value-container_id={container.id}
 | 
			
		||||
              >
 | 
			
		||||
                <%= if container.staged,
 | 
			
		||||
                  do: dgettext("actions", "Unstage"),
 | 
			
		||||
                  else: dgettext("actions", "Stage") %>
 | 
			
		||||
              </button>
 | 
			
		||||
            </div>
 | 
			
		||||
          </:range>
 | 
			
		||||
          <:tag_actions :let={container}>
 | 
			
		||||
            <div class="mx-4 my-2">
 | 
			
		||||
              <.link
 | 
			
		||||
@@ -109,7 +123,7 @@
 | 
			
		||||
          </:actions>
 | 
			
		||||
        </.live_component>
 | 
			
		||||
      <% else %>
 | 
			
		||||
        <div class="w-full flex flex-row flex-wrap justify-center items-stretch">
 | 
			
		||||
        <div class="flex flex-row flex-wrap justify-center items-stretch w-full">
 | 
			
		||||
          <.container_card
 | 
			
		||||
            :for={container <- @containers}
 | 
			
		||||
            container={container}
 | 
			
		||||
 
 | 
			
		||||
@@ -78,6 +78,18 @@ defmodule CanneryWeb.ContainerLive.Show do
 | 
			
		||||
    {:noreply, socket}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event(
 | 
			
		||||
        "toggle_staged",
 | 
			
		||||
        _params,
 | 
			
		||||
        %{assigns: %{container: container, current_user: current_user}} = socket
 | 
			
		||||
      ) do
 | 
			
		||||
    {:ok, _container} =
 | 
			
		||||
      container
 | 
			
		||||
      |> Containers.update_container(current_user, %{"staged" => !container.staged})
 | 
			
		||||
 | 
			
		||||
    {:noreply, socket |> render_container()}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do
 | 
			
		||||
    {:noreply, socket |> assign(:view_table, !view_table) |> render_container()}
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +1,34 @@
 | 
			
		||||
<div class="space-y-4 flex flex-col justify-center items-center">
 | 
			
		||||
  <h1 class="title text-2xl title-primary-500">
 | 
			
		||||
<div class="flex flex-col justify-center items-center space-y-4">
 | 
			
		||||
  <h1 class="text-2xl title title-primary-500">
 | 
			
		||||
    <%= @container.name %>
 | 
			
		||||
  </h1>
 | 
			
		||||
 | 
			
		||||
  <span :if={@container.desc} class="rounded-lg title text-lg">
 | 
			
		||||
  <span :if={@container.desc} class="text-lg rounded-lg title">
 | 
			
		||||
    <%= gettext("Description:") %>
 | 
			
		||||
    <%= @container.desc %>
 | 
			
		||||
  </span>
 | 
			
		||||
 | 
			
		||||
  <span class="rounded-lg title text-lg">
 | 
			
		||||
  <span class="text-lg rounded-lg title">
 | 
			
		||||
    <%= gettext("Type:") %>
 | 
			
		||||
    <%= @container.type %>
 | 
			
		||||
  </span>
 | 
			
		||||
 | 
			
		||||
  <span :if={@container.location} class="rounded-lg title text-lg">
 | 
			
		||||
  <span :if={@container.location} class="text-lg rounded-lg title">
 | 
			
		||||
    <%= gettext("Location:") %>
 | 
			
		||||
    <%= @container.location %>
 | 
			
		||||
  </span>
 | 
			
		||||
 | 
			
		||||
  <span class="rounded-lg title text-lg">
 | 
			
		||||
  <span class="text-lg rounded-lg title">
 | 
			
		||||
    <%= gettext("Packs:") %>
 | 
			
		||||
    <%= @packs_count %>
 | 
			
		||||
  </span>
 | 
			
		||||
 | 
			
		||||
  <span class="rounded-lg title text-lg">
 | 
			
		||||
  <span class="text-lg rounded-lg title">
 | 
			
		||||
    <%= gettext("Rounds:") %>
 | 
			
		||||
    <%= @round_count %>
 | 
			
		||||
  </span>
 | 
			
		||||
 | 
			
		||||
  <div class="flex space-x-4 justify-center items-center text-primary-600">
 | 
			
		||||
  <div class="flex justify-center items-center space-x-4 text-primary-600">
 | 
			
		||||
    <.link
 | 
			
		||||
      patch={~p"/container/edit/#{@container}"}
 | 
			
		||||
      class="text-primary-600 link"
 | 
			
		||||
@@ -52,11 +52,19 @@
 | 
			
		||||
    </.link>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="flex flex-wrap justify-center items-center text-primary-600">
 | 
			
		||||
    <button type="button" class="mx-4 my-2 btn btn-primary" phx-click="toggle_staged">
 | 
			
		||||
      <%= if @container.staged,
 | 
			
		||||
        do: dgettext("actions", "Unstage from range"),
 | 
			
		||||
        else: dgettext("actions", "Stage for range") %>
 | 
			
		||||
    </button>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <hr class="mb-4 hr" />
 | 
			
		||||
 | 
			
		||||
  <%= if @container.tags |> Enum.empty?() do %>
 | 
			
		||||
    <div class="flex flex-row justify-center items-center space-x-4">
 | 
			
		||||
      <h2 class="title text-lg text-primary-600">
 | 
			
		||||
      <h2 class="text-lg title text-primary-600">
 | 
			
		||||
        <%= gettext("No tags for this container") %>
 | 
			
		||||
        <%= display_emoji("😔") %>
 | 
			
		||||
      </h2>
 | 
			
		||||
@@ -105,15 +113,15 @@
 | 
			
		||||
    </.form>
 | 
			
		||||
 | 
			
		||||
    <.toggle_button action="toggle_table" value={@view_table}>
 | 
			
		||||
      <span class="title text-lg text-primary-600">
 | 
			
		||||
      <span class="text-lg title text-primary-600">
 | 
			
		||||
        <%= gettext("View as table") %>
 | 
			
		||||
      </span>
 | 
			
		||||
    </.toggle_button>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="w-full p-4">
 | 
			
		||||
  <div class="p-4 w-full">
 | 
			
		||||
    <%= if @packs |> Enum.empty?() do %>
 | 
			
		||||
      <h2 class="mx-4 title text-lg text-primary-600 text-center">
 | 
			
		||||
      <h2 class="mx-4 text-lg text-center title text-primary-600">
 | 
			
		||||
        <%= gettext("No ammo in this container") %>
 | 
			
		||||
      </h2>
 | 
			
		||||
    <% else %>
 | 
			
		||||
@@ -131,7 +139,7 @@
 | 
			
		||||
            </.link>
 | 
			
		||||
          </:type>
 | 
			
		||||
          <:actions :let={%{count: pack_count} = pack}>
 | 
			
		||||
            <div class="py-2 px-4 h-full space-x-4 flex justify-center items-center">
 | 
			
		||||
            <div class="flex justify-center items-center px-4 py-2 space-x-4 h-full">
 | 
			
		||||
              <.link
 | 
			
		||||
                navigate={~p"/ammo/show/#{pack}"}
 | 
			
		||||
                class="text-primary-600 link"
 | 
			
		||||
 
 | 
			
		||||
@@ -116,6 +116,20 @@ defmodule CanneryWeb.InviteLive.Index do
 | 
			
		||||
    {:noreply, socket |> put_flash(:info, dgettext("prompts", "Copied to clipboard"))}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event("resend_email_verification", %{"id" => id}, socket) do
 | 
			
		||||
    %{email: user_email} = user = Accounts.get_user!(id)
 | 
			
		||||
 | 
			
		||||
    Accounts.deliver_user_confirmation_instructions(
 | 
			
		||||
      user,
 | 
			
		||||
      fn token -> url(CanneryWeb.Endpoint, ~p"/users/confirm/#{token}") end
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    prompt =
 | 
			
		||||
      dgettext("prompts", "Email resent to %{user_email} succesfully", user_email: user_email)
 | 
			
		||||
 | 
			
		||||
    {:noreply, socket |> put_flash(:info, prompt) |> display_invites()}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event(
 | 
			
		||||
        "delete_user",
 | 
			
		||||
        %{"id" => id},
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<div class="mx-auto flex flex-col justify-center items-center space-y-4 max-w-3xl">
 | 
			
		||||
  <h1 class="title text-2xl title-primary-500">
 | 
			
		||||
<div class="flex flex-col justify-center items-center mx-auto space-y-4 max-w-3xl">
 | 
			
		||||
  <h1 class="text-2xl title title-primary-500">
 | 
			
		||||
    <%= gettext("Invites") %>
 | 
			
		||||
  </h1>
 | 
			
		||||
 | 
			
		||||
  <%= if @invites |> Enum.empty?() do %>
 | 
			
		||||
    <h1 class="title text-xl text-primary-600">
 | 
			
		||||
    <h1 class="text-xl title text-primary-600">
 | 
			
		||||
      <%= gettext("No invites") %>
 | 
			
		||||
      <%= display_emoji("😔") %>
 | 
			
		||||
    </h1>
 | 
			
		||||
@@ -95,7 +95,7 @@
 | 
			
		||||
  <%= unless @admins |> Enum.empty?() do %>
 | 
			
		||||
    <hr class="hr" />
 | 
			
		||||
 | 
			
		||||
    <h1 class="title text-2xl text-primary-600">
 | 
			
		||||
    <h1 class="text-2xl title text-primary-600">
 | 
			
		||||
      <%= gettext("Admins") %>
 | 
			
		||||
    </h1>
 | 
			
		||||
 | 
			
		||||
@@ -123,27 +123,38 @@
 | 
			
		||||
  <%= unless @users |> Enum.empty?() do %>
 | 
			
		||||
    <hr class="hr" />
 | 
			
		||||
 | 
			
		||||
    <h1 class="title text-2xl text-primary-600">
 | 
			
		||||
    <h1 class="text-2xl title text-primary-600">
 | 
			
		||||
      <%= gettext("Users") %>
 | 
			
		||||
    </h1>
 | 
			
		||||
 | 
			
		||||
    <div class="flex flex-col justify-center items-stretch space-y-4">
 | 
			
		||||
      <.user_card :for={user <- @users} user={user}>
 | 
			
		||||
        <.link
 | 
			
		||||
          href="#"
 | 
			
		||||
          class="text-primary-600 link"
 | 
			
		||||
          phx-click="delete_user"
 | 
			
		||||
          phx-value-id={user.id}
 | 
			
		||||
          data-confirm={
 | 
			
		||||
            dgettext(
 | 
			
		||||
              "prompts",
 | 
			
		||||
              "Are you sure you want to delete %{email}? This action is permanent!",
 | 
			
		||||
              email: user.email
 | 
			
		||||
            )
 | 
			
		||||
          }
 | 
			
		||||
        >
 | 
			
		||||
          <i class="fa-fw fa-lg fas fa-trash"></i>
 | 
			
		||||
        </.link>
 | 
			
		||||
        <div class="flex justify-center items-center space-x-2">
 | 
			
		||||
          <.link
 | 
			
		||||
            :if={!user.confirmed_at}
 | 
			
		||||
            class="text-primary-600 link"
 | 
			
		||||
            href="#"
 | 
			
		||||
            phx-click="resend_email_verification"
 | 
			
		||||
            phx-value-id={user.id}
 | 
			
		||||
          >
 | 
			
		||||
            <i class="fa-fw fa-lg fas fa-paper-plane"></i>
 | 
			
		||||
          </.link>
 | 
			
		||||
          <.link
 | 
			
		||||
            class="text-primary-600 link"
 | 
			
		||||
            data-confirm={
 | 
			
		||||
              dgettext(
 | 
			
		||||
                "prompts",
 | 
			
		||||
                "Are you sure you want to delete %{email}? This action is permanent!",
 | 
			
		||||
                email: user.email
 | 
			
		||||
              )
 | 
			
		||||
            }
 | 
			
		||||
            href="#"
 | 
			
		||||
            phx-click="delete_user"
 | 
			
		||||
            phx-value-id={user.id}
 | 
			
		||||
          >
 | 
			
		||||
            <i class="fa-fw fa-lg fas fa-trash"></i>
 | 
			
		||||
          </.link>
 | 
			
		||||
        </div>
 | 
			
		||||
      </.user_card>
 | 
			
		||||
    </div>
 | 
			
		||||
  <% end %>
 | 
			
		||||
 
 | 
			
		||||
@@ -96,18 +96,6 @@ defmodule CanneryWeb.PackLive.Index do
 | 
			
		||||
    {:noreply, socket |> put_flash(:info, prompt) |> display_packs()}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event(
 | 
			
		||||
        "toggle_staged",
 | 
			
		||||
        %{"pack_id" => id},
 | 
			
		||||
        %{assigns: %{current_user: current_user}} = socket
 | 
			
		||||
      ) do
 | 
			
		||||
    pack = Ammo.get_pack!(id, current_user)
 | 
			
		||||
 | 
			
		||||
    {:ok, _pack} = pack |> Ammo.update_pack(%{"staged" => !pack.staged}, current_user)
 | 
			
		||||
 | 
			
		||||
    {:noreply, socket |> display_packs()}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
 | 
			
		||||
    {:noreply, socket |> assign(:show_used, !show_used) |> display_packs()}
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<div class="flex flex-col space-y-8 justify-center items-center">
 | 
			
		||||
  <h1 class="title text-2xl title-primary-500">
 | 
			
		||||
<div class="flex flex-col justify-center items-center space-y-8">
 | 
			
		||||
  <h1 class="text-2xl title title-primary-500">
 | 
			
		||||
    <%= gettext("Ammo") %>
 | 
			
		||||
  </h1>
 | 
			
		||||
 | 
			
		||||
@@ -25,7 +25,7 @@
 | 
			
		||||
        </.link>
 | 
			
		||||
      </div>
 | 
			
		||||
    <% @packs_count == 0 -> %>
 | 
			
		||||
      <h2 class="title text-xl text-primary-600">
 | 
			
		||||
      <h2 class="text-xl title text-primary-600">
 | 
			
		||||
        <%= gettext("No ammo") %>
 | 
			
		||||
        <%= display_emoji("😔") %>
 | 
			
		||||
      </h2>
 | 
			
		||||
@@ -38,7 +38,7 @@
 | 
			
		||||
        <%= dgettext("actions", "Add Ammo") %>
 | 
			
		||||
      </.link>
 | 
			
		||||
 | 
			
		||||
      <div class="w-full flex flex-col sm:flex-row justify-center items-center space-y-4 sm:space-y-0 sm:space-x-4 max-w-2xl">
 | 
			
		||||
      <div class="flex flex-col justify-center items-center space-y-4 w-full max-w-2xl sm:flex-row sm:space-y-0 sm:space-x-4">
 | 
			
		||||
        <.form
 | 
			
		||||
          :let={f}
 | 
			
		||||
          for={%{}}
 | 
			
		||||
@@ -71,7 +71,7 @@
 | 
			
		||||
          as={:search}
 | 
			
		||||
          phx-change="search"
 | 
			
		||||
          phx-submit="search"
 | 
			
		||||
          class="grow flex items-center"
 | 
			
		||||
          class="flex items-center grow"
 | 
			
		||||
        >
 | 
			
		||||
          <%= text_input(f, :search_term,
 | 
			
		||||
            class: "grow input input-primary",
 | 
			
		||||
@@ -83,14 +83,14 @@
 | 
			
		||||
        </.form>
 | 
			
		||||
 | 
			
		||||
        <.toggle_button action="toggle_show_used" value={@show_used}>
 | 
			
		||||
          <span class="title text-lg text-primary-600">
 | 
			
		||||
          <span class="text-lg title text-primary-600">
 | 
			
		||||
            <%= gettext("Show used") %>
 | 
			
		||||
          </span>
 | 
			
		||||
        </.toggle_button>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <%= if @packs |> Enum.empty?() do %>
 | 
			
		||||
        <h2 class="title text-xl text-primary-600">
 | 
			
		||||
        <h2 class="text-xl title text-primary-600">
 | 
			
		||||
          <%= gettext("No Ammo") %>
 | 
			
		||||
          <%= display_emoji("😔") %>
 | 
			
		||||
        </h2>
 | 
			
		||||
@@ -108,18 +108,7 @@
 | 
			
		||||
            </.link>
 | 
			
		||||
          </:type>
 | 
			
		||||
          <:range :let={pack}>
 | 
			
		||||
            <div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
 | 
			
		||||
              <button
 | 
			
		||||
                type="button"
 | 
			
		||||
                class="mx-2 my-1 text-sm btn btn-primary"
 | 
			
		||||
                phx-click="toggle_staged"
 | 
			
		||||
                phx-value-pack_id={pack.id}
 | 
			
		||||
              >
 | 
			
		||||
                <%= if pack.staged,
 | 
			
		||||
                  do: dgettext("actions", "Unstage"),
 | 
			
		||||
                  else: dgettext("actions", "Stage") %>
 | 
			
		||||
              </button>
 | 
			
		||||
 | 
			
		||||
            <div class="flex flex-wrap justify-center items-center px-4 py-2 h-full min-w-20">
 | 
			
		||||
              <.link
 | 
			
		||||
                patch={~p"/ammo/add_shot_record/#{pack}"}
 | 
			
		||||
                class="mx-2 my-1 text-sm btn btn-primary"
 | 
			
		||||
@@ -129,7 +118,7 @@
 | 
			
		||||
            </div>
 | 
			
		||||
          </:range>
 | 
			
		||||
          <:container :let={{pack, %{name: container_name} = container}}>
 | 
			
		||||
            <div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
 | 
			
		||||
            <div class="flex flex-wrap justify-center items-center px-4 py-2 h-full min-w-20">
 | 
			
		||||
              <.link navigate={~p"/container/#{container}"} class="mx-2 my-1 link">
 | 
			
		||||
                <%= container_name %>
 | 
			
		||||
              </.link>
 | 
			
		||||
@@ -140,7 +129,7 @@
 | 
			
		||||
            </div>
 | 
			
		||||
          </:container>
 | 
			
		||||
          <:actions :let={%{count: pack_count} = pack}>
 | 
			
		||||
            <div class="py-2 px-4 h-full space-x-4 flex justify-center items-center">
 | 
			
		||||
            <div class="flex justify-center items-center px-4 py-2 space-x-4 h-full">
 | 
			
		||||
              <.link
 | 
			
		||||
                navigate={~p"/ammo/show/#{pack}"}
 | 
			
		||||
                class="text-primary-600 link"
 | 
			
		||||
 
 | 
			
		||||
@@ -57,22 +57,12 @@ defmodule CanneryWeb.PackLive.Show do
 | 
			
		||||
    {:noreply, socket |> put_flash(:info, prompt) |> push_navigate(to: redirect_to)}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event(
 | 
			
		||||
        "toggle_staged",
 | 
			
		||||
        _params,
 | 
			
		||||
        %{assigns: %{pack: pack, current_user: current_user}} = socket
 | 
			
		||||
      ) do
 | 
			
		||||
    {:ok, pack} = pack |> Ammo.update_pack(%{"staged" => !pack.staged}, current_user)
 | 
			
		||||
 | 
			
		||||
    {:noreply, socket |> display_pack(pack)}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event(
 | 
			
		||||
        "delete_shot_record",
 | 
			
		||||
        %{"id" => id},
 | 
			
		||||
        %{assigns: %{pack: %{id: pack_id}, current_user: current_user}} = socket
 | 
			
		||||
      ) do
 | 
			
		||||
    {:ok, _} =
 | 
			
		||||
    {:ok, _shot_record} =
 | 
			
		||||
      ActivityLog.get_shot_record!(id, current_user)
 | 
			
		||||
      |> ActivityLog.delete_shot_record(current_user)
 | 
			
		||||
 | 
			
		||||
@@ -136,7 +126,7 @@ defmodule CanneryWeb.PackLive.Show do
 | 
			
		||||
 | 
			
		||||
          :actions ->
 | 
			
		||||
            ~H"""
 | 
			
		||||
            <div class="px-4 py-2 space-x-4 flex justify-center items-center">
 | 
			
		||||
            <div class="flex justify-center items-center px-4 py-2 space-x-4">
 | 
			
		||||
              <.link
 | 
			
		||||
                patch={~p"/ammo/show/#{@pack}/edit/#{@shot_record}"}
 | 
			
		||||
                class="text-primary-600 link"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,43 +1,43 @@
 | 
			
		||||
<div class="mx-auto space-y-4 max-w-3xl flex flex-col justify-center items-center">
 | 
			
		||||
  <h1 class="title text-2xl title-primary-500">
 | 
			
		||||
<div class="flex flex-col justify-center items-center mx-auto space-y-4 max-w-3xl">
 | 
			
		||||
  <h1 class="text-2xl title title-primary-500">
 | 
			
		||||
    <%= @pack.type.name %>
 | 
			
		||||
  </h1>
 | 
			
		||||
 | 
			
		||||
  <div class="space-y-2 flex flex-col justify-center items-center">
 | 
			
		||||
    <span class="rounded-lg title text-lg">
 | 
			
		||||
  <div class="flex flex-col justify-center items-center space-y-2">
 | 
			
		||||
    <span class="text-lg rounded-lg title">
 | 
			
		||||
      <%= gettext("Count:") %>
 | 
			
		||||
      <%= @pack.count %>
 | 
			
		||||
    </span>
 | 
			
		||||
 | 
			
		||||
    <span class="rounded-lg title text-lg">
 | 
			
		||||
    <span class="text-lg rounded-lg title">
 | 
			
		||||
      <%= gettext("Original count:") %>
 | 
			
		||||
      <%= @original_count %>
 | 
			
		||||
    </span>
 | 
			
		||||
 | 
			
		||||
    <span class="rounded-lg title text-lg">
 | 
			
		||||
    <span class="text-lg rounded-lg title">
 | 
			
		||||
      <%= gettext("Percentage left:") %>
 | 
			
		||||
      <%= gettext("%{percentage}%", percentage: @percentage_remaining) %>
 | 
			
		||||
    </span>
 | 
			
		||||
 | 
			
		||||
    <%= if @pack.notes do %>
 | 
			
		||||
      <span class="rounded-lg title text-lg">
 | 
			
		||||
      <span class="text-lg rounded-lg title">
 | 
			
		||||
        <%= gettext("Notes:") %>
 | 
			
		||||
        <%= @pack.notes %>
 | 
			
		||||
      </span>
 | 
			
		||||
    <% end %>
 | 
			
		||||
 | 
			
		||||
    <span class="rounded-lg title text-lg">
 | 
			
		||||
    <span class="text-lg rounded-lg title">
 | 
			
		||||
      <%= gettext("Purchased on:") %>
 | 
			
		||||
      <.date id={"#{@pack.id}-purchased-on"} date={@pack.purchased_on} />
 | 
			
		||||
    </span>
 | 
			
		||||
 | 
			
		||||
    <%= if @pack.price_paid do %>
 | 
			
		||||
      <span class="rounded-lg title text-lg">
 | 
			
		||||
      <span class="text-lg rounded-lg title">
 | 
			
		||||
        <%= gettext("Original cost:") %>
 | 
			
		||||
        <%= gettext("$%{amount}", amount: display_currency(@pack.price_paid)) %>
 | 
			
		||||
      </span>
 | 
			
		||||
 | 
			
		||||
      <span class="rounded-lg title text-lg">
 | 
			
		||||
      <span class="text-lg rounded-lg title">
 | 
			
		||||
        <%= gettext("Current value:") %>
 | 
			
		||||
        <%= gettext("$%{amount}",
 | 
			
		||||
          amount: display_currency(@pack.price_paid * @percentage_remaining / 100)
 | 
			
		||||
@@ -76,12 +76,6 @@
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="flex flex-wrap justify-center items-center text-primary-600">
 | 
			
		||||
      <button type="button" class="mx-4 my-2 btn btn-primary" phx-click="toggle_staged">
 | 
			
		||||
        <%= if @pack.staged,
 | 
			
		||||
          do: dgettext("actions", "Unstage from range"),
 | 
			
		||||
          else: dgettext("actions", "Stage for range") %>
 | 
			
		||||
      </button>
 | 
			
		||||
 | 
			
		||||
      <.link patch={~p"/ammo/show/move/#{@pack}"} class="btn btn-primary">
 | 
			
		||||
        <%= dgettext("actions", "Move ammo") %>
 | 
			
		||||
      </.link>
 | 
			
		||||
@@ -96,7 +90,7 @@
 | 
			
		||||
 | 
			
		||||
  <div>
 | 
			
		||||
    <%= if @container do %>
 | 
			
		||||
      <h1 class="mb-4 px-4 py-2 text-center rounded-lg title text-xl">
 | 
			
		||||
      <h1 class="px-4 py-2 mb-4 text-xl text-center rounded-lg title">
 | 
			
		||||
        <%= gettext("Stored in") %>
 | 
			
		||||
      </h1>
 | 
			
		||||
 | 
			
		||||
@@ -109,7 +103,7 @@
 | 
			
		||||
  <%= unless @shot_records |> Enum.empty?() do %>
 | 
			
		||||
    <hr class="mb-4 w-full" />
 | 
			
		||||
 | 
			
		||||
    <h1 class="mb-4 px-4 py-2 text-center rounded-lg title text-xl">
 | 
			
		||||
    <h1 class="px-4 py-2 mb-4 text-xl text-center rounded-lg title">
 | 
			
		||||
      <%= gettext("Rounds used") %>
 | 
			
		||||
    </h1>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,16 +4,37 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
  """
 | 
			
		||||
 | 
			
		||||
  use CanneryWeb, :live_view
 | 
			
		||||
  alias Cannery.{ActivityLog, ActivityLog.ShotRecord, Ammo}
 | 
			
		||||
  alias Cannery.{ActivityLog, ActivityLog.ShotRecord}
 | 
			
		||||
  alias Cannery.{Ammo, Containers}
 | 
			
		||||
  alias Phoenix.LiveView.Socket
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def mount(%{"search" => search}, _session, socket) do
 | 
			
		||||
    {:ok, socket |> assign(class: :all, search: search) |> display_shot_records()}
 | 
			
		||||
    socket =
 | 
			
		||||
      socket
 | 
			
		||||
      |> assign(
 | 
			
		||||
        class: :all,
 | 
			
		||||
        start_date: Date.shift(Date.utc_today(), year: -1),
 | 
			
		||||
        end_date: Date.utc_today(),
 | 
			
		||||
        search: search
 | 
			
		||||
      )
 | 
			
		||||
      |> display_shot_records()
 | 
			
		||||
 | 
			
		||||
    {:ok, socket}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def mount(_params, _session, socket) do
 | 
			
		||||
    {:ok, socket |> assign(class: :all, search: nil) |> display_shot_records()}
 | 
			
		||||
    socket =
 | 
			
		||||
      socket
 | 
			
		||||
      |> assign(
 | 
			
		||||
        class: :all,
 | 
			
		||||
        start_date: Date.shift(Date.utc_today(), year: -1),
 | 
			
		||||
        end_date: Date.utc_today(),
 | 
			
		||||
        search: nil
 | 
			
		||||
      )
 | 
			
		||||
      |> display_shot_records()
 | 
			
		||||
 | 
			
		||||
    {:ok, socket}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
@@ -71,7 +92,7 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def handle_event("delete", %{"id" => id}, %{assigns: %{current_user: current_user}} = socket) do
 | 
			
		||||
    {:ok, _} =
 | 
			
		||||
    {:ok, _shot_record} =
 | 
			
		||||
      ActivityLog.get_shot_record!(id, current_user)
 | 
			
		||||
      |> ActivityLog.delete_shot_record(current_user)
 | 
			
		||||
 | 
			
		||||
@@ -81,14 +102,16 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
 | 
			
		||||
  def handle_event(
 | 
			
		||||
        "toggle_staged",
 | 
			
		||||
        %{"pack_id" => pack_id},
 | 
			
		||||
        %{"container_id" => container_id},
 | 
			
		||||
        %{assigns: %{current_user: current_user}} = socket
 | 
			
		||||
      ) do
 | 
			
		||||
    pack = Ammo.get_pack!(pack_id, current_user)
 | 
			
		||||
    container = Containers.get_container!(container_id, current_user)
 | 
			
		||||
 | 
			
		||||
    {:ok, _pack} = pack |> Ammo.update_pack(%{"staged" => !pack.staged}, current_user)
 | 
			
		||||
    {:ok, _container} =
 | 
			
		||||
      container
 | 
			
		||||
      |> Containers.update_container(current_user, %{"staged" => !container.staged})
 | 
			
		||||
 | 
			
		||||
    prompt = dgettext("prompts", "Ammo unstaged succesfully")
 | 
			
		||||
    prompt = dgettext("prompts", "Container unstaged succesfully")
 | 
			
		||||
    {:noreply, socket |> put_flash(:info, prompt) |> display_shot_records()}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -116,11 +139,49 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
    {:noreply, socket |> assign(:class, :all) |> display_shot_records()}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event(
 | 
			
		||||
        "change_dates",
 | 
			
		||||
        %{
 | 
			
		||||
          "dates_start" => start_date,
 | 
			
		||||
          "dates_end" => end_date
 | 
			
		||||
        },
 | 
			
		||||
        socket
 | 
			
		||||
      ) do
 | 
			
		||||
    socket =
 | 
			
		||||
      socket
 | 
			
		||||
      |> assign(
 | 
			
		||||
        start_date: start_date,
 | 
			
		||||
        end_date: end_date
 | 
			
		||||
      )
 | 
			
		||||
      |> display_shot_records()
 | 
			
		||||
 | 
			
		||||
    {:noreply, socket}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @spec display_shot_records(Socket.t()) :: Socket.t()
 | 
			
		||||
  defp display_shot_records(
 | 
			
		||||
         %{assigns: %{class: class, search: search, current_user: current_user}} = socket
 | 
			
		||||
         %{
 | 
			
		||||
           assigns: %{
 | 
			
		||||
             class: class,
 | 
			
		||||
             start_date: start_date,
 | 
			
		||||
             end_date: end_date,
 | 
			
		||||
             search: search,
 | 
			
		||||
             current_user: current_user
 | 
			
		||||
           }
 | 
			
		||||
         } = socket
 | 
			
		||||
       ) do
 | 
			
		||||
    shot_records = ActivityLog.list_shot_records(current_user, search: search, class: class)
 | 
			
		||||
    shot_records =
 | 
			
		||||
      ActivityLog.list_shot_records(current_user,
 | 
			
		||||
        class: class,
 | 
			
		||||
        end_date: end_date,
 | 
			
		||||
        search: search,
 | 
			
		||||
        start_date: start_date
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
    containers =
 | 
			
		||||
      Containers.list_containers(current_user, staged: true)
 | 
			
		||||
      |> Map.new(fn container = %{id: container_id} -> {container_id, container} end)
 | 
			
		||||
 | 
			
		||||
    packs = Ammo.list_packs(current_user, staged: true)
 | 
			
		||||
    chart_data = shot_records |> get_chart_data_for_shot_record()
 | 
			
		||||
    original_counts = packs |> Ammo.get_original_counts(current_user)
 | 
			
		||||
@@ -130,6 +191,7 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
 | 
			
		||||
    socket
 | 
			
		||||
    |> assign(
 | 
			
		||||
      containers: containers,
 | 
			
		||||
      packs: packs,
 | 
			
		||||
      original_counts: original_counts,
 | 
			
		||||
      cprs: cprs,
 | 
			
		||||
@@ -153,6 +215,5 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
        label: gettext("Rounds shot: %{count}", count: sum)
 | 
			
		||||
      }
 | 
			
		||||
    end)
 | 
			
		||||
    |> Enum.sort_by(fn %{date: date} -> date end, Date)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,43 +1,55 @@
 | 
			
		||||
<div class="flex flex-col space-y-8 justify-center items-center">
 | 
			
		||||
  <h1 class="title text-2xl title-primary-500">
 | 
			
		||||
<div class="flex flex-col justify-center items-center space-y-8">
 | 
			
		||||
  <h1 class="text-2xl title title-primary-500">
 | 
			
		||||
    <%= gettext("Range day") %>
 | 
			
		||||
  </h1>
 | 
			
		||||
 | 
			
		||||
  <%= if @packs |> Enum.empty?() do %>
 | 
			
		||||
    <h1 class="title text-xl text-primary-600">
 | 
			
		||||
      <%= gettext("No ammo staged") %>
 | 
			
		||||
  <%= if @containers |> Enum.empty?() do %>
 | 
			
		||||
    <h1 class="text-xl title text-primary-600">
 | 
			
		||||
      <%= gettext("No containers staged") %>
 | 
			
		||||
      <%= display_emoji("😔") %>
 | 
			
		||||
    </h1>
 | 
			
		||||
 | 
			
		||||
    <.link navigate={~p"/ammo"} class="btn btn-primary">
 | 
			
		||||
    <.link navigate={~p"/containers"} class="btn btn-primary">
 | 
			
		||||
      <%= dgettext("actions", "Why not get some ready to shoot?") %>
 | 
			
		||||
    </.link>
 | 
			
		||||
  <% else %>
 | 
			
		||||
    <.link navigate={~p"/ammo"} class="btn btn-primary">
 | 
			
		||||
      <%= dgettext("actions", "Stage ammo") %>
 | 
			
		||||
    <.link navigate={~p"/containers"} class="btn btn-primary">
 | 
			
		||||
      <%= dgettext("actions", "Stage containers") %>
 | 
			
		||||
    </.link>
 | 
			
		||||
 | 
			
		||||
    <div class="w-full flex flex-row flex-wrap justify-center items-stretch">
 | 
			
		||||
    <div class="flex flex-row flex-wrap justify-center items-stretch w-full">
 | 
			
		||||
      <.container_card
 | 
			
		||||
        :for={{container_id, container} <- @containers}
 | 
			
		||||
        container={container}
 | 
			
		||||
        current_user={@current_user}
 | 
			
		||||
      >
 | 
			
		||||
        <div class="flex flex-wrap justify-center items-center px-4 py-2 h-full min-w-20">
 | 
			
		||||
          <button
 | 
			
		||||
            type="button"
 | 
			
		||||
            class="mx-2 my-1 text-sm btn btn-primary"
 | 
			
		||||
            phx-click="toggle_staged"
 | 
			
		||||
            phx-value-container_id={container_id}
 | 
			
		||||
          >
 | 
			
		||||
            <%= if container.staged,
 | 
			
		||||
              do: dgettext("actions", "Unstage"),
 | 
			
		||||
              else: dgettext("actions", "Stage") %>
 | 
			
		||||
          </button>
 | 
			
		||||
        </div>
 | 
			
		||||
      </.container_card>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <hr class="hr" />
 | 
			
		||||
 | 
			
		||||
    <div class="flex flex-row flex-wrap justify-center items-stretch w-full">
 | 
			
		||||
      <.pack_card
 | 
			
		||||
        :for={%{id: pack_id} = pack <- @packs}
 | 
			
		||||
        :for={%{id: pack_id, container_id: container_id} = pack <- @packs}
 | 
			
		||||
        pack={pack}
 | 
			
		||||
        original_count={Map.fetch!(@original_counts, pack_id)}
 | 
			
		||||
        cpr={Map.get(@cprs, pack_id)}
 | 
			
		||||
        last_used_date={Map.get(@last_used_dates, pack_id)}
 | 
			
		||||
        current_user={@current_user}
 | 
			
		||||
        container={Map.fetch!(@containers, container_id)}
 | 
			
		||||
      >
 | 
			
		||||
        <button
 | 
			
		||||
          type="button"
 | 
			
		||||
          class="btn btn-primary"
 | 
			
		||||
          phx-click="toggle_staged"
 | 
			
		||||
          phx-value-pack_id={pack.id}
 | 
			
		||||
          data-confirm={"#{dgettext("prompts", "Are you sure you want to unstage this ammo?")}"}
 | 
			
		||||
        >
 | 
			
		||||
          <%= if pack.staged,
 | 
			
		||||
            do: dgettext("actions", "Unstage from range"),
 | 
			
		||||
            else: dgettext("actions", "Stage for range") %>
 | 
			
		||||
        </button>
 | 
			
		||||
 | 
			
		||||
        <.link patch={~p"/range/add_shot_record/#{pack}"} class="btn btn-primary">
 | 
			
		||||
          <%= dgettext("actions", "Record shots") %>
 | 
			
		||||
        </.link>
 | 
			
		||||
@@ -48,12 +60,12 @@
 | 
			
		||||
  <hr class="hr" />
 | 
			
		||||
 | 
			
		||||
  <%= if @shot_record_count == 0 do %>
 | 
			
		||||
    <h1 class="title text-xl text-primary-600">
 | 
			
		||||
    <h1 class="text-xl title text-primary-600">
 | 
			
		||||
      <%= gettext("No shots recorded") %>
 | 
			
		||||
      <%= display_emoji("😔") %>
 | 
			
		||||
    </h1>
 | 
			
		||||
  <% else %>
 | 
			
		||||
    <h1 class="title text-2xl text-primary-600">
 | 
			
		||||
    <h1 class="text-2xl title text-primary-600">
 | 
			
		||||
      <%= gettext("Shot log") %>
 | 
			
		||||
    </h1>
 | 
			
		||||
 | 
			
		||||
@@ -71,7 +83,7 @@
 | 
			
		||||
      <%= dgettext("errors", "Your browser does not support the canvas element.") %>
 | 
			
		||||
    </canvas>
 | 
			
		||||
 | 
			
		||||
    <div class="w-full flex flex-col sm:flex-row justify-center items-center space-y-4 sm:space-y-0 sm:space-x-4 max-w-2xl">
 | 
			
		||||
    <div class="flex flex-col justify-center items-center space-y-4 w-full max-w-2xl sm:flex-row sm:space-y-0 sm:space-x-4">
 | 
			
		||||
      <.form
 | 
			
		||||
        :let={f}
 | 
			
		||||
        for={%{}}
 | 
			
		||||
@@ -104,7 +116,7 @@
 | 
			
		||||
        as={:search}
 | 
			
		||||
        phx-change="search"
 | 
			
		||||
        phx-submit="search"
 | 
			
		||||
        class="grow flex items-center"
 | 
			
		||||
        class="flex items-center grow"
 | 
			
		||||
      >
 | 
			
		||||
        <%= text_input(f, :search_term,
 | 
			
		||||
          class: "grow input input-primary",
 | 
			
		||||
@@ -114,10 +126,25 @@
 | 
			
		||||
          value: @search
 | 
			
		||||
        ) %>
 | 
			
		||||
      </.form>
 | 
			
		||||
 | 
			
		||||
      <.form
 | 
			
		||||
        :let={f}
 | 
			
		||||
        for={%{}}
 | 
			
		||||
        as={:shot_records}
 | 
			
		||||
        phx-change="change_dates"
 | 
			
		||||
        phx-submit="change_dates"
 | 
			
		||||
        class="flex items-center"
 | 
			
		||||
      >
 | 
			
		||||
        <%= label(f, :dates_start, gettext("Dates"),
 | 
			
		||||
          class: "title text-primary-600 text-lg text-center"
 | 
			
		||||
        ) %>
 | 
			
		||||
 | 
			
		||||
        <.date_range name="dates" />
 | 
			
		||||
      </.form>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <%= if @shot_records |> Enum.empty?() do %>
 | 
			
		||||
      <h1 class="title text-xl text-primary-600">
 | 
			
		||||
      <h1 class="text-xl title text-primary-600">
 | 
			
		||||
        <%= gettext("No shots recorded") %>
 | 
			
		||||
        <%= display_emoji("😔") %>
 | 
			
		||||
      </h1>
 | 
			
		||||
@@ -129,7 +156,7 @@
 | 
			
		||||
        current_user={@current_user}
 | 
			
		||||
      >
 | 
			
		||||
        <:actions :let={shot_record}>
 | 
			
		||||
          <div class="px-4 py-2 space-x-4 flex justify-center items-center">
 | 
			
		||||
          <div class="flex justify-center items-center px-4 py-2 space-x-4">
 | 
			
		||||
            <.link
 | 
			
		||||
              patch={~p"/range/edit/#{shot_record}"}
 | 
			
		||||
              class="text-primary-600 link"
 | 
			
		||||
 
 | 
			
		||||
@@ -120,7 +120,7 @@ defmodule CanneryWeb.Router do
 | 
			
		||||
  #
 | 
			
		||||
  # Note that preview only shows emails that were sent by the same
 | 
			
		||||
  # node running the Phoenix server.
 | 
			
		||||
  if Mix.env() == :dev do
 | 
			
		||||
  if Application.compile_env(:cannery, :env) == :dev do
 | 
			
		||||
    scope "/dev" do
 | 
			
		||||
      pipe_through :browser
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								mix.exs
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								mix.exs
									
									
									
									
									
								
							@@ -5,7 +5,7 @@ defmodule Cannery.MixProject do
 | 
			
		||||
    [
 | 
			
		||||
      app: :cannery,
 | 
			
		||||
      version: "0.9.13",
 | 
			
		||||
      elixir: "1.17.3",
 | 
			
		||||
      elixir: "1.18.1",
 | 
			
		||||
      elixirc_paths: elixirc_paths(Mix.env()),
 | 
			
		||||
      start_permanent: Mix.env() == :prod,
 | 
			
		||||
      aliases: aliases(),
 | 
			
		||||
 
 | 
			
		||||
@@ -131,7 +131,7 @@ msgstr ""
 | 
			
		||||
msgid "Send instructions to reset password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not add one?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -141,19 +141,14 @@ msgstr ""
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not get some ready to shoot?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:90
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:84
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -199,8 +194,8 @@ msgid "View in Catalog"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:77
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:86
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -210,14 +205,12 @@ msgstr ""
 | 
			
		||||
msgid "Set Unlimited"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:82
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage for range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage from range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -227,8 +220,8 @@ msgstr ""
 | 
			
		||||
msgid "Export Data as JSON"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:145
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:101
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:159
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -238,8 +231,8 @@ msgstr ""
 | 
			
		||||
msgid "Copy invite link for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:162
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:48
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{container_name}"
 | 
			
		||||
@@ -255,8 +248,8 @@ msgstr ""
 | 
			
		||||
msgid "Delete invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:77
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{container_name}"
 | 
			
		||||
@@ -272,54 +265,56 @@ msgstr ""
 | 
			
		||||
msgid "Edit invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:120
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:79
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:161
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:147
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:181
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:134
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -355,3 +350,8 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "add a type first"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -144,7 +144,7 @@ msgstr "Speichern"
 | 
			
		||||
msgid "Send instructions to reset password"
 | 
			
		||||
msgstr "Anleitung zum Passwort zurücksetzen zusenden"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not add one?"
 | 
			
		||||
msgstr "Warum fügen Sie keine hinzu?"
 | 
			
		||||
@@ -154,19 +154,14 @@ msgstr "Warum fügen Sie keine hinzu?"
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr "Hinzufügen"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage ammo"
 | 
			
		||||
msgstr "Munition markieren"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not get some ready to shoot?"
 | 
			
		||||
msgstr "Warum nicht einige für den Schießstand auswählen?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:90
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:84
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Schüsse dokumentieren"
 | 
			
		||||
@@ -212,8 +207,8 @@ msgid "View in Catalog"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:77
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:86
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -223,14 +218,12 @@ msgstr ""
 | 
			
		||||
msgid "Set Unlimited"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:82
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage for range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage from range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -240,8 +233,8 @@ msgstr ""
 | 
			
		||||
msgid "Export Data as JSON"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:145
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:101
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:159
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -251,8 +244,8 @@ msgstr ""
 | 
			
		||||
msgid "Copy invite link for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:162
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:48
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{container_name}"
 | 
			
		||||
@@ -268,8 +261,8 @@ msgstr ""
 | 
			
		||||
msgid "Delete invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:77
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{container_name}"
 | 
			
		||||
@@ -285,54 +278,56 @@ msgstr ""
 | 
			
		||||
msgid "Edit invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:120
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Stage"
 | 
			
		||||
msgstr "Munition markieren"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:79
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:161
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:147
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:181
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:134
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -368,3 +363,8 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "add a type first"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -117,7 +117,7 @@ msgstr "Anzahl"
 | 
			
		||||
msgid "Count:"
 | 
			
		||||
msgstr "Anzahl:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:50
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -189,7 +189,7 @@ msgstr "Einladungen"
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr "Für 60 Tage eingeloggt bleiben"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:51
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:66
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:49
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -224,7 +224,7 @@ msgstr "Metallene Munitionskiste mit Anime-Girl-Sticker"
 | 
			
		||||
msgid "My cool ammo can"
 | 
			
		||||
msgstr "Meine coole Munitionskiste"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:49
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:152
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
 | 
			
		||||
@@ -281,7 +281,7 @@ msgstr "Keine Tags"
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:90
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:30
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Notes"
 | 
			
		||||
@@ -354,12 +354,12 @@ msgstr "Einfach:"
 | 
			
		||||
msgid "Steel"
 | 
			
		||||
msgstr "Stahl"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:94
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stored in"
 | 
			
		||||
msgstr "Gelagert in"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:66
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:73
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:43
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:53
 | 
			
		||||
@@ -389,7 +389,7 @@ msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr "Leuchtspur"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:52
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:108
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:40
 | 
			
		||||
@@ -419,15 +419,16 @@ msgstr "Verbleibende Nutzung"
 | 
			
		||||
msgid "Your data stays with you, period"
 | 
			
		||||
msgstr "Ihre Daten bleiben bei Ihnen, Punkt"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No tags for this container"
 | 
			
		||||
msgstr "Keine Tags für diesen Behälter"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:77
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:76
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr "Schießplatz"
 | 
			
		||||
@@ -439,7 +440,7 @@ msgstr "Range Day"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:91
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:41
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Date"
 | 
			
		||||
@@ -450,26 +451,21 @@ msgstr "Datum"
 | 
			
		||||
msgid "Shots fired"
 | 
			
		||||
msgstr "Schüsse abgegeben"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo staged"
 | 
			
		||||
msgstr "Keine Munition selektiert"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Schüsse dokumentieren"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:148
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr "Keine Schüsse dokumentiert"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:89
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr "Patronen abgefeuert"
 | 
			
		||||
@@ -484,7 +480,7 @@ msgstr "Munition verschieben"
 | 
			
		||||
msgid "No other containers"
 | 
			
		||||
msgstr "Kein weiterer Behälter"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot log"
 | 
			
		||||
msgstr "Schießkladde"
 | 
			
		||||
@@ -492,7 +488,7 @@ msgstr "Schießkladde"
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
@@ -565,13 +561,13 @@ msgid "Reconnecting..."
 | 
			
		||||
msgstr "Neu verbinden..."
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:130
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr "%{name} bearbeiten"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:131
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr "Editiere %{name} Tags"
 | 
			
		||||
@@ -584,7 +580,7 @@ msgid "Rounds:"
 | 
			
		||||
msgstr "Patronen:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -616,7 +612,7 @@ msgstr "Ursprüngliche Anzahl:"
 | 
			
		||||
msgid "Percentage left:"
 | 
			
		||||
msgstr "Prozent verbleibend:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds used"
 | 
			
		||||
msgstr "Patronen verbraucht"
 | 
			
		||||
@@ -647,8 +643,8 @@ msgid "Reset your password"
 | 
			
		||||
msgstr "Passwort zurücksetzen"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record Shots"
 | 
			
		||||
msgstr "Schüsse dokumentieren"
 | 
			
		||||
@@ -706,7 +702,7 @@ msgstr "Munitionstyp bearbeiten"
 | 
			
		||||
msgid "Move Ammo"
 | 
			
		||||
msgstr "Munition verschieben"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:125
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No ammo in this container"
 | 
			
		||||
msgstr "Keine Munitionsgruppe in diesem Behälter"
 | 
			
		||||
@@ -716,7 +712,7 @@ msgstr "Keine Munitionsgruppe in diesem Behälter"
 | 
			
		||||
msgid "Show Ammo"
 | 
			
		||||
msgstr "Zeige Munitionsarten"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "This ammo is not in a container"
 | 
			
		||||
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
 | 
			
		||||
@@ -756,31 +752,31 @@ msgstr "Behälter"
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:218
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:153
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:215
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot: %{count}"
 | 
			
		||||
msgstr "Patronen abgefeuert"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:64
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:122
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Packs"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:69
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:143
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds"
 | 
			
		||||
msgstr "Patronen:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:109
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:170
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View as table"
 | 
			
		||||
@@ -826,7 +822,7 @@ msgstr ""
 | 
			
		||||
msgid "Used rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot chart"
 | 
			
		||||
msgstr "Patronen abgefeuert"
 | 
			
		||||
@@ -933,7 +929,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:267
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1015,7 +1011,7 @@ msgstr ""
 | 
			
		||||
msgid "Search tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:112
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:124
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Search shot records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1150,12 +1146,12 @@ msgstr ""
 | 
			
		||||
msgid "Really great weather"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:74
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:62
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:92
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:82
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1181,9 +1177,9 @@ msgstr ""
 | 
			
		||||
msgid "Close modal"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:103
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
@@ -1264,10 +1260,10 @@ msgstr "Keine Munition"
 | 
			
		||||
msgid "None specified"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:94
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:56
 | 
			
		||||
@@ -1290,10 +1286,10 @@ msgstr "Zündertyp"
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:26
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
@@ -1345,10 +1341,10 @@ msgstr ""
 | 
			
		||||
msgid "Shot type:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:107
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:27
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
@@ -1390,10 +1386,10 @@ msgid "Wadding:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:50
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:46
 | 
			
		||||
@@ -1413,7 +1409,7 @@ msgid "Used up!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:41
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:39
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:60
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit Shot Record"
 | 
			
		||||
msgstr "Schießkladde editieren"
 | 
			
		||||
@@ -1451,3 +1447,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Any"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Dates"
 | 
			
		||||
msgstr "Datum"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No containers staged"
 | 
			
		||||
msgstr "Kein Behälter"
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ msgstr ""
 | 
			
		||||
## Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
## date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
## effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery/containers.ex:222
 | 
			
		||||
#: lib/cannery/containers.ex:234
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr "Behälter muss vor dem Löschen leer sein"
 | 
			
		||||
@@ -170,7 +170,7 @@ msgstr ""
 | 
			
		||||
"Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War "
 | 
			
		||||
"%{multiplier}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Your browser does not support the canvas element."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -216,12 +216,12 @@ msgstr ""
 | 
			
		||||
msgid "You must log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:98
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:101
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:96
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -58,22 +58,22 @@ msgid "A link to confirm your email change has been sent to the new address."
 | 
			
		||||
msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt."
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:110
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht "
 | 
			
		||||
"zurückgenommen werden!"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:157
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:171
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -171,19 +171,14 @@ msgstr "Füge hinzu..."
 | 
			
		||||
msgid "Shots recorded successfully"
 | 
			
		||||
msgstr "Schüsse erfolgreich dokumentiert"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:147
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:178
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:78
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records deleted succesfully"
 | 
			
		||||
msgstr "Schießkladde erfolgreich gelöscht"
 | 
			
		||||
@@ -240,11 +235,6 @@ msgstr "Spracheinstellung gespeichert."
 | 
			
		||||
msgid "Ammo deleted succesfully"
 | 
			
		||||
msgstr "Munitionsgruppe erfolgreich gelöscht"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo unstaged succesfully"
 | 
			
		||||
msgstr "Munition erfolgreich demarkiert"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:141
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo updated successfully"
 | 
			
		||||
@@ -288,7 +278,7 @@ msgstr "%{name} erfolgreich aktiviert"
 | 
			
		||||
msgid "%{invite_name} updated succesfully"
 | 
			
		||||
msgstr "%{name} erfolgreich aktualisiert"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:125
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:139
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "%{user_email} deleted succesfully"
 | 
			
		||||
msgstr "%{name} erfolgreich gelöscht"
 | 
			
		||||
@@ -302,3 +292,13 @@ msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Are you sure you want to make %{invite_name} unlimited?"
 | 
			
		||||
msgstr "Sind Sie sicher, dass sie %{name} auf unbegrenzt setzen möchten?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:114
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:128
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email resent to %{user_email} succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -113,7 +113,7 @@ msgstr ""
 | 
			
		||||
msgid "Count:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:50
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -185,7 +185,7 @@ msgstr ""
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:51
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:66
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:49
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -220,7 +220,7 @@ msgstr ""
 | 
			
		||||
msgid "My cool ammo can"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:49
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:152
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
 | 
			
		||||
@@ -277,7 +277,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:90
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:30
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Notes"
 | 
			
		||||
@@ -348,12 +348,12 @@ msgstr ""
 | 
			
		||||
msgid "Steel"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:94
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stored in"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:66
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:73
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:43
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:53
 | 
			
		||||
@@ -383,7 +383,7 @@ msgstr ""
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:52
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:108
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:40
 | 
			
		||||
@@ -413,15 +413,16 @@ msgstr ""
 | 
			
		||||
msgid "Your data stays with you, period"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No tags for this container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:77
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:76
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -433,7 +434,7 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:91
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:41
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Date"
 | 
			
		||||
@@ -444,26 +445,21 @@ msgstr ""
 | 
			
		||||
msgid "Shots fired"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo staged"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:148
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:89
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -478,7 +474,7 @@ msgstr ""
 | 
			
		||||
msgid "No other containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot log"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -486,7 +482,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
@@ -559,13 +555,13 @@ msgid "Reconnecting..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:130
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:131
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -578,7 +574,7 @@ msgid "Rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -610,7 +606,7 @@ msgstr ""
 | 
			
		||||
msgid "Percentage left:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -641,8 +637,8 @@ msgid "Reset your password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record Shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -700,7 +696,7 @@ msgstr ""
 | 
			
		||||
msgid "Move Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:125
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo in this container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -710,7 +706,7 @@ msgstr ""
 | 
			
		||||
msgid "Show Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "This ammo is not in a container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -750,31 +746,31 @@ msgstr ""
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:218
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:153
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:215
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot: %{count}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:64
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:122
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Packs"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:69
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:143
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:109
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:170
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View as table"
 | 
			
		||||
@@ -820,7 +816,7 @@ msgstr ""
 | 
			
		||||
msgid "Used rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot chart"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -927,7 +923,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:267
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1009,7 +1005,7 @@ msgstr ""
 | 
			
		||||
msgid "Search tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:112
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:124
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Search shot records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1133,12 +1129,12 @@ msgstr ""
 | 
			
		||||
msgid "Really great weather"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:74
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:62
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:92
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:82
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1164,9 +1160,9 @@ msgstr ""
 | 
			
		||||
msgid "Close modal"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:103
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
@@ -1247,10 +1243,10 @@ msgstr ""
 | 
			
		||||
msgid "None specified"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:94
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:56
 | 
			
		||||
@@ -1273,10 +1269,10 @@ msgstr ""
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:26
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
@@ -1328,10 +1324,10 @@ msgstr ""
 | 
			
		||||
msgid "Shot type:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:107
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:27
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
@@ -1373,10 +1369,10 @@ msgid "Wadding:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:50
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:46
 | 
			
		||||
@@ -1396,7 +1392,7 @@ msgid "Used up!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:41
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:39
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:60
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit Shot Record"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1434,3 +1430,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Any"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Dates"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No containers staged"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -131,7 +131,7 @@ msgstr ""
 | 
			
		||||
msgid "Send instructions to reset password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not add one?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -141,19 +141,14 @@ msgstr ""
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not get some ready to shoot?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:90
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:84
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -199,8 +194,8 @@ msgid "View in Catalog"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:77
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:86
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -210,14 +205,12 @@ msgstr ""
 | 
			
		||||
msgid "Set Unlimited"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:82
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage for range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage from range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -227,8 +220,8 @@ msgstr ""
 | 
			
		||||
msgid "Export Data as JSON"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:145
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:101
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:159
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -238,8 +231,8 @@ msgstr ""
 | 
			
		||||
msgid "Copy invite link for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:162
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:48
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{container_name}"
 | 
			
		||||
@@ -255,8 +248,8 @@ msgstr ""
 | 
			
		||||
msgid "Delete invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:77
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{container_name}"
 | 
			
		||||
@@ -272,54 +265,56 @@ msgstr ""
 | 
			
		||||
msgid "Edit invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:120
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Stage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:79
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:161
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:147
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:181
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:134
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -355,3 +350,8 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "add a type first"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -113,7 +113,7 @@ msgstr ""
 | 
			
		||||
msgid "Count:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:50
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -185,7 +185,7 @@ msgstr ""
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:51
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:66
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:49
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -220,7 +220,7 @@ msgstr ""
 | 
			
		||||
msgid "My cool ammo can"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:49
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:152
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
 | 
			
		||||
@@ -277,7 +277,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:90
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:30
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Notes"
 | 
			
		||||
@@ -348,12 +348,12 @@ msgstr ""
 | 
			
		||||
msgid "Steel"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:94
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stored in"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:66
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:73
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:43
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:53
 | 
			
		||||
@@ -383,7 +383,7 @@ msgstr ""
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:52
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:108
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:40
 | 
			
		||||
@@ -413,15 +413,16 @@ msgstr ""
 | 
			
		||||
msgid "Your data stays with you, period"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No tags for this container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:77
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:76
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -433,7 +434,7 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:91
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:41
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Date"
 | 
			
		||||
@@ -444,26 +445,21 @@ msgstr ""
 | 
			
		||||
msgid "Shots fired"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo staged"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:148
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:89
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -478,7 +474,7 @@ msgstr ""
 | 
			
		||||
msgid "No other containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot log"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -486,7 +482,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
@@ -559,13 +555,13 @@ msgid "Reconnecting..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:130
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:131
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -578,7 +574,7 @@ msgid "Rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -610,7 +606,7 @@ msgstr ""
 | 
			
		||||
msgid "Percentage left:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -641,8 +637,8 @@ msgid "Reset your password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:68
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Record Shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -700,7 +696,7 @@ msgstr ""
 | 
			
		||||
msgid "Move Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:125
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No ammo in this container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -710,7 +706,7 @@ msgstr ""
 | 
			
		||||
msgid "Show Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "This ammo is not in a container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -750,31 +746,31 @@ msgstr ""
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:218
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:153
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:215
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot: %{count}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:64
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:122
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Packs"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:69
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:143
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:109
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:170
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View as table"
 | 
			
		||||
@@ -820,7 +816,7 @@ msgstr ""
 | 
			
		||||
msgid "Used rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot chart"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -927,7 +923,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:267
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1009,7 +1005,7 @@ msgstr ""
 | 
			
		||||
msgid "Search tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:112
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:124
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Search shot records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1133,12 +1129,12 @@ msgstr ""
 | 
			
		||||
msgid "Really great weather"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:74
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:62
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:92
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:82
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1164,9 +1160,9 @@ msgstr ""
 | 
			
		||||
msgid "Close modal"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:103
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
@@ -1247,10 +1243,10 @@ msgstr ""
 | 
			
		||||
msgid "None specified"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:94
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:56
 | 
			
		||||
@@ -1273,10 +1269,10 @@ msgstr ""
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:26
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
@@ -1328,10 +1324,10 @@ msgstr ""
 | 
			
		||||
msgid "Shot type:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:107
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:27
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
@@ -1373,10 +1369,10 @@ msgid "Wadding:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:50
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:46
 | 
			
		||||
@@ -1396,7 +1392,7 @@ msgid "Used up!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:41
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:39
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:60
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit Shot Record"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1434,3 +1430,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Any"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Dates"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No containers staged"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Language: en\n"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/containers.ex:222
 | 
			
		||||
#: lib/cannery/containers.ex:234
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -153,7 +153,7 @@ msgstr ""
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Your browser does not support the canvas element."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -199,12 +199,12 @@ msgstr ""
 | 
			
		||||
msgid "You must log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:98
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:101
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:96
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -45,20 +45,20 @@ msgid "A link to confirm your email change has been sent to the new address."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:110
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:157
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:171
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -150,19 +150,14 @@ msgstr ""
 | 
			
		||||
msgid "Shots recorded successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:147
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:178
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:78
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -219,11 +214,6 @@ msgstr ""
 | 
			
		||||
msgid "Ammo deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:141
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo updated successfully"
 | 
			
		||||
@@ -267,7 +257,7 @@ msgstr ""
 | 
			
		||||
msgid "%{invite_name} updated succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:125
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:139
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "%{user_email} deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -281,3 +271,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Are you sure you want to make %{invite_name} unlimited?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:114
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:128
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email resent to %{user_email} succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/containers.ex:222
 | 
			
		||||
#: lib/cannery/containers.ex:234
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -152,7 +152,7 @@ msgstr ""
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Your browser does not support the canvas element."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -198,12 +198,12 @@ msgstr ""
 | 
			
		||||
msgid "You must log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:98
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:101
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Please select a valid container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:96
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Please select a valid type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -144,7 +144,7 @@ msgstr "Guardar"
 | 
			
		||||
msgid "Send instructions to reset password"
 | 
			
		||||
msgstr "Enviar instrucciones para reestablecer contraseña"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not add one?"
 | 
			
		||||
msgstr "¿Por qué no añadir una?"
 | 
			
		||||
@@ -154,19 +154,14 @@ msgstr "¿Por qué no añadir una?"
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr "Añadir"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage ammo"
 | 
			
		||||
msgstr "Preparar munición"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not get some ready to shoot?"
 | 
			
		||||
msgstr "¿Por qué no preparar parte para disparar?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:90
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:84
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Tiros récord"
 | 
			
		||||
@@ -212,8 +207,8 @@ msgid "View in Catalog"
 | 
			
		||||
msgstr "Ver en Catalogo"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:77
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:86
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
msgstr "Mover munición"
 | 
			
		||||
@@ -223,14 +218,12 @@ msgstr "Mover munición"
 | 
			
		||||
msgid "Set Unlimited"
 | 
			
		||||
msgstr "Activar ilimitados"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:82
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage for range"
 | 
			
		||||
msgstr "Preparar para el campo de tiro"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage from range"
 | 
			
		||||
msgstr "Desmontar del campo de tiro"
 | 
			
		||||
@@ -240,8 +233,8 @@ msgstr "Desmontar del campo de tiro"
 | 
			
		||||
msgid "Export Data as JSON"
 | 
			
		||||
msgstr "Exportar datos como JSON"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:145
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:101
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:159
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -251,8 +244,8 @@ msgstr ""
 | 
			
		||||
msgid "Copy invite link for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:162
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:48
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{container_name}"
 | 
			
		||||
@@ -268,8 +261,8 @@ msgstr ""
 | 
			
		||||
msgid "Delete invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:77
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{container_name}"
 | 
			
		||||
@@ -285,54 +278,56 @@ msgstr ""
 | 
			
		||||
msgid "Edit invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:120
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Stage"
 | 
			
		||||
msgstr "Preparar munición"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:79
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:161
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:147
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:181
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:134
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -368,3 +363,8 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "add a type first"
 | 
			
		||||
msgstr "añade primero un tipo de munición"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -117,7 +117,7 @@ msgstr "Cantidad"
 | 
			
		||||
msgid "Count:"
 | 
			
		||||
msgstr "Cantidad:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:50
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -189,7 +189,7 @@ msgstr "Invitaciones"
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr "Mantener registrado durante 60 días"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:51
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:66
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:49
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -224,7 +224,7 @@ msgstr "Lata de munición metálica con la pegatina de chica de anime"
 | 
			
		||||
msgid "My cool ammo can"
 | 
			
		||||
msgstr "Mi lata de munición guapa"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:49
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:152
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
 | 
			
		||||
@@ -281,7 +281,7 @@ msgstr "Sin etiquetas"
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:90
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:30
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Notes"
 | 
			
		||||
@@ -354,12 +354,12 @@ msgstr "Simple:"
 | 
			
		||||
msgid "Steel"
 | 
			
		||||
msgstr "Acero"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:94
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stored in"
 | 
			
		||||
msgstr "Guardado en"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:66
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:73
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:43
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:53
 | 
			
		||||
@@ -390,7 +390,7 @@ msgstr "La página de seguimiento de armas autogestionada"
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr "Trazadora"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:52
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:108
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:40
 | 
			
		||||
@@ -420,15 +420,16 @@ msgstr "Usos restantes"
 | 
			
		||||
msgid "Your data stays with you, period"
 | 
			
		||||
msgstr "Tus datos se quedan contigo, sin excepciones"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No tags for this container"
 | 
			
		||||
msgstr "Contenedor sin etiquetas"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:77
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:76
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr "Campo de tiro"
 | 
			
		||||
@@ -440,7 +441,7 @@ msgstr "Día de disparar"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:91
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:41
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Date"
 | 
			
		||||
@@ -451,26 +452,21 @@ msgstr "Fecha"
 | 
			
		||||
msgid "Shots fired"
 | 
			
		||||
msgstr "Tiros disparados"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo staged"
 | 
			
		||||
msgstr "No hay munición preparada"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Tiros récord"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:148
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr "No se han grabado tiros"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:89
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr "Balas disparadas"
 | 
			
		||||
@@ -485,7 +481,7 @@ msgstr "Mover munición"
 | 
			
		||||
msgid "No other containers"
 | 
			
		||||
msgstr "No hay otros contenedores"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot log"
 | 
			
		||||
msgstr "Registro de tiros"
 | 
			
		||||
@@ -493,7 +489,7 @@ msgstr "Registro de tiros"
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
@@ -566,13 +562,13 @@ msgid "Reconnecting..."
 | 
			
		||||
msgstr "Reconectando..."
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:130
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr "Editar %{name}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:131
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr "Editar etiquetas de %{name}"
 | 
			
		||||
@@ -585,7 +581,7 @@ msgid "Rounds:"
 | 
			
		||||
msgstr "Balas:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -617,7 +613,7 @@ msgstr "Cantidad original:"
 | 
			
		||||
msgid "Percentage left:"
 | 
			
		||||
msgstr "Pocentaje restante:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds used"
 | 
			
		||||
msgstr "Balas usadas"
 | 
			
		||||
@@ -648,8 +644,8 @@ msgid "Reset your password"
 | 
			
		||||
msgstr "Reestablecer contraseña"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record Shots"
 | 
			
		||||
msgstr "Tiros Récord"
 | 
			
		||||
@@ -707,7 +703,7 @@ msgstr "Editar Munición"
 | 
			
		||||
msgid "Move Ammo"
 | 
			
		||||
msgstr "Mover Munición"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:125
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo in this container"
 | 
			
		||||
msgstr "No hay munición en este contenedor"
 | 
			
		||||
@@ -717,7 +713,7 @@ msgstr "No hay munición en este contenedor"
 | 
			
		||||
msgid "Show Ammo"
 | 
			
		||||
msgstr "Mostrar Munición"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "This ammo is not in a container"
 | 
			
		||||
msgstr "Esta munición no está en un contenedor"
 | 
			
		||||
@@ -758,31 +754,31 @@ msgstr "Contenedor:"
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr "Mostrar usadas"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:218
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
msgstr "%{percentage}%"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:153
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:215
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot: %{count}"
 | 
			
		||||
msgstr "Balas disparadas: %{count}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:64
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:122
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Packs"
 | 
			
		||||
msgstr "Paquetes"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:69
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:143
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds"
 | 
			
		||||
msgstr "Balas"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:109
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:170
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View as table"
 | 
			
		||||
@@ -828,7 +824,7 @@ msgstr "Balas usadas"
 | 
			
		||||
msgid "Used rounds:"
 | 
			
		||||
msgstr "Balas usadas:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot chart"
 | 
			
		||||
msgstr "Tabla de disparos"
 | 
			
		||||
@@ -935,7 +931,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:267
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr "Vacio"
 | 
			
		||||
@@ -1017,7 +1013,7 @@ msgstr ""
 | 
			
		||||
msgid "Search tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:112
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:124
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Search shot records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1152,12 +1148,12 @@ msgstr ""
 | 
			
		||||
msgid "Really great weather"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:74
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:62
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:92
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:82
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1183,9 +1179,9 @@ msgstr ""
 | 
			
		||||
msgid "Close modal"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:103
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
@@ -1266,10 +1262,10 @@ msgstr "Sin Munición"
 | 
			
		||||
msgid "None specified"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:94
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:56
 | 
			
		||||
@@ -1292,10 +1288,10 @@ msgstr "Tipo de espoleta"
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:26
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
@@ -1347,10 +1343,10 @@ msgstr ""
 | 
			
		||||
msgid "Shot type:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:107
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:27
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
@@ -1392,10 +1388,10 @@ msgid "Wadding:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:50
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:46
 | 
			
		||||
@@ -1415,7 +1411,7 @@ msgid "Used up!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:41
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:39
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:60
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit Shot Record"
 | 
			
		||||
msgstr "Editar Tiros Récord"
 | 
			
		||||
@@ -1453,3 +1449,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Any"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Dates"
 | 
			
		||||
msgstr "Fecha"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No containers staged"
 | 
			
		||||
msgstr "Sin contenedores"
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ msgstr ""
 | 
			
		||||
## Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
## date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
## effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery/containers.ex:222
 | 
			
		||||
#: lib/cannery/containers.ex:234
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr "El contenedor debe estar vacío antes de ser borrado"
 | 
			
		||||
@@ -168,7 +168,7 @@ msgstr "No se ha podido procesar el número de copias"
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr "Número inválido de copias, debe ser entre 1 y %{max}. Fue %{multiplier"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Your browser does not support the canvas element."
 | 
			
		||||
msgstr "Su navegador no es compatible con el elemento lienzo."
 | 
			
		||||
@@ -214,12 +214,12 @@ msgstr ""
 | 
			
		||||
msgid "You must log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:98
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:101
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid container"
 | 
			
		||||
msgstr "Por favor escoja un tipo de munición y un contenedor"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:96
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid type"
 | 
			
		||||
msgstr "Por favor escoja un usuario y tipo de munición valido"
 | 
			
		||||
 
 | 
			
		||||
@@ -60,20 +60,20 @@ msgstr ""
 | 
			
		||||
"dirección."
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:110
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
 | 
			
		||||
msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:157
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:171
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr "Está seguro que desea eliminar %{name}?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -170,19 +170,14 @@ msgstr "Añadiendo..."
 | 
			
		||||
msgid "Shots recorded successfully"
 | 
			
		||||
msgstr "Tiros registrados exitosamente"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr "Está seguro que desea desmontar esta munición?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:147
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:178
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr "¿Está segure que quiere borrar este récord de disparos?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:78
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records deleted succesfully"
 | 
			
		||||
msgstr "Récord de disparos borrado exitosamente"
 | 
			
		||||
@@ -239,11 +234,6 @@ msgstr "Idioma cambiado exitosamente."
 | 
			
		||||
msgid "Ammo deleted succesfully"
 | 
			
		||||
msgstr "Munición borrada exitosamente"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo unstaged succesfully"
 | 
			
		||||
msgstr "Munición descargada exitosamente"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:141
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo updated successfully"
 | 
			
		||||
@@ -289,7 +279,7 @@ msgstr "%{name} activado exitosamente"
 | 
			
		||||
msgid "%{invite_name} updated succesfully"
 | 
			
		||||
msgstr "%{name} actualizado exitosamente"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:125
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:139
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "%{user_email} deleted succesfully"
 | 
			
		||||
msgstr "%{name} borrado exitosamente"
 | 
			
		||||
@@ -303,3 +293,13 @@ msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Are you sure you want to make %{invite_name} unlimited?"
 | 
			
		||||
msgstr "Está seguro que desea hacer %{name} ilimitado?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:114
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:128
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email resent to %{user_email} succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -144,7 +144,7 @@ msgstr "Sauvegarder"
 | 
			
		||||
msgid "Send instructions to reset password"
 | 
			
		||||
msgstr "Envoyer les instructions pour réinitialiser le mot de passe"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not add one?"
 | 
			
		||||
msgstr "Pourquoi pas en ajouter un ?"
 | 
			
		||||
@@ -154,19 +154,14 @@ msgstr "Pourquoi pas en ajouter un ?"
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr "Ajouter"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage ammo"
 | 
			
		||||
msgstr "Munition préparée"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not get some ready to shoot?"
 | 
			
		||||
msgstr "Pourquoi pas en préparer pour tirer ?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:90
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:84
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Enregistrer des tirs"
 | 
			
		||||
@@ -212,8 +207,8 @@ msgid "View in Catalog"
 | 
			
		||||
msgstr "Voir en catalogue"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:77
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:86
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -223,14 +218,12 @@ msgstr ""
 | 
			
		||||
msgid "Set Unlimited"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:82
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage for range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage from range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -240,8 +233,8 @@ msgstr ""
 | 
			
		||||
msgid "Export Data as JSON"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:145
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:101
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:159
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -251,8 +244,8 @@ msgstr ""
 | 
			
		||||
msgid "Copy invite link for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:162
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:48
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{container_name}"
 | 
			
		||||
@@ -268,8 +261,8 @@ msgstr ""
 | 
			
		||||
msgid "Delete invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:77
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{container_name}"
 | 
			
		||||
@@ -285,54 +278,56 @@ msgstr ""
 | 
			
		||||
msgid "Edit invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:120
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Stage"
 | 
			
		||||
msgstr "Munition préparée"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:79
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:161
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:147
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:181
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:134
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -368,3 +363,8 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "add a type first"
 | 
			
		||||
msgstr "Ajoutez d'abord un type de munitions"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -117,7 +117,7 @@ msgstr "Quantité"
 | 
			
		||||
msgid "Count:"
 | 
			
		||||
msgstr "Quantité :"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:50
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -189,7 +189,7 @@ msgstr "Invitations"
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr "Me garder authentifié durant 60 jours"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:51
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:66
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:49
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -224,7 +224,7 @@ msgstr "Boite de munition avec le sticker de fille d’animation"
 | 
			
		||||
msgid "My cool ammo can"
 | 
			
		||||
msgstr "Ma superbe boite de munition"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:49
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:152
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
 | 
			
		||||
@@ -281,7 +281,7 @@ msgstr "Aucun tag"
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:90
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:30
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Notes"
 | 
			
		||||
@@ -354,12 +354,12 @@ msgstr "Simple :"
 | 
			
		||||
msgid "Steel"
 | 
			
		||||
msgstr "Acier"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:94
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stored in"
 | 
			
		||||
msgstr "Est stocké dans"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:66
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:73
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:43
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:53
 | 
			
		||||
@@ -391,7 +391,7 @@ msgstr "Le site web de suivi d’arme à feux auto-hébergé"
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr "Traceuse"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:52
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:108
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:40
 | 
			
		||||
@@ -421,15 +421,16 @@ msgstr "Utilisations restantes"
 | 
			
		||||
msgid "Your data stays with you, period"
 | 
			
		||||
msgstr "Vos données restent avec vous, point final"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No tags for this container"
 | 
			
		||||
msgstr "Aucun tag pour ce conteneur"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:77
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:76
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr "Portée"
 | 
			
		||||
@@ -441,7 +442,7 @@ msgstr "Journée de stand"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:91
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:41
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Date"
 | 
			
		||||
@@ -452,26 +453,21 @@ msgstr "Date"
 | 
			
		||||
msgid "Shots fired"
 | 
			
		||||
msgstr "Tirs réalisés"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo staged"
 | 
			
		||||
msgstr "Aucune munition sélectionnée"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Tirs enregistrés"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:148
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr "Aucun tir enregistré"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:89
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr "Cartouches tirées"
 | 
			
		||||
@@ -486,7 +482,7 @@ msgstr "Déplacer munition"
 | 
			
		||||
msgid "No other containers"
 | 
			
		||||
msgstr "Aucun autre conteneur"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot log"
 | 
			
		||||
msgstr "Évènements de tir"
 | 
			
		||||
@@ -494,7 +490,7 @@ msgstr "Évènements de tir"
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
@@ -567,13 +563,13 @@ msgid "Reconnecting..."
 | 
			
		||||
msgstr "Reconnexion en cours…"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:130
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr "Éditer %{name}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:131
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr "Éditer les tags de %{name}"
 | 
			
		||||
@@ -586,7 +582,7 @@ msgid "Rounds:"
 | 
			
		||||
msgstr "Cartouches :"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -618,7 +614,7 @@ msgstr "Nombre original :"
 | 
			
		||||
msgid "Percentage left:"
 | 
			
		||||
msgstr "Pourcentage restant :"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds used"
 | 
			
		||||
msgstr "Cartouches utilisées"
 | 
			
		||||
@@ -649,8 +645,8 @@ msgid "Reset your password"
 | 
			
		||||
msgstr "Réinitialiser votre mot de passe"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record Shots"
 | 
			
		||||
msgstr "Enregistrer des tirs"
 | 
			
		||||
@@ -708,7 +704,7 @@ msgstr "Éditer le type de munition"
 | 
			
		||||
msgid "Move Ammo"
 | 
			
		||||
msgstr "Déplacer munition"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:125
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No ammo in this container"
 | 
			
		||||
msgstr "Aucun groupe de munition pour ce conteneur"
 | 
			
		||||
@@ -718,7 +714,7 @@ msgstr "Aucun groupe de munition pour ce conteneur"
 | 
			
		||||
msgid "Show Ammo"
 | 
			
		||||
msgstr "Montrer le type de munition"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "This ammo is not in a container"
 | 
			
		||||
msgstr "Ce groupe de munition n’est pas dans un conteneur"
 | 
			
		||||
@@ -759,31 +755,31 @@ msgstr "Conteneur"
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:218
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:153
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:215
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot: %{count}"
 | 
			
		||||
msgstr "Cartouches tirées"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:64
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:122
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Packs"
 | 
			
		||||
msgstr "Packages :"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:69
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:143
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds"
 | 
			
		||||
msgstr "Cartouches :"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:109
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:170
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View as table"
 | 
			
		||||
@@ -829,7 +825,7 @@ msgstr ""
 | 
			
		||||
msgid "Used rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot chart"
 | 
			
		||||
msgstr "Cartouches tirées"
 | 
			
		||||
@@ -936,7 +932,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:267
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1018,7 +1014,7 @@ msgstr ""
 | 
			
		||||
msgid "Search tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:112
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:124
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Search shot records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1153,12 +1149,12 @@ msgstr ""
 | 
			
		||||
msgid "Really great weather"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:74
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:62
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:92
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:82
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1184,9 +1180,9 @@ msgstr ""
 | 
			
		||||
msgid "Close modal"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:103
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
@@ -1267,10 +1263,10 @@ msgstr "Aucune munition"
 | 
			
		||||
msgid "None specified"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:94
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:56
 | 
			
		||||
@@ -1293,10 +1289,10 @@ msgstr "Type d’amorce"
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:26
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
@@ -1348,10 +1344,10 @@ msgstr ""
 | 
			
		||||
msgid "Shot type:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:107
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:27
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
@@ -1393,10 +1389,10 @@ msgid "Wadding:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:50
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:46
 | 
			
		||||
@@ -1416,7 +1412,7 @@ msgid "Used up!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:41
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:39
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:60
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit Shot Record"
 | 
			
		||||
msgstr "Modifier les enregistrements de tir"
 | 
			
		||||
@@ -1454,3 +1450,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Any"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Dates"
 | 
			
		||||
msgstr "Date"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No containers staged"
 | 
			
		||||
msgstr "Aucun conteneur"
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ msgstr ""
 | 
			
		||||
# # Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
# # date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
# # effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery/containers.ex:222
 | 
			
		||||
#: lib/cannery/containers.ex:234
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr "Le conteneur doit être vide pour être supprimé"
 | 
			
		||||
@@ -169,7 +169,7 @@ msgstr "Impossible d'analyser le nombre de copies"
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Your browser does not support the canvas element."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -215,12 +215,12 @@ msgstr ""
 | 
			
		||||
msgid "You must log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:98
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:101
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid container"
 | 
			
		||||
msgstr "Veuillez choisir un type de munitions et un conteneur"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:96
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid type"
 | 
			
		||||
msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"
 | 
			
		||||
 
 | 
			
		||||
@@ -60,21 +60,21 @@ msgstr ""
 | 
			
		||||
"adresse."
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:110
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Êtes-vous certain·e de supprimer %{email} ? Cette action est définitive !"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:157
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:171
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr "Êtes-vous certain·e de supprimer %{name} ?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -172,19 +172,14 @@ msgstr "Ajout en cours…"
 | 
			
		||||
msgid "Shots recorded successfully"
 | 
			
		||||
msgstr "Tirs enregistré avec succès"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition ?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:147
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:178
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir ?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:78
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records deleted succesfully"
 | 
			
		||||
msgstr "Enregistrements de tir supprimés avec succès"
 | 
			
		||||
@@ -241,11 +236,6 @@ msgstr "Langue mise à jour avec succès."
 | 
			
		||||
msgid "Ammo deleted succesfully"
 | 
			
		||||
msgstr "Groupe de munition supprimé avec succès"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo unstaged succesfully"
 | 
			
		||||
msgstr "Groupe de munition désélectionner avec succès"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:141
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo updated successfully"
 | 
			
		||||
@@ -289,7 +279,7 @@ msgstr "%{name} activé·e avec succès"
 | 
			
		||||
msgid "%{invite_name} updated succesfully"
 | 
			
		||||
msgstr "%{name} mis à jour avec succès"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:125
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:139
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "%{user_email} deleted succesfully"
 | 
			
		||||
msgstr "%{name} supprimé· avec succès"
 | 
			
		||||
@@ -303,3 +293,13 @@ msgstr "Êtes-vous certain·e de supprimer l’invitation pour %{name} ?"
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Are you sure you want to make %{invite_name} unlimited?"
 | 
			
		||||
msgstr "Êtes-vous certain·e de vouloir rendre %{name} illimité ?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:114
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:128
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email resent to %{user_email} succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -142,7 +142,7 @@ msgstr ""
 | 
			
		||||
msgid "Send instructions to reset password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not add one?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -152,19 +152,14 @@ msgstr ""
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not get some ready to shoot?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:90
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:84
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -210,8 +205,8 @@ msgid "View in Catalog"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:77
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:86
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -221,14 +216,12 @@ msgstr ""
 | 
			
		||||
msgid "Set Unlimited"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:82
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage for range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage from range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -238,8 +231,8 @@ msgstr ""
 | 
			
		||||
msgid "Export Data as JSON"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:145
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:101
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:159
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -249,8 +242,8 @@ msgstr ""
 | 
			
		||||
msgid "Copy invite link for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:162
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:48
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{container_name}"
 | 
			
		||||
@@ -266,8 +259,8 @@ msgstr ""
 | 
			
		||||
msgid "Delete invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:77
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{container_name}"
 | 
			
		||||
@@ -283,54 +276,56 @@ msgstr ""
 | 
			
		||||
msgid "Edit invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:120
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Stage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:79
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:161
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:147
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:181
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:134
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -366,3 +361,8 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "add a type first"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -115,7 +115,7 @@ msgstr ""
 | 
			
		||||
msgid "Count:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:50
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -187,7 +187,7 @@ msgstr ""
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:51
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:66
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:49
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -222,7 +222,7 @@ msgstr ""
 | 
			
		||||
msgid "My cool ammo can"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:49
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:152
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
 | 
			
		||||
@@ -279,7 +279,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:90
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:30
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Notes"
 | 
			
		||||
@@ -350,12 +350,12 @@ msgstr ""
 | 
			
		||||
msgid "Steel"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:94
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stored in"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:66
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:73
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:43
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:53
 | 
			
		||||
@@ -385,7 +385,7 @@ msgstr ""
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:52
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:108
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:40
 | 
			
		||||
@@ -415,15 +415,16 @@ msgstr ""
 | 
			
		||||
msgid "Your data stays with you, period"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No tags for this container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:77
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:76
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -435,7 +436,7 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:91
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:41
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Date"
 | 
			
		||||
@@ -446,26 +447,21 @@ msgstr ""
 | 
			
		||||
msgid "Shots fired"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo staged"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:148
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:89
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -480,7 +476,7 @@ msgstr ""
 | 
			
		||||
msgid "No other containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot log"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -488,7 +484,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
@@ -561,13 +557,13 @@ msgid "Reconnecting..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:130
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:131
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -580,7 +576,7 @@ msgid "Rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -612,7 +608,7 @@ msgstr ""
 | 
			
		||||
msgid "Percentage left:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -643,8 +639,8 @@ msgid "Reset your password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record Shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -702,7 +698,7 @@ msgstr ""
 | 
			
		||||
msgid "Move Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:125
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo in this container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -712,7 +708,7 @@ msgstr ""
 | 
			
		||||
msgid "Show Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "This ammo is not in a container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -752,31 +748,31 @@ msgstr ""
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:218
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:153
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:215
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot: %{count}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:64
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:122
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Packs"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:69
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:143
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:109
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:170
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View as table"
 | 
			
		||||
@@ -822,7 +818,7 @@ msgstr ""
 | 
			
		||||
msgid "Used rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Rounds shot chart"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -929,7 +925,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:267
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1011,7 +1007,7 @@ msgstr ""
 | 
			
		||||
msgid "Search tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:112
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:124
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Search shot records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1144,12 +1140,12 @@ msgstr ""
 | 
			
		||||
msgid "Really great weather"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:74
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:62
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:92
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:82
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1175,9 +1171,9 @@ msgstr ""
 | 
			
		||||
msgid "Close modal"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:103
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
@@ -1258,10 +1254,10 @@ msgstr ""
 | 
			
		||||
msgid "None specified"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:94
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:56
 | 
			
		||||
@@ -1284,10 +1280,10 @@ msgstr ""
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:26
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
@@ -1339,10 +1335,10 @@ msgstr ""
 | 
			
		||||
msgid "Shot type:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:107
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:27
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
@@ -1384,10 +1380,10 @@ msgid "Wadding:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:50
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:46
 | 
			
		||||
@@ -1407,7 +1403,7 @@ msgid "Used up!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:41
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:39
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:60
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit Shot Record"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1445,3 +1441,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Any"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Dates"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No containers staged"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ msgstr ""
 | 
			
		||||
## Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
## date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
## effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery/containers.ex:222
 | 
			
		||||
#: lib/cannery/containers.ex:234
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh"
 | 
			
		||||
@@ -168,7 +168,7 @@ msgstr ""
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Your browser does not support the canvas element."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -214,12 +214,12 @@ msgstr ""
 | 
			
		||||
msgid "You must log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:98
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:101
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:96
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -56,20 +56,20 @@ msgid "A link to confirm your email change has been sent to the new address."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:110
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:157
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:171
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -161,19 +161,14 @@ msgstr ""
 | 
			
		||||
msgid "Shots recorded successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:147
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:178
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:78
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -230,11 +225,6 @@ msgstr ""
 | 
			
		||||
msgid "Ammo deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:91
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:141
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo updated successfully"
 | 
			
		||||
@@ -281,7 +271,7 @@ msgstr ""
 | 
			
		||||
msgid "%{invite_name} updated succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:125
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:139
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "%{user_email} deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -295,3 +285,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Are you sure you want to make %{invite_name} unlimited?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:114
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:128
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email resent to %{user_email} succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -142,7 +142,7 @@ msgstr ""
 | 
			
		||||
msgid "Send instructions to reset password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not add one?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -152,19 +152,14 @@ msgstr ""
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not get some ready to shoot?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:90
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:84
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -210,8 +205,8 @@ msgid "View in Catalog"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:77
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:86
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -221,14 +216,12 @@ msgstr ""
 | 
			
		||||
msgid "Set Unlimited"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:82
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage for range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage from range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -238,8 +231,8 @@ msgstr ""
 | 
			
		||||
msgid "Export Data as JSON"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:145
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:101
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:159
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -249,8 +242,8 @@ msgstr ""
 | 
			
		||||
msgid "Copy invite link for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:162
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:48
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{container_name}"
 | 
			
		||||
@@ -266,8 +259,8 @@ msgstr ""
 | 
			
		||||
msgid "Delete invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:77
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{container_name}"
 | 
			
		||||
@@ -283,54 +276,56 @@ msgstr ""
 | 
			
		||||
msgid "Edit invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:120
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:79
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:161
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:176
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:147
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:181
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:134
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -366,3 +361,8 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "add a type first"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -124,7 +124,7 @@ msgstr ""
 | 
			
		||||
msgid "Count:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:50
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -196,7 +196,7 @@ msgstr ""
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:51
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:66
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:49
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -231,7 +231,7 @@ msgstr ""
 | 
			
		||||
msgid "My cool ammo can"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:49
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:152
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
 | 
			
		||||
@@ -288,7 +288,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:46
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:90
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:30
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Notes"
 | 
			
		||||
@@ -359,12 +359,12 @@ msgstr ""
 | 
			
		||||
msgid "Steel"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:94
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stored in"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:66
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:73
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:43
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:53
 | 
			
		||||
@@ -394,7 +394,7 @@ msgstr ""
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:52
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:108
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:40
 | 
			
		||||
@@ -424,15 +424,16 @@ msgstr ""
 | 
			
		||||
msgid "Your data stays with you, period"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No tags for this container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:77
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:76
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -444,7 +445,7 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:91
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:41
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Date"
 | 
			
		||||
@@ -455,26 +456,21 @@ msgstr ""
 | 
			
		||||
msgid "Shots fired"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo staged"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:148
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:45
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:89
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -489,7 +485,7 @@ msgstr ""
 | 
			
		||||
msgid "No other containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot log"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -497,7 +493,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
@@ -570,13 +566,13 @@ msgid "Reconnecting..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:130
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:131
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -589,7 +585,7 @@ msgid "Rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -621,7 +617,7 @@ msgstr ""
 | 
			
		||||
msgid "Percentage left:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -652,8 +648,8 @@ msgid "Reset your password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:68
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record Shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -711,7 +707,7 @@ msgstr ""
 | 
			
		||||
msgid "Move Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:125
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No ammo in this container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -721,7 +717,7 @@ msgstr ""
 | 
			
		||||
msgid "Show Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "This ammo is not in a container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -761,31 +757,31 @@ msgstr ""
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:218
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:153
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:215
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot: %{count}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:64
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:122
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Packs"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:65
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:69
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:143
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:109
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:117
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:170
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View as table"
 | 
			
		||||
@@ -831,7 +827,7 @@ msgstr ""
 | 
			
		||||
msgid "Used rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:68
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rounds shot chart"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -938,7 +934,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:267
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1020,7 +1016,7 @@ msgstr ""
 | 
			
		||||
msgid "Search tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:112
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:124
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Search shot records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1144,12 +1140,12 @@ msgstr ""
 | 
			
		||||
msgid "Really great weather"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:74
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:67
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:62
 | 
			
		||||
#: lib/cannery_web/components/shot_record_table_component.ex:48
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:92
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:82
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1175,9 +1171,9 @@ msgstr ""
 | 
			
		||||
msgid "Close modal"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:103
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
@@ -1258,10 +1254,10 @@ msgstr ""
 | 
			
		||||
msgid "None specified"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:94
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:56
 | 
			
		||||
@@ -1284,10 +1280,10 @@ msgstr ""
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:106
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:26
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
@@ -1339,10 +1335,10 @@ msgstr ""
 | 
			
		||||
msgid "Shot type:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:107
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:27
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
@@ -1384,10 +1380,10 @@ msgid "Wadding:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:50
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:21
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:29
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:46
 | 
			
		||||
@@ -1407,7 +1403,7 @@ msgid "Used up!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:41
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:39
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:60
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit Shot Record"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1445,3 +1441,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Any"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Dates"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No containers staged"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ msgstr ""
 | 
			
		||||
## Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
## date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
## effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery/containers.ex:222
 | 
			
		||||
#: lib/cannery/containers.ex:234
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -163,7 +163,7 @@ msgstr ""
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:83
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Your browser does not support the canvas element."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -209,12 +209,12 @@ msgstr ""
 | 
			
		||||
msgid "You must log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:98
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:101
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:96
 | 
			
		||||
#: lib/cannery/ammo/pack.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Please select a valid type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -56,20 +56,20 @@ msgid "A link to confirm your email change has been sent to the new address."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:110
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:157
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:171
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -161,19 +161,14 @@ msgstr ""
 | 
			
		||||
msgid "Shots recorded successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:147
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:178
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:78
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -230,11 +225,6 @@ msgstr ""
 | 
			
		||||
msgid "Ammo deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:91
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:141
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo updated successfully"
 | 
			
		||||
@@ -278,7 +268,7 @@ msgstr ""
 | 
			
		||||
msgid "%{invite_name} updated succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:125
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:139
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{user_email} deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -292,3 +282,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to make %{invite_name} unlimited?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:114
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:128
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email resent to %{user_email} succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -45,20 +45,20 @@ msgid "A link to confirm your email change has been sent to the new address."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:110
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:157
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:113
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:171
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -150,19 +150,14 @@ msgstr ""
 | 
			
		||||
msgid "Shots recorded successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:147
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:178
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:78
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:69
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -219,11 +214,6 @@ msgstr ""
 | 
			
		||||
msgid "Ammo deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:91
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:141
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo updated successfully"
 | 
			
		||||
@@ -267,7 +257,7 @@ msgstr ""
 | 
			
		||||
msgid "%{invite_name} updated succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:125
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:139
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{user_email} deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -281,3 +271,13 @@ msgstr ""
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to make %{invite_name} unlimited?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:114
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:128
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email resent to %{user_email} succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,13 @@
 | 
			
		||||
defmodule Cannery.Repo.Migrations.MoveStagedToContainers do
 | 
			
		||||
  use Ecto.Migration
 | 
			
		||||
 | 
			
		||||
  def change do
 | 
			
		||||
    alter table(:packs) do
 | 
			
		||||
      remove :staged
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    alter table(:containers) do
 | 
			
		||||
      add :staged, :boolean, default: false
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@@ -310,7 +310,7 @@ defmodule Cannery.AccountsTest do
 | 
			
		||||
    test "deletes all tokens for the given user", %{user: user} do
 | 
			
		||||
      _session_token = Accounts.generate_user_session_token(user)
 | 
			
		||||
 | 
			
		||||
      {:ok, _} =
 | 
			
		||||
      {:ok, _user} =
 | 
			
		||||
        Accounts.update_user_password(user, valid_user_password(), %{
 | 
			
		||||
          password: "new valid password"
 | 
			
		||||
        })
 | 
			
		||||
 
 | 
			
		||||
@@ -860,11 +860,13 @@ defmodule Cannery.AmmoTest do
 | 
			
		||||
 | 
			
		||||
    test "list_packs/2 returns all relevant packs including staged", %{
 | 
			
		||||
      type: type,
 | 
			
		||||
      container: container,
 | 
			
		||||
      pack: unstaged_pack,
 | 
			
		||||
      current_user: current_user
 | 
			
		||||
    } do
 | 
			
		||||
      {1, [staged_pack]} = pack_fixture(%{staged: true}, type, container, current_user)
 | 
			
		||||
      staged_container =
 | 
			
		||||
        container_fixture(%{name: "fantastic container", staged: true}, current_user)
 | 
			
		||||
 | 
			
		||||
      {1, [staged_pack]} = pack_fixture(type, staged_container, current_user)
 | 
			
		||||
 | 
			
		||||
      assert Ammo.list_packs(current_user, staged: false) == [unstaged_pack]
 | 
			
		||||
      assert Ammo.list_packs(current_user, staged: true) == [staged_pack]
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,6 @@ defmodule CanneryWeb.ExportControllerTest do
 | 
			
		||||
        "notes" => pack.notes,
 | 
			
		||||
        "price_paid" => pack.price_paid,
 | 
			
		||||
        "lot_number" => pack.lot_number,
 | 
			
		||||
        "staged" => pack.staged,
 | 
			
		||||
        "used_count" => ActivityLog.get_used_count(current_user, pack_id: pack.id),
 | 
			
		||||
        "original_count" => pack |> Ammo.get_original_count(current_user),
 | 
			
		||||
        "cpr" => pack |> Ammo.get_cpr(current_user),
 | 
			
		||||
@@ -103,6 +102,7 @@ defmodule CanneryWeb.ExportControllerTest do
 | 
			
		||||
        "id" => container.id,
 | 
			
		||||
        "location" => container.location,
 | 
			
		||||
        "name" => container.name,
 | 
			
		||||
        "staged" => container.staged,
 | 
			
		||||
        "tags" => [
 | 
			
		||||
          %{
 | 
			
		||||
            "id" => tag.id,
 | 
			
		||||
 
 | 
			
		||||
@@ -57,8 +57,8 @@ defmodule Cannery.Fixtures do
 | 
			
		||||
      |> Atom.to_string()
 | 
			
		||||
      |> Email.generate_email(Accounts.get_user!(user_id), attrs)
 | 
			
		||||
 | 
			
		||||
    [_, html_token | _] = email.html_body |> String.split("[TOKEN]")
 | 
			
		||||
    [_, text_token | _] = email.text_body |> String.split("[TOKEN]")
 | 
			
		||||
    [_prefix, html_token | _suffix] = email.html_body |> String.split("[TOKEN]")
 | 
			
		||||
    [_prefix, text_token | _suffix] = email.text_body |> String.split("[TOKEN]")
 | 
			
		||||
    ^text_token = html_token
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user