Compare commits

...

801 Commits
v1.0 ... v1.3.0

Author SHA1 Message Date
Maikel Linke
61a58bca7d Travis can trigger the Github deploy API
And other build tools like Buildkite can listen to the deploy event.
2015-12-18 10:41:25 +11:00
Rob Harrington
e67e22ee73 Merge remote-tracking branch 'Em-AK/682-xero-report-defaults' into customer-name-security
Conflicts:
	lib/open_food_network/xero_invoices_report.rb
2015-12-17 14:22:16 +11:00
Rob Harrington
7a23f671a2 Restricting access to orders within Sales Tax Report
Managers of suppliers should not be able to generate sales tax reports for orders they only supply products for
2015-12-17 14:21:30 +11:00
Rob Harrington
d115eb816e Restricting access to orders within Xero Invoices Report
Managers of suppliers should not be able to generate xero invoices for orders they supply products for
2015-12-17 14:21:30 +11:00
Rob Harrington
4b5e33d5b0 Implementing new permissions for producers in reports_controller_spec 2015-12-17 14:21:30 +11:00
Rob Harrington
c579d302d5 Fixing customer info security for orders and distributors report 2015-12-17 14:21:30 +11:00
Rob Harrington
2f2ebf419c Fixing customer info security for packing reports 2015-12-17 14:21:30 +11:00
Rob Harrington
2f13ab6adf Fixing customer info security for orders and fulfillments report 2015-12-17 14:21:29 +11:00
Rob Harrington
b121984e76 Fixing customer info security for bulk coop report 2015-12-17 14:21:29 +11:00
Continuous Integration
23b9dd5c71 Auto-merge from CI [skip ci] 2015-12-17 13:02:37 +11:00
Maikel Linke
bc6110c178 Re-defining in_distributor scope as method to allow chaining 2015-12-17 12:42:28 +11:00
Rob Harrington
72f7e545dc Making sure bill > 0 for finalize account invoice spec 2015-12-17 12:04:24 +11:00
Rob Harrington
e0da49e4df Formatting dates for account invoices in rails time zone 2015-12-17 11:34:06 +11:00
Rob Harrington
b004060679 Printing invoices doesn't fail when order has no order cycle 2015-12-17 11:33:18 +11:00
Maikel Linke
ea68619f0b Use bundled rails to prepare imported database 2015-12-17 10:31:31 +11:00
Rob Harrington
555f639026 Fixing unstable update_account_invoice specs
Rounding first then summing != summing first then rounding
2015-12-17 09:16:19 +11:00
Rob Harrington
26a2f1a280 Adjustments on account invoices are created based on presence of a bill
Rather than of turnover
2015-12-16 23:10:47 +11:00
Rob Harrington
83e3fb98f7 Only display billable period adjustments where the amount in > 0
Rather than where the bill (which is calculated according to current settings) is > 0
2015-12-16 19:18:59 +11:00
Rob Harrington
bac4fcbd8f Make sure that adjustments for billable periods have a valid order to attach to when creating/updating 2015-12-16 19:18:59 +11:00
Rob Harrington
ecd11702c3 Fixing up enterprise user account page 2015-12-16 19:18:59 +11:00
Rob Harrington
fe0652e243 When updating a line_item quantity from 0, final_weight_volume is recalculated from the variants unit value 2015-12-16 19:18:59 +11:00
Rob Harrington
f49722ba90 Fixing broken BMC specs 2015-12-16 19:18:58 +11:00
Rob Harrington
0370723edd Attempt to add a sensible name and contact number to Account Invoice addresses 2015-12-16 19:18:58 +11:00
Rob Harrington
d46712de84 Obsolete BillablePeriods only deleted if their associated order is not already complete 2015-12-16 19:18:58 +11:00
Rob Harrington
199a3c38f9 Bill is capped before tax is applied, like we say it is 2015-12-16 19:18:58 +11:00
Rob Harrington
0ed8cf973d Adding an example bill calculator to business model config edit page
To allow super admin to see the effects of any changes they make to BMC settings
2015-12-16 19:18:58 +11:00
Rob Harrington
76d4f74f6b Ammending BillablePeriod spec to be ensure tax is charged correctly 2015-12-16 19:18:58 +11:00
Rob Harrington
ca3c464fda Reorganising busines model config settings, moving account invoice tax rate in busines model config settings 2015-12-16 19:18:57 +11:00
Rob Harrington
85f61364f8 BillablePeriods use global config to calculate bills 2015-12-16 19:18:57 +11:00
Rob Harrington
c1d04af5cc Implementing monthly billing description logic in required pages 2015-12-16 19:18:57 +11:00
Rob Harrington
5b72f53738 Adding helper for describing monthly billing charges 2015-12-16 19:18:57 +11:00
Rob Harrington
da325780b1 Adding BMC link to configurations menu 2015-12-16 19:18:57 +11:00
Rob Harrington
a40a03905f Reorganising BMC edit view 2015-12-16 19:18:57 +11:00
Rob Harrington
044e423543 Adding update logic to business model config controller 2015-12-16 19:18:57 +11:00
Rob Harrington
cb9b61f393 WIP: Adding an edit view for BMC variables 2015-12-16 19:18:56 +11:00
Rob Harrington
58031408f1 Adding basic business model configuration variables to app config 2015-12-16 19:18:56 +11:00
Rob Harrington
e20b06bb97 Adding basic route and controller for business model configuration 2015-12-16 19:18:56 +11:00
Rob Harrington
cc4f9dd09b Making lettuceshare report spec more robust 2015-12-16 18:14:19 +11:00
Rob Harrington
18ea0c1717 Pulling VariantOverride scoping down into products and inventory report base 2015-12-16 14:23:43 +11:00
Rob Harrington
2bb85eb8e0 Revert "Add SKU to LettuceShare report"
This reverts commit 15ea64b409.
2015-12-16 13:42:58 +11:00
Rob Harrington
5d28a7fdf8 Adding SKU to Products and Inventory reports (except lettuceshare) 2015-12-16 13:37:19 +11:00
Rob Harrington
befc558224 Pulling product_and_variant_name down into VariantAndLineItemNaming, renaming to product_and_full_name
Also allowing this method to be used in reports (Xero), to reflect appropriate name for weight/volume adjusted line items
2015-12-16 11:55:24 +11:00
Rob Harrington
c91f1301f0 Adding preferences to enterprises for sorting of order cycles in shopfront list 2015-12-16 11:55:23 +11:00
Rob Harrington
e6a51bb49d Adding actions dropdown to admin order view/pages 2015-12-16 11:55:23 +11:00
Rob Harrington
ae0ad73b4a Printable Invoices Improvements for Food Connect
Adding cusotmer instructions, hiding tax column when not present, order cycle name appears at top of invoice and items are sorted by product name
2015-12-16 11:55:23 +11:00
Continuous Integration
b7edf5e046 Auto-merge from CI [skip ci] 2015-12-16 10:58:03 +11:00
Em-AK
81f244025f Update due_date in feature test
due_date = invoice_date + 1 month
2015-12-13 18:42:27 +01:00
Em-AK
fcc328f00a Display default xero invoice dates
fixes #682

* pre-fill the invoice_date and due_date in the xero report generation form
* increase the default period between invoice_date and due_date to 1 month in
XeroInvoiceReport
2015-12-13 16:42:32 +01:00
Maikel Linke
758b1f8e64 using in_stock? to filter variants in lettuceshare report 2015-12-11 15:12:28 +11:00
Maikel Linke
bb58473b90 Consider variant overrides in LettuceShare report 2015-12-11 15:12:28 +11:00
Maikel Linke
1d46c2febd LettuceShare report: display only if count_on_hand > 0
Use the inventory of a distributor if selected.
2015-12-11 15:12:27 +11:00
Maikel Linke
15ea64b409 Add SKU to LettuceShare report 2015-12-11 15:12:27 +11:00
Maikel Linke
6787709693 LettuceShare report: total in unit value column and total blank 2015-12-11 15:12:27 +11:00
Rohan Mitchell
a3874d42af Spec moved to OpenFoodNetwork::LastUsedAddress 2015-12-11 13:25:40 +11:00
Rohan Mitchell
3f8d470d23 When admin associates user with an order, look up last used address 2015-12-11 13:06:59 +11:00
Rohan Mitchell
ae3061df80 All orders specs use JS 2015-12-11 13:06:59 +11:00
Rohan Mitchell
5579fa5e0b Extract last used address finding into service object 2015-12-11 13:06:59 +11:00
Rohan Mitchell
e33ede0ec2 Include order cycle status in new order form 2015-12-11 13:06:58 +11:00
Rohan Mitchell
76d4fbccf9 Use select2 for order cycle selection 2015-12-11 13:06:58 +11:00
Rohan Mitchell
60e971ad63 Take variant overrides into account for price when admin adds line item to order 2015-12-11 13:06:57 +11:00
Rohan Mitchell
222b390b31 Fix error display 2015-12-11 13:06:57 +11:00
Rohan Mitchell
932ac45ea5 Do not show form until distribution has been chosen 2015-12-11 13:06:57 +11:00
Rohan Mitchell
80ebaece2d Sort distribution choices by name 2015-12-11 13:06:57 +11:00
Rohan Mitchell
3419198635 Disable distributors that do not have an order cycle 2015-12-11 13:06:57 +11:00
Rohan Mitchell
1026b81d0c Do not show order cycle choice until distributor is chosen 2015-12-11 13:06:57 +11:00
Rohan Mitchell
c74463404d Only show order cycle options that include the chosen distributor 2015-12-11 13:06:57 +11:00
Rohan Mitchell
2081744cf6 Fix spec 2015-12-11 13:06:57 +11:00
Rohan Mitchell
cbaf2a0cb3 Angularise edit order form 2015-12-11 13:06:57 +11:00
Rohan Mitchell
6e7b6b5dfc Tidy render partial calls and hash syntax 2015-12-11 13:06:57 +11:00
Rohan Mitchell
815694de31 Move orders/edit template from Spree 2015-12-11 13:06:57 +11:00
Rohan Mitchell
2daceb1111 Angularise new order form 2015-12-11 13:06:57 +11:00
Rohan Mitchell
eb07680f1f Inject shops and order cycles 2015-12-11 13:06:57 +11:00
Rohan Mitchell
47c23c986a Move distribution fields from override to partial 2015-12-11 13:06:56 +11:00
Rohan Mitchell
742e2279ae Tidy render partial calls 2015-12-11 13:06:56 +11:00
Rohan Mitchell
eaae16a486 Copy orders/new template from Spree 2015-12-11 13:06:56 +11:00
Continuous Integration
ae945ace9d Auto-merge from CI [skip ci] 2015-12-11 11:09:54 +11:00
Rohan Mitchell
9d5606a4fd Fix enterprise index page 500 2015-12-11 10:06:07 +11:00
Maikel Linke
cd7721a127 Using date and time of current timezone
Using Time.zone.now and Date.current instead of Time.now and Date.today.
This should make all specs timezone independent.
2015-12-10 11:38:41 +11:00
Rohan Mitchell
ee447c9ce6 Move blankOption service to admin.utils module 2015-12-10 09:35:27 +11:00
Rohan Mitchell
eba2aae353 Copy StatusMessage to admin.utils module, eventually to be moved here 2015-12-10 09:32:04 +11:00
Rohan Mitchell
c1a80b1e8f Require confirmation when saving an order cycle without distributors 2015-12-10 09:17:25 +11:00
Rohan Mitchell
6998df25e0 Fix indentation 2015-12-10 09:17:25 +11:00
Rohan Mitchell
921210012a Swap in StatusMessage service for custom message display in order cycles interface 2015-12-10 09:17:25 +11:00
Rohan Mitchell
8d270e919f Sort exchanges for display when editing an order cycle 2015-12-10 09:17:25 +11:00
Rohan Mitchell
1e397a41ae Refactor to simplify outgoing_exchange_variant_ids 2015-12-10 09:17:25 +11:00
Rohan Mitchell
243ef4ee16 When an outgoing exchange includes a variant that is not in an incoming exchange, remove it from the outgoing exchange 2015-12-10 09:17:25 +11:00
Rohan Mitchell
ea6974d438 Add OrderCycle#supplied_variants 2015-12-10 09:17:25 +11:00
Rohan Mitchell
ccb23cd186 Do not allow re-adding exchange 2015-12-10 09:17:25 +11:00
Rohan Mitchell
d4ee20455e Remove enterprise options from list when added 2015-12-10 09:17:25 +11:00
Rohan Mitchell
ef603a070e Add methods to check for novel suppliers and distributors in an order cycle 2015-12-10 09:17:25 +11:00
Rohan Mitchell
1a4448c6d2 Do not allow adding blank enterprises 2015-12-10 09:17:25 +11:00
Rohan Mitchell
a78d8fa6af Build exchange form on front-end 2015-12-10 09:17:25 +11:00
Rohan Mitchell
8c0a82f26f Provide issues summary for enterprises, pass enterprises through to controller 2015-12-10 09:17:25 +11:00
Rohan Mitchell
93c42d24c7 Extract issue detection into service object 2015-12-10 09:17:25 +11:00
Rohan Mitchell
036ffeb634 Enterprise service splits enterprises into hubs and producers 2015-12-10 09:17:25 +11:00
Rohan Mitchell
3dcbdad088 Show/hide all products 2015-12-10 09:17:25 +11:00
Rohan Mitchell
7820c31976 Show supplier as secondary in information hierarchy 2015-12-10 09:17:25 +11:00
Rohan Mitchell
d314f07887 Use flexbox to more neatly lay out order cycle products 2015-12-10 09:17:25 +11:00
Rohan Mitchell
2efaedc225 Add .exchange-products container div, fill full row with products 2015-12-10 09:17:25 +11:00
Rohan Mitchell
c5e2ed5aa1 Order outgoing products by name 2015-12-10 09:17:24 +11:00
Rohan Mitchell
8f917817b8 Fix broken styles 2015-12-10 09:17:24 +11:00
Rohan Mitchell
a2c0088c91 Do not show flash message if we're performing an async update without reload 2015-12-10 09:17:24 +11:00
Rohan Mitchell
9fef0a9909 When order cycle is updated, display message instead of reloading the page 2015-12-10 09:17:24 +11:00
Rohan Mitchell
29bfac5f54 Order cycle interface may update or update and close 2015-12-10 09:17:24 +11:00
Maikel Linke
efa7c215e2 Removing usage of SimpleCov 2015-12-04 14:51:44 +11:00
Maikel Linke
1589bd9ac3 Use mail() instead of devise_mail
The EnterpriseMailer used `devise_mail` to send confirmation
instructions. That call is more complicated than `mail` and added an
unwanted reply-to header.
2015-12-04 10:37:55 +11:00
Maikel Linke
a810a6e2b7 fix succeed_if_master_merged 2015-12-04 10:37:55 +11:00
Maikel Linke
c4fb4a8510 Removing Suburbs from the code
Suburbs are not used any more. Removing the last code bits should avoid
confusion and save a tiny bit of test time.
2015-12-04 10:37:55 +11:00
Maikel Linke
d67a5aba0e Remove script/delayed_job.sh
This version was dependent on the Australian environment. It is better
to call delayed_job directly from monit. The deployment repository has
been updated.
2015-12-04 10:37:55 +11:00
Maikel Linke
d5c4da3bf0 Not using Paperclip's to avoid HTTP calls to S3 2015-12-04 10:37:55 +11:00
Maikel Linke
261a464b50 Fixing display of shop list in group producer modal 2015-12-04 10:37:55 +11:00
Maikel Linke
0f2ae79e05 Fixing "Shop for" label on groups producer modal 2015-12-04 10:37:55 +11:00
Maikel Linke
caffdee047 Removing depricated sensor parameter for Google Maps 2015-12-04 10:37:55 +11:00
Rohan Mitchell
d320b2e7d4 Merge branch 'fix-delayed-job' into combined/producer-emails-simplify_fix-delayed-job 2015-12-02 15:06:38 +11:00
Rohan Mitchell
e8ccd35363 Simplify producer email to make it more generic 2015-12-02 15:05:49 +11:00
Rohan Mitchell
bd854bf2dd Remove receival_time from exchange, just use receival_instructions 2015-12-02 15:05:49 +11:00
Rohan Mitchell
10edb2b056 Fix delayed job startup - prevent error caused by double load 2015-12-02 10:48:50 +11:00
Rob H
86f1afae92 derp 2015-11-29 18:10:49 +11:00
Rob H
1cffd35968 Fixing up specs pertaining to full_name generation for line_items 2015-11-29 17:52:01 +11:00
Rob H
baeacfb8a9 LineItem inherits display_name from variant
Allows line_items to be named correctly.
2015-11-29 17:25:28 +11:00
Rob Harrington
7ecf5df26a Updating line items through admin controller causes enterprise fees to be recalculated 2015-11-27 15:06:49 +11:00
Rob Harrington
a5a886c51f Only test for coordination when orders actually have order_cycles 2015-11-25 15:27:27 +11:00
Rob Harrington
96aace971f Merge remote-tracking branch 'origin/master' into line_item_naming 2015-11-25 15:13:56 +11:00
Rob Harrington
6c254c534f Upgrade fog to resolve 'Digest::Digest is deprecated; use Digest' warning 2015-11-25 15:13:25 +11:00
Rob Harrington
b341c1ef8a Ensure that dates in BOM AJAX requests have timezones 2015-11-25 15:06:15 +11:00
Rob Harrington
7e6b43266f Making sure that price and final_weight_volume can be updated (by distributor or coordinator) 2015-11-25 14:23:55 +11:00
Maikel
3975eef0c4 Merge pull request #716 from openfoodfoundation/uk/i18n
#715: Add missing strings for en-GB locale.
2015-11-24 18:36:32 +11:00
Paul Mackay
a2a87cc68f #715: Add missing strings for en-GB locale. 2015-11-23 16:44:39 +00:00
Rob Harrington
4bdc1bc418 LineItem final_weight_volume is updated whenever quantity is changed, though can be set directly 2015-11-18 16:22:36 +11:00
Rob Harrington
33454a7090 Adding server validation errors messages to BOM interface 2015-11-18 14:32:29 +11:00
Rob Harrington
6268b7cc7e Printing/sending an invoice uses the same template for generating a pdf 2015-11-18 10:02:51 +11:00
Rob Harrington
75846a4d1f Merge branch 'master' into line_item_naming 2015-11-16 10:38:42 +11:00
Rob Harrington
c199e22190 Make a few BOM specs more robust 2015-11-16 10:31:41 +11:00
Rob Harrington
3b2bdb8397 Change the way changes to underlying model are watched and updated for select2 elements 2015-11-16 10:31:22 +11:00
Rob Harrington
767671c3b4 New pattern: blank Options for index drop down filters are added within service
Rather than in the controller after data is loaded
2015-11-16 10:30:44 +11:00
Rob Harrington
76414dedff Bumping coffee-script version 2015-11-16 10:27:32 +11:00
Rob Harrington
ae7fb91a9a Only reloading line_items and orders on BOM, $timeout for adding blankOption
$timeout required for adding a blank option to lists of suppliers,
distributors and orderCycles to prevent spec failures related to the
use of select2
2015-11-13 15:59:33 +11:00
Maikel Linke
229070a76b Merge branch 'master' of github.com:openfoodfoundation/openfoodnetwork into i18n 2015-11-13 15:20:58 +11:00
Maikel Linke
8bfe459241 i18n fixes of html display 2015-11-13 14:22:17 +11:00
Rohan Mitchell
bb6fb2f5e8 Merge branch 'sell-food-link' into combined/add-to-cart-speed_and_sell-food-link 2015-11-13 14:03:32 +11:00
Rohan Mitchell
6de44877c8 Update link for uber-style sell food dropdown 2015-11-13 14:03:14 +11:00
Rohan Mitchell
b6f3e6eca6 Fix broken spec 2015-11-13 14:03:07 +11:00
Rohan Mitchell
a86cc96452 Use pluck instead of map 2015-11-13 14:03:07 +11:00
Rohan Mitchell
178e5f59e6 Update cart by applying differences rather than clear-and-readd every time 2015-11-13 14:03:07 +11:00
Rohan Mitchell
7fffa03d8d Fix bug: set difference comparison of string with number 2015-11-13 14:03:07 +11:00
Rohan Mitchell
888e4d80ef Add reliable way to check if cart is dirty. Previous way returned true when cart empty. 2015-11-13 14:03:07 +11:00
Rohan Mitchell
d3c7c46800 Add method to remove a variant from an order 2015-11-13 14:03:07 +11:00
Rohan Mitchell
c432ed9e08 Build list of variants removed from the cart when overwriting 2015-11-13 14:03:07 +11:00
Rohan Mitchell
e175149e76 Add method to check whether a passed-in cart value varies from the cart 2015-11-13 14:03:07 +11:00
Rohan Mitchell
1b5901317d Separate concerns: reading products hash and adding items to cart 2015-11-13 14:03:07 +11:00
Rohan Mitchell
2f4b5bad26 Make benchmark more realistic 2015-11-13 14:03:07 +11:00
Rohan Mitchell
64e8927ae9 Add benchmark: add to cart 2015-11-13 14:03:07 +11:00
Rohan Mitchell
c932d20ef5 Extract multi-sample benchmarking into a helper method 2015-11-13 14:03:07 +11:00
Maikel Linke
5d5fda3a25 Merge remote-tracking branch 'origin/master' into i18n
Conflicts:
	config/locales/en.yml
2015-11-13 10:07:29 +11:00
Rob Harrington
a96cdd5ee7 Merge branch 'master' into line_item_naming
Conflicts:
	app/views/admin/order_cycles/edit.html.haml
2015-11-13 09:54:26 +11:00
Rob Harrington
4191e2b6f0 Changing the way select filters are reset on BOM to try and fix specs 2015-11-13 09:44:57 +11:00
Rob Harrington
88fd9f72e6 Retry uncooperative BOM feature spec 2015-11-13 09:14:20 +11:00
Rob Harrington
3d36ebe2e6 Some Ransack trickery to get OrderCycles#index to load only recent OR undated OCs when no orders_close_at predicate is passed in 2015-11-12 18:29:19 +11:00
Rob Harrington
6966fbba7c Present date limits being set in line items controller .js unless orderCycleFilter has actually been set 2015-11-12 17:40:35 +11:00
Rob Harrington
2310bc95bc Committing changes to version used to bundle Gemfile.lock 2015-11-12 17:34:22 +11:00
Rob Harrington
27a5791e26 Fixing Angular Specs for line items controller 2015-11-12 17:33:12 +11:00
Rob Harrington
be8038e9d0 Merge branch 'master' into line_item_naming
Conflicts:
	lib/open_food_network/order_cycle_management_report.rb
	lib/open_food_network/packing_report.rb
2015-11-12 14:40:11 +11:00
Rob Harrington
1556d38b1e Admin Enterprise#update.json renders updated enterprises using index serializer 2015-11-12 14:30:43 +11:00
Rob Harrington
4e4de65cba Fetch undated order cycles by default for index actions 2015-11-12 12:08:39 +11:00
Rob Harrington
6e8d807408 Fixing spec using text-angular broken by upgrade of poltergeist 2015-11-12 11:35:22 +11:00
Rob Harrington
095466cb43 Fixing syntax error for new method for OCs controller 2015-11-12 10:34:09 +11:00
Rob Harrington
2719c699d7 Updating line items index spec 2015-11-12 10:06:41 +11:00
Rob Harrington
34030276d7 Cleaning up line items index (BOM) 2015-11-12 10:06:21 +11:00
Rob Harrington
330977186e Using confirm-change and select2-min-search directive for line items index 2015-11-12 10:05:14 +11:00
Rob Harrington
fc57255b40 Adding save-bar to line items index 2015-11-12 10:04:18 +11:00
Rob Harrington
266820742d Using request monitor on line items index (BOM) 2015-11-12 10:03:28 +11:00
Rob Harrington
722471a111 Allow use of completed_at for orders index ransacking
Needed to override original Spree method to allow intuitive use of
completed_at_gt and completed_at_lt
2015-11-12 10:01:35 +11:00
Rob Harrington
86b5e810e5 Only try to dereference attrs when enough information is present 2015-11-12 09:59:46 +11:00
Rob Harrington
f8a31e8864 Resetting select filters in a way that actually works 2015-11-12 09:58:55 +11:00
Rob Harrington
639472b917 WIP: Adding a request monitoring service to handle loading status 2015-11-12 09:57:02 +11:00
Rob Harrington
193325f81b Improve formatting around saving on line items index (BOM) 2015-11-12 09:52:10 +11:00
Rob Harrington
5a7cac652c Adding confirm-link directive 2015-11-12 09:49:36 +11:00
Rob Harrington
b5aaf36bd2 Create directive for scaling by a factor and then formatting as currency 2015-11-12 09:48:43 +11:00
Rob Harrington
c5a26249ea Removing unneeded directives 2015-11-12 09:47:37 +11:00
Rob Harrington
69ead3c829 Line items serialiser gives a sensible value for max_quantity 2015-11-12 09:47:12 +11:00
Rob Harrington
93caa4a11d Bumping poltergeist version to 1.7.0 2015-11-12 09:45:14 +11:00
Rohan Mitchell
e20d8d3e95 Merge branch 'master' into folklabs-producer-emails 2015-11-11 14:20:25 +11:00
Rohan Mitchell
fb3e292e20 Formatting 2015-11-11 11:53:04 +11:00
Rohan Mitchell
f499dd627a with_tax_included_in_price handles exceptions gracefully 2015-11-11 11:53:04 +11:00
Rohan Mitchell
8e1bade355 Move adjustment specs to their own spec file 2015-11-11 11:53:04 +11:00
Rohan Mitchell
a32321df68 Clarify label 2015-11-11 11:53:04 +11:00
Rohan Mitchell
5a29311137 Choose a more sensible default tax rate: one that calculates to the same amount as the current adjustment tax 2015-11-11 11:53:04 +11:00
Rohan Mitchell
3e7a12cca1 Rename spec support method for faster tab completion on save_and_open_page 2015-11-11 11:53:04 +11:00
Rohan Mitchell
81a6e07d5c Admin can remove tax on an adjustment 2015-11-11 11:53:04 +11:00
Rohan Mitchell
727ecae62b Admin can modify a taxed adjustment on an order 2015-11-11 11:53:04 +11:00
Rohan Mitchell
85e45fa558 Use select2 2015-11-11 11:53:04 +11:00
Rohan Mitchell
83c0093665 Admin can include tax when creating an adjustment 2015-11-11 11:53:04 +11:00
Rohan Mitchell
46a9304ae1 Extract compute_tax from EnterpriseFeeApplicator to Spree::TaxRate model 2015-11-11 11:53:04 +11:00
Rohan Mitchell
d794981ecf Add form field to set tax when creating adjustment on order. Display tax included in adjustments on order interface. 2015-11-11 11:53:04 +11:00
Rohan Mitchell
6476ce6ba9 Make spec more resilient 2015-11-10 15:05:45 +11:00
Maikel Linke
a06b452e7e updated norwegian locale 2015-11-07 16:42:35 +11:00
Maikel Linke
0b6cbb43d6 updated locale nb.yml 2015-11-06 11:56:25 +11:00
Rob Harrington
27903a46e6 Adding new save-bar directive for handling save actions for index pages 2015-11-06 09:53:31 +11:00
Rob Harrington
330882c689 Pulling out styling for red buttons in admin into more generic .red class 2015-11-06 09:52:48 +11:00
Rob Harrington
b1bac703ed WIP: BOM Refactor, delete line_items using ngResource, updating data requests in line_items_controller 2015-11-05 17:50:18 +11:00
Rob Harrington
bf6bd2dc68 Hack down routes available for Admin::LineItemsController 2015-11-05 17:18:32 +11:00
Rob Harrington
eb7b2e7a3b Use ams_prefix not ams_suffix! 2015-11-05 17:17:45 +11:00
Rob Harrington
73c80cb5e5 Ordering index orders within query 2015-11-05 17:11:13 +11:00
Rob Harrington
6769c2c729 Can pass params for order or line items into LineItemsController#index 2015-11-05 17:07:47 +11:00
Rob Harrington
afef9e3211 WIP: BOM Refactor, building order_cycle fetch and update logic with ngResource 2015-11-05 15:13:19 +11:00
Rob Harrington
a9e5f2912f WIP: Fixing Orders service specs 2015-11-05 14:48:26 +11:00
Rob Harrington
66d1e4297e WIP: Renaming admin.order_cycles to admin.orderCycles for consistency 2015-11-05 14:40:42 +11:00
Maikel Linke
5e59048705 i18n typo 2015-11-05 14:39:33 +11:00
Rob Harrington
4d4e2d4abd WIP: Moving order_cycle controller into order_cycles folder 2015-11-05 14:38:01 +11:00
Rob Harrington
db4e8382e4 Oops, updating template to make order filtering work 2015-11-05 14:05:14 +11:00
Rob Harrington
51762753f4 WIP: BOM Refactor, adding json route for OrderCyclesController#index, loading OCs based on show_more or specific order_close_at_gt 2015-11-05 14:04:29 +11:00
Rob Harrington
2483eef4be WIP: BOM Refactor, removing obsolete OrderCycle.recently_closed scope, ordering closed OCs 2015-11-05 14:02:04 +11:00
Maikel Linke
38d2616ea0 No need to empty cache if I18n asset depends on locale 2015-11-05 12:50:11 +11:00
Rohan Mitchell
5db64b6f21 Update travis config and README with new ruby version 2015-11-05 12:48:22 +11:00
Maikel Linke
0505a45de5 Invalidate I18n asset if locale changes 2015-11-05 12:47:15 +11:00
Rob Harrington
e96fa967b8 WIP: BOM refactor, rebuilding bulk orders controller as line items controller using new AJAX routes 2015-11-05 11:54:36 +11:00
Maikel Linke
8b29612614 Merge remote-tracking branch 'origin/master' into i18n 2015-11-05 11:54:06 +11:00
Maikel Linke
90d52151b6 Updated fr.yml 2015-11-05 11:53:38 +11:00
Rohan Mitchell
6666de96b2 Update ruby version used in CI 2015-11-05 11:24:12 +11:00
Rob Harrington
b7d92786d0 Bumping ruby version to 2.1.5 2015-11-05 11:09:22 +11:00
Rob Harrington
d731d4e803 Making sure flash is a hash so that is can be used to initialize OpenStuct 2015-11-05 11:09:21 +11:00
Rob Harrington
2277b9f5a6 Changing ruby version in version manager config 2015-11-05 11:09:21 +11:00
Rob Harrington
aef8b9648e Initial upgrade of Gemfile 2015-11-05 11:09:21 +11:00
Rohan Mitchell
65589d25c6 Display more verbose product and variant name 2015-11-05 09:50:00 +11:00
Rohan Mitchell
5ffad4d343 Fix quantity calculation 2015-11-05 09:43:44 +11:00
Rob Harrington
50a551a87e Coffeescript! 2015-11-04 18:35:14 +11:00
Rob Harrington
1494389d34 WIP: BOM Refactor, organising admin.products files in appropriate folders 2015-11-04 18:28:53 +11:00
Rob Harrington
b43049af47 WIP: BOM Refactor, building line_item fetch and update logic with ngResource 2015-11-04 18:16:17 +11:00
Rob Harrington
f563f04f1c WIP: BOM Refactor, building order fetch and update logic with ngResource, updating rails routes 2015-11-04 16:35:56 +11:00
Rob Harrington
ae7e744644 WIP: BOM Refactor, adding for_line_items action to enterprises controller 2015-11-04 15:02:29 +11:00
Rob Harrington
625e0888ea Adding logic to Admin::BaseController to standardise rendering of data with AMS 2015-11-04 12:10:50 +11:00
Rohan Mitchell
a3d638df67 Merge branch 'master' into folklabs-producer-emails 2015-11-04 11:15:01 +11:00
Rohan Mitchell
9227df54b6 Display detail rows for admin adjustments 2015-11-01 15:19:03 +11:00
Rohan Mitchell
015f3eb9ac Display summary rows for admin adjustments 2015-11-01 13:42:59 +11:00
Maikel Linke
fd747f9012 Updated French locale 2015-10-30 12:20:12 +11:00
Lynne Davis
7350dbb75e Adding tweaks that have been missed from merges 2015-10-30 11:54:06 +11:00
Rohan Mitchell
94e1264aef Add rspec-retry for inconsistently failing spec 2015-10-29 16:01:39 +11:00
Maikel Linke
aec3980a93 Merge remote-tracking branch 'origin/master' into i18n 2015-10-29 14:56:17 +11:00
Maikel Linke
4eed222f18 Fixed several i18n issues reported by Myriam 2015-10-29 14:55:38 +11:00
Rohan Mitchell
f63a80300b Merge branch 'master' into folklabs-producer-emails 2015-10-29 11:49:24 +11:00
Rohan Mitchell
87cf3eda41 Amend 'Detailed orders breakdown' heading with missing content 2015-10-29 11:48:12 +11:00
Rob Harrington
02423d3a41 Using rails time zone account invoice job specs 2015-10-28 16:51:18 +11:00
Rob Harrington
cb1f79f59a Updating front end order details, invoices and pdfs to display names of line_items as opposed to variants 2015-10-28 15:42:14 +11:00
Rob Harrington
18a7317185 Merge branch 'account-invoices' into line_item_naming
Conflicts:
	app/models/spree/line_item_decorator.rb
2015-10-28 13:42:27 +11:00
Rob Harrington
c5810fc003 Improving BOM form validation 2015-10-28 13:08:50 +11:00
Rob Harrington
f60b6994eb Wrapping line_item update with order.update_distribution_charge inside lock 2015-10-28 13:08:50 +11:00
Rob Harrington
50b3635e7e Locking line_items on API update 2015-10-28 13:08:50 +11:00
Rob Harrington
ab7bfd10c5 Revert "Renaming options_text to unit_text so that we can use method from included VariantAndLineItemNaming module"
This reverts commit e86e08b72e939fee61eddd41d56081395666a877.

Conflicts:
	lib/open_food_network/order_and_distributor_report.rb
	spec/features/admin/variants_spec.rb
	spec/lib/open_food_network/order_and_distributor_report_spec.rb
2015-10-28 13:08:50 +11:00
Rob Harrington
cdb0c2db33 Admin Orders show page uses line_item.full_name to describe line_items 2015-10-28 13:07:32 +11:00
Rob Harrington
21e5895a8a Group Buy panel on BOM takes changes to final_weight_volumes into account 2015-10-28 13:07:32 +11:00
Rob Harrington
33e1322a44 Adding form validation to BOM 2015-10-28 13:07:32 +11:00
Rob Harrington
b08556ec7f WIP: Making final_weight_volume adjustment a bit nicer 2015-10-28 13:07:31 +11:00
Rob Harrington
a71999ba84 Weight only returned for products whose variant_unit is 'weight' 2015-10-28 13:07:31 +11:00
Rob Harrington
2d468f5022 Fixing attr_accessible for line_items (broken in previous commit) 2015-10-28 13:07:31 +11:00
Rob Harrington
eba13a0dd7 Line items inherit units from variants upon creation 2015-10-28 13:07:31 +11:00
Rob Harrington
1946bac8e4 Fixing report spec that cares about table title case 2015-10-28 13:07:31 +11:00
Rob Harrington
e52f7165c3 Overriding any last references to options_text in the spree codebase 2015-10-28 13:07:31 +11:00
Rob Harrington
6dfae1b014 Whitespace crusader 2015-10-28 13:07:31 +11:00
Rob Harrington
40972cc6ec Updating reports to use naming information from line_items directly, rather than from the original variant 2015-10-28 13:07:31 +11:00
Rob Harrington
795830d94d Renaming options_text to unit_text so that we can use method from included VariantAndLineItemNaming module 2015-10-28 13:07:31 +11:00
Rob Harrington
039fcb80eb Extracting variant and option_value naming out into a lib class that is now shared between line items and variants, line_items have option_values 2015-10-28 13:06:10 +11:00
Rob Harrington
6a70c162bb Account invoice jobs run according to rails config time zone rather than system time zone 2015-10-23 12:33:05 +11:00
Maikel Linke
0fd29dd32e use expect in bulk_order_management_spec 2015-10-22 13:43:15 +11:00
Maikel Linke
bbeeb8a493 Merge remote-tracking branch 'origin/master' into i18n 2015-10-22 11:03:42 +11:00
Maikel Linke
6c1619ba60 i18n more content 2015-10-22 11:03:35 +11:00
Maikel Linke
df34f6ef8e using default_locale for precompiled assets 2015-10-22 10:50:29 +11:00
Maikel Linke
dc8166ec84 New CI script to check test state via GitHub API 2015-10-21 16:29:41 +11:00
Rob Harrington
ef08977dbe Prevent invoices from being sent unless the distributor of an order has set their ABN 2015-10-21 16:23:48 +11:00
Rob Harrington
9b2653aa2d Updating order invoice template to be more legally compliant 2015-10-21 15:52:14 +11:00
Maikel Linke
adf0a84669 Use ! version of find_by_permalink to recover on missing resource 2015-10-21 15:42:28 +11:00
Maikel Linke
7163664725 updated locales fr and nb 2015-10-21 14:36:02 +11:00
Maikel Linke
2053fbecda Merge branch 'i18n-replace-strings-in-js' into i18n
Conflicts:
	.travis.yml
	app/views/spree/order_mailer/confirm_email_for_customer.html.haml
	config/locales/en.yml
2015-10-21 14:09:43 +11:00
Maikel Linke
6781051fe6 enabling Travis container-based infrastucture 2015-10-21 10:27:16 +11:00
Maikel Linke
2357f46a4e CI scripts use env vars
The CI scripts are configurable through the environment. They had
hardcoded configurations before. The Australian BuildKite setup will
need global environment variables like this:

STAGING_SSH_HOST=ofn-staging2
STAGING_CURRENT_PATH=/home/openfoodweb/apps/openfoodweb/current
STAGING_SERVICE=unicorn_openfoodweb
STAGING_DB_HOST=localhost
STAGING_DB_USER=openfoodweb
STAGING_DB=openfoodweb_production
PRODUCTION_REMOTE=production:/home/openfoodweb/apps/openfoodweb/current
2015-10-21 10:04:29 +11:00
Maikel Linke
8bd78eb139 spec_helper for lib/open_food_network/permissions_spec.rb 2015-10-21 10:04:29 +11:00
Maikel Linke
f152e4054c Remove obsolete deface 2015-10-21 10:04:29 +11:00
Maikel Linke
62d31f79ed Remove obsolete deface 2015-10-21 10:04:28 +11:00
Maikel Linke
2ea1a59666 depricating db2fog.rb initializer due to invalid bucket name
Once everybody changed their server config, we can remove that file.
2015-10-21 10:04:28 +11:00
Maikel Linke
a95727b376 running all specs in Travis 2015-10-21 10:04:28 +11:00
Maikel
b35df3c945 Travis config for parallel execution on five nodes
This Travis configuration runs rspec on five build machines in parallel. Currently, that takes 15 to 20 minutes.
2015-10-21 10:04:28 +11:00
Rohan Mitchell
421774e46c Do not send producer notifications when the producer has no orders for this order cycle 2015-10-17 11:02:47 +11:00
Rob Harrington
5b3e052f78 Using a compiled stylesheet for pdf styling 2015-10-16 21:36:18 +11:00
Rob Harrington
47fb2270bd Making spec do the right thing 2015-10-16 17:25:40 +11:00
Rob Harrington
f12fd7b4a3 Adding button for print action to admin orders show page 2015-10-16 17:25:40 +11:00
Rob Harrington
40d627cb34 Adding new route for printing an order to pdf 2015-10-16 17:25:40 +11:00
Rob Harrington
6e7fc6a0f7 Adding invoice action to orders controller, to allow sending of invoice email 2015-10-16 17:25:40 +11:00
Rob Harrington
104b100fe6 Pulling distributor signoff out into separate partial 2015-10-16 17:25:39 +11:00
Rob Harrington
3a505abfc7 Adding WickedPDF for generation of order invoices 2015-10-16 17:25:39 +11:00
Rohan Mitchell
ecc3bad8c8 Merge branch 'master' into folklabs-producer-emails 2015-10-16 12:38:54 +11:00
Rohan Mitchell
13fc36bad6 Reorder methods 2015-10-15 12:00:40 +11:00
Rohan Mitchell
a766f007fc Display xero report for account invoices 2015-10-15 11:57:51 +11:00
Rohan Mitchell
4fbeb0c3b1 Check if an order is an account invoice 2015-10-15 10:05:27 +11:00
Rohan Mitchell
de80e6d5bf Find adjustments for billable periods 2015-10-15 09:58:22 +11:00
Rohan Mitchell
92f7b72056 Check whether an individual adjustment has tax included 2015-10-15 09:58:06 +11:00
Rob Harrington
b22d591775 BillablePeriods don't get updated when account_invoice has been finalized 2015-10-14 14:36:38 +11:00
Rob Harrington
1ad0f95536 Updating Billable Periods job ignores versions of enterprises created in the future 2015-10-14 14:36:38 +11:00
Rob Harrington
a71410042f Ensuring that account invoice orders have an address 2015-10-14 14:36:37 +11:00
Rob Harrington
815df3d667 Only clean up account invoice orders that aren't already complete, don't attempt to destroy persisted account_invoice orders 2015-10-14 14:36:37 +11:00
Rohan Mitchell
27741863c5 Add simple contribution guide 2015-10-09 15:21:58 +11:00
Maikel Linke
1751a95909 place I18n init at right place in karma task 2015-10-09 11:40:12 +11:00
Maikel Linke
c169e4af92 rename locale nor to nb 2015-10-09 10:43:55 +11:00
Maikel Linke
7d379dbe4b sort travis sets by run time 2015-10-09 10:23:48 +11:00
Maikel Linke
5f80043857 using translate filter instead of root scope function with parameters 2015-10-09 10:21:26 +11:00
Maikel Linke
e9d1cf6eb5 using translate filter instead of root scope function 2015-10-08 18:09:11 +11:00
Maikel Linke
d2470685cd clearing tmp cache with rake 2015-10-08 18:08:21 +11:00
Maikel Linke
a4db4ee782 Merge remote-tracking branch 'off/travis-parallel' into i18n-replace-strings-in-js 2015-10-08 16:07:52 +11:00
Maikel
9115e1175e Travis config for parallel execution on five nodes
This Travis configuration runs rspec on five build machines in parallel. Currently, that takes 15 to 20 minutes.
2015-10-08 15:24:48 +11:00
Maikel Linke
56fd91f82b CI server has to empty the cache if language files changed 2015-10-07 19:10:44 +11:00
Maikel Linke
d62775a785 update specs and fix labels yes and no 2015-10-07 18:05:59 +11:00
Maikel Linke
8b40d094ee new translate filter and updated specs for js translations 2015-10-07 15:47:51 +11:00
Maikel Linke
91fae79be4 Update tests for new label "Login" 2015-10-07 14:06:34 +11:00
Maikel Linke
5aa3ebde9c Set the locale to "en" in test environment. 2015-10-07 14:05:50 +11:00
Maikel Linke
bd737ef727 I18n object file for karma 2015-10-01 16:38:47 +10:00
Maikel Linke
31e7ca9fa2 locale data as js asset 2015-10-01 15:54:46 +10:00
Maikel Linke
0eed8b4578 better testing of existence of I18n 2015-10-01 14:16:59 +10:00
Maikel Linke
6b1e66ed26 Renamed no.yml to nor.yml due to error caused by using "no" 2015-10-01 13:53:10 +10:00
Maikel Linke
da42032d92 Merge remote-tracking branch 'origin/master' into i18n-replace-strings-in-js 2015-10-01 11:15:22 +10:00
Maikel Linke
143c005f0a Merge remote-tracking branch 'origin/i18n-replace-strings-in-views' into i18n-replace-strings-in-js 2015-10-01 11:15:01 +10:00
Maikel Linke
ae96541112 Internationalisation of Javascript views 2015-10-01 11:13:45 +10:00
Maikel Linke
f8725a0174 Removing unused JS partial 2015-10-01 11:12:31 +10:00
Rohan Mitchell
9c6264c4a0 On detailed xero report, do not show product totals (xero treats them as additional line items) 2015-09-25 13:52:51 +10:00
Rohan Mitchell
10bc3919ca Add SKU to detailed xero report 2015-09-22 09:28:50 +10:00
Rohan Mitchell
b5bc4701fa Detailed xero report 2015-09-22 09:15:55 +10:00
Rohan Mitchell
7552776349 Add product_and_variant_name display for Variant 2015-09-21 16:49:31 +10:00
Rohan Mitchell
8f40702369 Line items report whether they have tax included 2015-09-21 15:57:04 +10:00
Rob Harrington
9dc0598870 Adding fix to prevent account_invoice orders from being sucked into the frontend as normal orders 2015-09-18 17:25:34 +10:00
Maikel
4f05b9c28d Changing en: to fr: in French locale file 2015-09-18 09:38:21 +10:00
Maikel
aa4f1f1dec Fixing syntax typo in Norwegian language file 2015-09-18 09:37:35 +10:00
Rob Harrington
14fbeda29e Adding bugsnag notification for case where account_invoice order has errors 2015-09-17 22:38:29 +10:00
Rob Harrington
1c6f3f4877 Translating words on admin accounts page 2015-09-17 22:38:29 +10:00
Rob Harrington
2dcbe2b4f2 Updating the admin account view to show use the new account_invoice model to display data 2015-09-17 22:38:29 +10:00
Rob Harrington
27384439f8 Fixing edge case in update_billable_periods job 2015-09-17 22:38:29 +10:00
Rob Harrington
13adb61b3a Refactoring invoice update process to use new AccountInvoice model 2015-09-17 22:38:29 +10:00
Rob Harrington
77c10dafd6 Linking billable_periods to the relevant account_invoice upon creation 2015-09-17 22:38:29 +10:00
Rob Harrington
4a8f9d1e36 Adding reference to account_invoice for each billable_period 2015-09-17 22:38:29 +10:00
Rob Harrington
0debdcdd9c Renaming files from user_invoice to account_invoice 2015-09-17 22:38:28 +10:00
Rob Harrington
ae30007fed Redesignating all references to user_invoices as account_invoices 2015-09-17 22:38:28 +10:00
Rob Harrington
aa183dc9e0 Account Invoice jobs run by specifying a year and month rather than a specific start and end times 2015-09-17 22:38:28 +10:00
Rob Harrington
b1285cd07f WIP: Adding AccountInvoice model to more robustly record information about enterprise user invoices 2015-09-17 22:38:28 +10:00
Rob Harrington
79497d28d2 Associating billable periods with the relevant adjustment, and moving labelling logic to model 2015-09-17 22:38:13 +10:00
Rob Harrington
5eb20fd8cd Adding tax settings for billing enterprise users 2015-09-17 22:38:13 +10:00
Rob Harrington
01c9560a19 Account page reads from created at date of invoice 2015-09-17 22:38:13 +10:00
Rob Harrington
6cc403cd92 Preventing double creation of invoices by recognising completed invoices within the specifed period 2015-09-17 22:38:13 +10:00
Rob Harrington
11c3cf5f71 Pushing setting validation for accounts jobs into separate methods capable of logging errors to bugsnag 2015-09-17 22:38:12 +10:00
Rob Harrington
448bd12e9f Adding billing tasks to whenever schedule 2015-09-17 22:38:12 +10:00
Rob Harrington
204a3275ac Sorting billable_periods before adding adjustments to user invoices, partly for sanity, partly so that specs works in a logical way 2015-09-17 22:38:12 +10:00
Rob Harrington
6665f9b4a0 Adding global settings for controlling automatic scheduling of accounts tasks 2015-09-17 22:38:12 +10:00
Rob Harrington
ddb0aa4e74 Billable periods from the future are not obsolete 2015-09-17 22:38:12 +10:00
Rob Harrington
aa8e486a45 Look for job names without 'Struct', now that we aren't using structs 2015-09-17 22:38:12 +10:00
Rob Harrington
619c4959ff Removing button for updating billable periods from accounts and billing settings page 2015-09-17 22:38:12 +10:00
Rob Harrington
1b2a06572b Converting accounts jobs to classes, which allows initialization with start and end dates 2015-09-17 22:38:12 +10:00
Rob Harrington
cc26321ab2 Billable Period Updater does not run when end_date is in the future 2015-09-17 22:38:11 +10:00
Rob Harrington
fb01f6d32a User Invoice Finalizer does not run when end_date is in the future 2015-09-17 22:38:11 +10:00
Rob Harrington
0fbd26a3c5 User Invoice Updater does not run when end_date is in the future 2015-09-17 22:38:11 +10:00
Rob Harrington
6f3fad5864 Adding comments 2015-09-17 22:38:11 +10:00
Rob Harrington
5f61952785 UpdateUserInvoices can be run for a specific month 2015-09-17 22:38:11 +10:00
Rob Harrington
128b6853f4 Styling tweaks to the admin account page 2015-09-17 22:38:11 +10:00
Rob Harrington
bed3815df5 User invoice updater formats date strings in localtime 2015-09-17 22:38:11 +10:00
Rob Harrington
7c5816af82 Switching accounts interface over to showing invoices 2015-09-17 22:38:10 +10:00
Rob Harrington
15df1f7f26 Tightening up user selection in UpdateUserInvoices job 2015-09-17 22:38:10 +10:00
Rob Harrington
065bc087d5 Invoice updater cleans up obsolete billable adjustments, ignore billable adjustments without bills and destroys empty invoices 2015-09-17 22:38:10 +10:00
Rob Harrington
c53b5f3edb Adding finalize step to accounts and billing settigns page + controller 2015-09-17 22:38:10 +10:00
Rob Harrington
60cd5ce879 Splitting out invoice finalization as a separate step 2015-09-17 22:38:10 +10:00
Rob Harrington
8bbda5715d Adding basic template for account page 2015-09-17 22:38:10 +10:00
Rob Harrington
92eb5ed367 Adding routes for a new admin account page for users to manage their billing preferences and access invoices 2015-09-17 22:38:10 +10:00
Rob Harrington
70de4fd1fd Touching unchanged billable_periods to prevent them from being marked for deletion 2015-09-17 22:38:10 +10:00
Rob Harrington
c2c0c3684d Refactoring accounts and billing settings controller, adding start_job action 2015-09-17 22:38:09 +10:00
Rob Harrington
38e3690f56 Adding route for start_job action on accounts and billing settings controller 2015-09-17 22:38:09 +10:00
Rob Harrington
2048800c43 Billable periods updater does not auto-run user invoices updater 2015-09-17 22:38:09 +10:00
Rob Harrington
cc0f1ccfa7 Update Billable Periods automatically runs Update User Invoices immediately afterwards 2015-09-17 22:38:09 +10:00
Rob Harrington
d3e8966e65 Update User Invoices job does not run unless necessary global settings have been configured 2015-09-17 22:38:09 +10:00
Rob Harrington
e6f6a3ad81 Commenting out global configs for nightly job switches, use a button to manually run jobs instead (for now) 2015-09-17 22:38:09 +10:00
Rob Harrington
160c0d75fe Confirmation emails do not get send for orders distributed by accounts_distributor 2015-09-17 22:38:09 +10:00
Rob Harrington
f2389ee672 User Invoice Updater finalizes user invoices using global preferences for payment method and shipping method 2015-09-17 22:38:08 +10:00
Rob Harrington
0812643136 Adding views and feature spec for updating default payment and shipping method 2015-09-17 22:38:08 +10:00
Rob Harrington
3e9a61a693 Adding js infrastructure to dynamically fetch available payment and shipping methods for accounts distributor 2015-09-17 22:38:08 +10:00
Rob Harrington
e3e59d76a9 Adding global config for setting default payment and shipping methods for accounts distributor 2015-09-17 22:38:08 +10:00
Rob Harrington
65c26296bd Billable period updater cleans up untouched billable periods for the current billing period 2015-09-17 22:38:08 +10:00
Rob Harrington
9c4ed5f092 Enterprises have billable_periods 2015-09-17 22:38:08 +10:00
Rob Harrington
f0fa696d2f Default scope for BPs ignores deleted records 2015-09-17 22:38:08 +10:00
Rob Harrington
4d58faefd8 Adding timestamps to billable periods 2015-09-17 22:38:08 +10:00
Rob Harrington
311ffc3dc9 wip: user invoice updater finalizes orders on the first of the month 2015-09-17 22:37:56 +10:00
Rob Harrington
d51c69d353 WIP: User invoice updater adds adjustments to current_invoice for each relevant billable_period 2015-09-17 22:37:56 +10:00
Rob Harrington
ee8a86d495 User model can generate a current invoice for enterprise users 2015-09-17 22:37:56 +10:00
Rob Harrington
fa8c3d65dc Adding settings for global accounts and billing setup 2015-09-17 22:37:56 +10:00
Rob Harrington
b4e58a1a79 WIP: Basic structure for daily job to update user invoices 2015-09-17 22:37:55 +10:00
Rob Harrington
550434dfe8 Renaming bill_items to billable_periods 2015-09-17 22:37:55 +10:00
Rob Harrington
fc44e57171 Finishing refactor of bill item updater spec 2015-09-17 22:37:45 +10:00
Rob Harrington
77f735c722 WIP: Refactoring bill item updater specs 2015-09-17 22:37:45 +10:00
Rob Harrington
b736e209ca Bill Item Update handles enterprises created part-way through the month 2015-09-17 22:37:45 +10:00
Rob Harrington
af2bc99c71 Clean up update_bill_items spec after refactor 2015-09-17 22:37:44 +10:00
Rob Harrington
924b3b4cc3 Refactoring update_bill_items job 2015-09-17 22:37:44 +10:00
Rob Harrington
b724745acc WIP: First take at a nightly job for calculating turnover for enterprises 2015-09-17 22:37:44 +10:00
Rob Harrington
bbe25da117 Adding paper_trail verisoning RSpec helpers 2015-09-17 22:37:44 +10:00
Rob Harrington
77e361dd52 Adding shop_trial_expiry method to enterpise model 2015-09-17 22:37:44 +10:00
Rob Harrington
083d7327bc Adding BillItem to database 2015-09-17 22:37:44 +10:00
Rob Harrington
2fa217df56 Adding paper_trail to enterprise model, to track changes to owner_id and sells 2015-09-17 22:37:33 +10:00
Rob Harrington
6489848eff Adding paper_trail gem 2015-09-17 22:37:33 +10:00
sigmundpetersen
b8e40d799b Added translations 2015-09-17 14:18:09 +02:00
Continuous Integration
205a7f1673 Auto-merge from CI [skip ci] 2015-09-17 09:16:20 +10:00
Maikel Linke
2e591b98e1 remove unused javascript 2015-09-16 16:52:26 +10:00
Maikel Linke
0b4a43d77a Merge remote-tracking branch 'origin/master' into i18n-replace-strings-in-views
Conflicts:
	app/views/shared/menu/_cart.html.haml
	app/views/spree/order_mailer/confirm_email_for_shop.html.haml
2015-09-16 16:32:16 +10:00
Maikel Linke
ce87ea54cd Merge branch 'i18n-replace-strings-in-views' of github.com:openfoodfoundation/openfoodnetwork into i18n-replace-strings-in-views 2015-09-16 16:24:38 +10:00
Maikel Linke
637e5c4fee PermalinkGenerator for products 2015-09-16 15:45:10 +10:00
Maikel Linke
ecca23488d Merge branch 'ci-handling-git-tags' into combined/deadlock-js-spec_ci-git-tags_product-permalinks 2015-09-16 15:43:13 +10:00
Maikel Linke
2488411b94 JS feature specs completing before cleaning db
Some specs ran into a deadlock when the Database::Cleaner tried to do
its job while AJAX requests were still triggering other actions.
2015-09-16 15:38:09 +10:00
Maikel Linke
3f822ed0e3 trying to get rid of intermittent failures 2015-09-16 13:06:32 +10:00
Maikel Linke
33af6cbfb1 Specs pending for lagging JS spec test 2015-09-16 11:24:44 +10:00
Maikel Linke
326c972f63 Handling nil in final_weight_volume calculation 2015-09-16 10:12:59 +10:00
Myriam
11892ffe21 creation of the french translation file 2015-09-14 14:42:37 +02:00
Maikel Linke
10cd654ff5 CI Handling git tags
Buildkite is running tags like branches. This caused `git branch`
commands to fail. The function got extended to handle tags as well.
Ideally, Buildkite will offer an option not to rebuild tags.
2015-09-11 15:41:44 +10:00
Maikel Linke
51064f31a3 Merge remote-tracking branch 'origin/master' into uk-variable-weights-improvements 2015-09-10 16:05:28 +10:00
Maikel Linke
e25805aa78 Restoring all changes of the last combined branch
This reverts commit 1e55e8a907.
2015-09-10 15:03:13 +10:00
Maikel Linke
1e55e8a907 Reverting all changes of the last combined branch
The production server hangs on certain requests. To rule out a code bug,
we revert to the last deployed version.
2015-09-10 12:50:40 +10:00
Maikel Linke
47d239ee3a fix for intermittent capybara click failure
This fix might have to be applied at more places. We will see what CI
says...
2015-09-09 17:08:42 +10:00
Maikel Linke
2e2e767564 always displaying group_buy_unit_size 2015-09-09 12:22:28 +10:00
Myriam
3e53decd85 Delete fr.yml 2015-09-04 15:25:53 +02:00
Myriam
4f0e75893e Create fr.yml 2015-09-04 15:22:19 +02:00
Maikel Linke
f0709d5e46 Merge branch 'show-only-visible-shops' into combined/shopfront_group-buy_customer-contact 2015-09-04 21:49:12 +10:00
Maikel Linke
e8ce9feb52 Merge branch 'customers-link' into combined/shopfront_group-buy_customer-contact 2015-09-04 21:48:58 +10:00
Maikel Linke
a3074fa51e Merge branch 'customer-contact-in-order-email' into combined/shopfront_group-buy_customer-contact 2015-09-04 21:47:35 +10:00
Maikel Linke
c1cbf9a35c Merge branch 'group-by-unit-size-display' into combined/shopfront_group-buy_customer-contact 2015-09-04 21:47:22 +10:00
Maikel Linke
8dffb772dc Merge branch 'shopfron-validation' into combined/shopfront_group-buy_customer-contact 2015-09-04 21:47:08 +10:00
Maikel Linke
60b2596774 disable max quantity unless min quantity is set 2015-09-04 16:56:51 +10:00
Maikel Linke
6a2af09006 rounding decimal quantities in shopfront 2015-09-04 16:15:02 +10:00
Maikel Linke
d9b1215a01 Update clicking checkout in spec 2015-09-04 10:54:50 +10:00
sigmundpetersen
e61abb92d2 Create no.yml 2015-09-03 12:16:58 +02:00
Maikel Linke
0895bd8647 Non-integer values cannot be entered into shop front quantities 2015-09-03 17:42:26 +10:00
Maikel Linke
2e3ff8f5c6 doubling cart buttons 2015-09-03 15:52:54 +10:00
Maikel Linke
93f6667c4b Update products group by spec 2015-09-03 15:01:28 +10:00
Maikel Linke
23355d1a25 include order email and phone number in email for shop 2015-09-03 14:46:08 +10:00
Maikel Linke
0fdd000589 Showing Bulk Unit Size in BulkCoopReport
The group_buy_unit_size field is now shown even if 'group buy' is not
enabled. And "Group By Unit Size" is now displayed as "Bulk Unit Size".
2015-09-03 12:26:40 +10:00
Maikel Linke
57caeb64c5 Remove unused product form partial 2015-09-03 12:24:57 +10:00
Maikel Linke
832f47d6b0 fix i18n typo 2015-09-02 16:58:04 +10:00
Continuous Integration
d3e66bcfa5 Auto-merge from CI [skip ci] 2015-09-02 14:44:05 +10:00
Maikel Linke
415dac3ae3 Updating spec for new Login label 2015-08-28 21:12:56 +10:00
Maikel Linke
8b6f5b4a99 Updating spec for new Login label 2015-08-28 18:37:24 +10:00
Continuous Integration
06010bd8ad Auto-merge from CI [skip ci] 2015-08-28 17:04:53 +10:00
Maikel Linke
85c99102dd i18n: Replacing all language strings in app/view/
Languages strings were moved to config/locale/en.yml. All views contain
according calls to t() now.
2015-08-28 16:59:23 +10:00
Maikel Linke
1a96ef88bc Hiding invisible hubs in producer modal 2015-08-28 10:49:36 +10:00
Maikel Linke
d682a29a65 Admin menu contains link to /admin/customers 2015-08-28 10:31:53 +10:00
Maikel Linke
ced254919a Updating JS spec 2015-08-27 14:54:46 +10:00
Maikel Linke
64834dd50a Fixing display of cloned products
The producer and the unit is displayed again.
2015-08-27 13:05:09 +10:00
Maikel Linke
5d34b711e9 Handling undefined customer tags 2015-08-26 15:01:20 +10:00
Maikel Linke
4f7f2e2035 Displaying customer tags 2015-08-26 10:14:03 +10:00
Continuous Integration
d595e1558a Auto-merge from CI [skip ci] 2015-08-26 10:03:13 +10:00
Maikel Linke
5ccae9cfab Redirecting /products/:id to / 2015-08-21 15:18:31 +10:00
Maikel Linke
adc20e9e4e Handling tax categories without tax rates 2015-08-21 15:16:00 +10:00
Continuous Integration
03627e2ef2 Auto-merge from CI [skip ci] 2015-08-21 13:41:02 +10:00
Rohan Mitchell
3e5028b6b9 Revise lettuceshare report - combine grower and cert cols, add column headings 2015-08-16 11:06:52 +08:00
Rohan Mitchell
e843beaf18 Remove enterprise address from order confirmation and mailer, since in these contexts the pickup location will be specified elsewhere. #636 2015-08-07 14:19:48 +10:00
Rohan Mitchell
170799f65f Add permission for hub enterprise users to use xero report #628 2015-08-07 13:37:37 +10:00
Rohan Mitchell
9e1788a6b0 Apply migrations to db/schema.rb 2015-08-07 12:03:43 +10:00
Rohan Mitchell
719ddea789 Merge branch 'variable-weights-improvements' of https://github.com/lin-d-hop/openfoodnetwork into lin-d-hop-variable-weights-improvements 2015-08-07 11:10:07 +10:00
Rohan Mitchell
3eea002a0c Put rspec-retry on flaky specs 2015-08-07 11:06:16 +10:00
Rohan Mitchell
6f4dc6943e Add first cut of LettuceShare report 2015-08-07 10:37:59 +10:00
Rohan Mitchell
e75b595b97 Tidy syntax 2015-08-07 10:37:59 +10:00
Rohan Mitchell
af04c61528 Add rspec-retry for intermittently failing spec 2015-08-05 13:35:53 +10:00
Continuous Integration
14900655df Auto-merge from CI [skip ci] 2015-08-05 12:18:31 +10:00
Rohan Mitchell
be66769999 SELECT DISTINCT results in inconsistent #count value. Work around this with to_a. 2015-08-05 11:05:29 +10:00
Lynne Davis
8639109372 Variable weights improvements additions 2015-08-04 20:13:28 +01:00
Rohan Mitchell
eca25a2564 Make coordinator fees apply to all variants, not just those with exchange fees 2015-07-31 16:57:47 +10:00
Rohan Mitchell
012b0517a5 Fetch order cycle variants in SQL 2015-07-31 16:57:47 +10:00
Rohan Mitchell
faa1d0d1c5 When cart clear is declined, revert order cycle selection change 2015-07-31 16:56:08 +10:00
Rohan Mitchell
b97bbae00e Remove old selenium-related test helper, remove unused param on handle_js_confirm 2015-07-31 16:56:08 +10:00
Rohan Mitchell
679531fe2a Prompt for clear cart when order cycle changes 2015-07-31 16:56:08 +10:00
Rohan Mitchell
eb6dcba396 Clear localstorage in Cart.clear() 2015-07-31 16:56:08 +10:00
Rohan Mitchell
9c9051498b Rename ofnEmptiesCart to ofnChangeHub 2015-07-31 16:56:08 +10:00
Rohan Mitchell
5688cfd1dd WIP: Rename ofnEmptiesCart to ofnChangeHub 2015-07-31 16:56:08 +10:00
Rohan Mitchell
fc409c97bf Decouple ofn-empties-cart directive from hub-choice navigation 2015-07-31 16:56:08 +10:00
Rohan Mitchell
09b4b3e659 When order cycle is changed, clear the cart 2015-07-31 16:56:08 +10:00
Rohan Mitchell
bf2bd403a4 Clear variants when order cycle changed, not when products are initially loaded 2015-07-31 16:56:08 +10:00
Rohan Mitchell
012a210782 Add method to clear cart 2015-07-31 16:56:08 +10:00
Rohan Mitchell
7caebb11e2 Clear variants registry before reloading products - fixes fees not updating when changing order cycle 2015-07-31 16:56:08 +10:00
Rohan Mitchell
ee65452de3 Add method to clear variants registry 2015-07-31 16:56:08 +10:00
Rohan Mitchell
3a9b13b55e Reorder methods 2015-07-31 16:56:07 +10:00
Rohan Mitchell
734b2fc766 Merge branch 'master' into redesign-cms 2015-07-31 14:59:33 +10:00
Rohan Mitchell
5559231245 Fix date spec error 2015-07-31 14:59:05 +10:00
Rohan Mitchell
3345f54e0a Merge branch 'master' into redesign-cms 2015-07-31 14:55:01 +10:00
Rohan Mitchell
ec908fce92 Make TOS URL configurable 2015-07-31 14:51:17 +10:00
Rohan Mitchell
d8f4061030 Tidy link 2015-07-30 12:09:20 +10:00
Rohan Mitchell
759c53ec34 Add note about provisioning to README 2015-07-30 11:45:50 +10:00
Continuous Integration
8d041f5e7a Auto-merge from CI [skip ci] 2015-07-29 12:03:03 +10:00
Continuous Integration
32d3d0f912 Auto-merge from CI [skip ci] 2015-07-28 14:03:29 +10:00
Rohan Mitchell
917c17af59 Clarify quantities used for calculations, show excess available via max_quantity 2015-07-24 18:31:49 +10:00
Rohan Mitchell
21a9681205 Do not show negative remainder when there are no purchases 2015-07-24 17:42:23 +10:00
Rohan Mitchell
54fd298e3a Reinstate variant full name column - needed to identify variants differing only by description 2015-07-24 17:42:00 +10:00
Rohan Mitchell
9ffc97f8b6 Fix controller spec for extraction of report controller logic 2015-07-24 14:10:04 +10:00
Rohan Mitchell
211171aed4 Rename column for clarity 2015-07-24 12:49:43 +10:00
Rohan Mitchell
f43eacb75d Revert "Do not show non-group buy products on bulk coop reports"
This reverts commit f5c2386296.
2015-07-24 12:40:50 +10:00
Rohan Mitchell
fffc35d9ed Revert "Add a blank row after summary row in all reports"
This reverts commit b0dd765181.
2015-07-24 12:40:42 +10:00
Rohan Mitchell
17fb4a7247 DRY by extracting calculation to method 2015-07-24 07:17:20 +10:00
Rohan Mitchell
3abce54115 Split variant name into number and unit columns 2015-07-24 07:07:49 +10:00
Rohan Mitchell
28de125b59 Bulk coop allocation report uses unit value rather than variant weight 2015-07-24 07:00:49 +10:00
Rohan Mitchell
4d71a56e38 Update available/unallocated calculations 2015-07-23 16:40:50 +10:00
Rohan Mitchell
ae968cd0eb Simple refactoring of original total_allocated code 2015-07-23 16:21:37 +10:00
Rohan Mitchell
1a89c3caf4 Translate bulk coop allocation report to reports DSL 2015-07-23 15:07:39 +10:00
Rohan Mitchell
bdd792a3ea Extract helpers to new superclass 2015-07-23 15:07:15 +10:00
Rohan Mitchell
f5c2386296 Do not show non-group buy products on bulk coop reports 2015-07-23 14:17:00 +10:00
Rohan Mitchell
8665b35f1d Units required shows amount to fulfil order, not complete units required. Remainder works in opposite direction to suit. 2015-07-23 14:16:40 +10:00
Rohan Mitchell
d68cfbff18 Use scaled value for group_buy_unit_size 2015-07-23 14:06:04 +10:00
Rohan Mitchell
e8f7ab5425 Do bulk coop report calculations using unit values rather than variant weight field 2015-07-23 14:06:04 +10:00
Rohan Mitchell
b0dd765181 Add a blank row after summary row in all reports 2015-07-23 14:05:59 +10:00
Rohan Mitchell
8ee467d2b9 Split variant name into number and unit columns 2015-07-23 12:22:30 +10:00
Rohan Mitchell
5874ecbbef Small tweaks 2015-07-23 12:02:31 +10:00
Rohan Mitchell
dcae584673 Extract bulk coop supplier report into Report DSL 2015-07-23 12:02:24 +10:00
Rohan Mitchell
a90666467a Add helper support to Reports DSL 2015-07-23 11:45:19 +10:00
Rohan Mitchell
cc9d0defca Use class attributes instead of class variables to avoid leakage between subclasses 2015-07-23 11:04:36 +10:00
Rohan Mitchell
142e1d6d9a Report outputs rules as array for use by OrderGrouper 2015-07-23 10:46:20 +10:00
Rohan Mitchell
1d39fb4438 Report rules can define a summary row 2015-07-23 10:37:47 +10:00
Rohan Mitchell
07eb857a8d Report can define nested rules 2015-07-23 10:24:10 +10:00
Rohan Mitchell
66f64fc413 Report can define basic rules 2015-07-23 10:08:38 +10:00
Rohan Mitchell
c7a1ca29f4 Report can define and retrieve columns 2015-07-23 09:52:59 +10:00
Rohan Mitchell
0a5e8fe629 Report class can define and retrieve header 2015-07-23 09:36:09 +10:00
Rohan Mitchell
61a39ea82f Cherry-pick 00927f7: Refactoring to move bulk out of reports_controller_decorator 2015-07-22 15:25:12 +10:00
Rohan Mitchell
eabf792238 Amend changes to readme 2015-07-22 13:25:55 +10:00
Myriam
c15e281286 Add command cd openfoodnetwork
Just added the command to go into the openfoodnetwork folder before bundle install
2015-07-19 12:39:51 +02:00
Myriam
5f0766cb75 When installing the gems we had only 1.9.2, there were an imprecision with >=1.9.3 or 1.9.x 2015-07-19 12:37:23 +02:00
Myriam
3a0c5bf0c3 I changed the "Get it" link as the git@ one was reserved to people with access rights 2015-07-19 12:09:20 +02:00
Rohan Mitchell
61435b2dea Add brand guide colours next to definition 2015-07-17 17:05:44 +10:00
Rohan Mitchell
b6892c82f1 Rename australia-orange sass var to country-agnostic brand-colour 2015-07-17 16:27:17 +10:00
Rohan Mitchell
5fd3dc1d28 Customise footer logo 2015-07-17 16:24:07 +10:00
Rohan Mitchell
bb3a4170f5 Add dimensions to image upload 2015-07-17 16:06:50 +10:00
Rohan Mitchell
74f90dada3 Allow overriding mobile logo (raster and SVG) and home hero image 2015-07-17 16:06:50 +10:00
Rohan Mitchell
e4a4cdd915 Rewrite alias_method_chain to use super. Ahhhhh :) 2015-07-17 16:06:50 +10:00
Rohan Mitchell
66b4eb4c5d Move Spree::Preferences::Configuration patches into superclass FileConfiguration 2015-07-17 16:06:50 +10:00
Rohan Mitchell
1d67e3b2b8 Fix image update, display logo on frontend 2015-07-17 16:06:50 +10:00
Rohan Mitchell
0e67a116b6 Admin can upload logo for ContentConfig 2015-07-17 16:06:49 +10:00
Rohan Mitchell
1234b35199 Add file handling to Spree::Preferences::Configuration 2015-07-17 16:06:49 +10:00
Rohan Mitchell
1b17a7fb35 Add logo field to ContentConfig 2015-07-17 16:06:49 +10:00
Rohan Mitchell
4887871474 Remove SVG TODOs - we'll ask admins to upload double-sized images for retina instead 2015-07-17 16:06:49 +10:00
Rohan Mitchell
372b17703a Remove unused content fields and partial 2015-07-17 16:06:49 +10:00
Rohan Mitchell
5de9a5eb54 Add config setting to enable/disable stats on home page 2015-07-17 16:06:49 +10:00
Rohan Mitchell
1f72e4001c Use site name config for hero title 2015-07-17 16:06:49 +10:00
Rohan Mitchell
bd83dde89d Content manage group signup page 2015-07-17 16:06:49 +10:00
Rohan Mitchell
a490d9696b Content manage hub signup page 2015-07-17 16:06:49 +10:00
Rohan Mitchell
d353906bb8 Content manage producer signup page 2015-07-17 16:06:49 +10:00
Continuous Integration
858a613ba2 Auto-merge from CI [skip ci] 2015-07-17 11:48:16 +10:00
Rohan Mitchell
2ef0196200 Merge branch 'add-to-cart-robustness' into combined/vo-on-demand-stock-control_add-to-cart-robustness 2015-07-16 10:06:34 +10:00
Rohan Mitchell
f3ae812f2b Update cart when max_quantity value changes, not just quantity 2015-07-16 10:05:19 +10:00
Rohan Mitchell
904a3a5bd4 When add to cart fails, retry every 3 seconds, with no limit of the number of retries 2015-07-16 10:05:19 +10:00
Rohan Mitchell
de7f3a9e5c When an on-demand variant has overridden stock levels, make it not on-demand 2015-07-16 10:05:07 +10:00
Rohan Mitchell
7424e93133 Merge branch 'proximity-search' 2015-07-15 17:31:22 +10:00
Lynne Davis
f21f57a42c Additions for packing reports, sans refactoring 2015-07-15 14:44:49 +10:00
Lynne Davis
dc95167f15 Adding bits missed from the last commit.
Conflicts:
	app/controllers/spree/admin/reports_controller_decorator.rb
2015-07-15 14:44:49 +10:00
Lynne Davis
c168dec14b Adding packing reports as required by the UK contingent 2015-07-15 14:44:49 +10:00
Rohan Mitchell
28b8e0b0c8 Update distance matches when filter settings change 2015-07-10 17:45:17 +10:00
Rohan Mitchell
0ab75fe2ea Take the first name match from the post-filter results to avoid matching off a result the user can't see 2015-07-10 17:45:17 +10:00
Rohan Mitchell
669c9911fe Fix profile display 2015-07-10 17:45:17 +10:00
Rohan Mitchell
6e6d2566d9 Do not show distance when zero 2015-07-10 17:45:16 +10:00
Rohan Mitchell
6816df5f72 Do not show 'Closest to...' heading when no query entered 2015-07-10 17:45:16 +10:00
Rohan Mitchell
5b93ac2ae1 Remove unneeded injections, consistent spacing 2015-07-10 17:45:16 +10:00
Rohan Mitchell
dcf98ee29f Fix enterprises no results for producers 2015-07-10 17:45:16 +10:00
Rohan Mitchell
7d340d5084 Update taxon search to only display taxons from enterprises on the page 2015-07-10 17:45:16 +10:00
Rohan Mitchell
0eb6d9aaed Disable animate-repeat on shops listing entirely - previous fix was not 100% successful 2015-07-10 17:45:16 +10:00
Rohan Mitchell
d8dfb5b5ee Move most filters back out into view - they now respond to filter preference changes 2015-07-10 17:45:16 +10:00
Rohan Mitchell
07e6a204f3 Do not bindonce ng-repeat, remove translateZ(0) optimisation - address dangling DOM nodes after ng-repeat finishes.
https://github.com/angular/angular.js/issues/4490
2015-07-10 17:45:16 +10:00
Rohan Mitchell
06c5ffb427 Wrap geocode callback in ., fixing inconsistent updates 2015-07-10 17:45:16 +10:00
Rohan Mitchell
673635fdcb Show no results message at correct times 2015-07-10 17:45:16 +10:00
Rohan Mitchell
64bc7404dc Region-bias geocoder results 2015-07-10 17:45:16 +10:00
Rohan Mitchell
651afc34cb Notify enterprise change by broadcast 2015-07-10 17:45:16 +10:00
Rohan Mitchell
e5c42c0e54 Tidyup 2015-07-10 17:45:16 +10:00
Rohan Mitchell
5f8826533d Limit distance matches to those within 50 km 2015-07-10 17:45:16 +10:00
Rohan Mitchell
f154a02c86 Add filter for enterprises within a radius 2015-07-10 17:45:16 +10:00
Rohan Mitchell
46792a4111 Style results tables 2015-07-10 17:45:16 +10:00
Rohan Mitchell
5b5c56064e Hide distance matches when there are name matches. Show with a link. 2015-07-10 17:45:16 +10:00
Rohan Mitchell
794c9558bb Show name matches only when at least one is present. Show accurate closest-to target. 2015-07-10 17:45:15 +10:00
Rohan Mitchell
eba0a12d29 Extract filtering into controller 2015-07-10 17:45:15 +10:00
Rohan Mitchell
7fd4815904 Split results into name matches and distance matches 2015-07-10 17:45:15 +10:00
Rohan Mitchell
97c9504344 Extract hubs table into partial 2015-07-10 17:45:15 +10:00
Rohan Mitchell
7f2508eeaa When a name match is found, calculate distances from that enterprise, rather than from the geocoded lookup 2015-07-10 17:45:15 +10:00
Rohan Mitchell
6e3ca3f90f Make Geo.distanceBetween take either a LatLng or a locatable at either parameter 2015-07-10 17:45:15 +10:00
Rohan Mitchell
744beaa26a Perform shops search by proximity instead of plain string match 2015-07-10 17:45:15 +10:00
Rohan Mitchell
d0d9e9e367 Flag enterprises whose name matches a query 2015-07-10 17:45:15 +10:00
Rohan Mitchell
befcc37456 Fix bug in distanceBetween, update docs, deal with null queries 2015-07-10 17:45:15 +10:00
Rohan Mitchell
9fb7c47c73 Enterprises can calculate their distances from a location via geocode lookup 2015-07-10 17:45:15 +10:00
Rohan Mitchell
80bb6c36e3 Rename file 2015-07-10 17:45:15 +10:00
Rohan Mitchell
a61e96c316 Generalise Geocoder service to Geo, add distanceBetween method 2015-07-10 17:45:15 +10:00
Rohan Mitchell
ddf1bb90ea Add geocoder service 2015-07-10 17:45:15 +10:00
Rohan Mitchell
a509747ba7 Do not show double-ups of places to shop 2015-07-10 15:51:57 +10:00
Rohan Mitchell
3527ae6ea2 Update comment 2015-07-10 15:51:57 +10:00
Rohan Mitchell
e679f1175c Add shop-for-products-at to map producer modals 2015-07-10 15:51:57 +10:00
Rohan Mitchell
197c99349d Add error checking to client-side permalink service 2015-07-10 09:42:09 +10:00
Rohan Mitchell
73b90dba10 Shift legacy redirect further down routes to avoid stomping /enterprises/check_permalink 2015-07-10 09:42:09 +10:00
Rohan Mitchell
4cc8eb90fc Refactor code for brevity 2015-07-10 09:42:09 +10:00
Rohan Mitchell
8deb4ef9d4 When encountering StaleObjectError when checking out, retry 2015-07-10 09:42:09 +10:00
Rohan Mitchell
d0b7a0795d Fix 500 when bulk updating order cycles with no data 2015-07-10 09:42:09 +10:00
Rohan Mitchell
d67b34c2bd Remove deprecated about_us page and add redirect 2015-07-10 09:42:09 +10:00
Rohan Mitchell
3f8235593a When enterprise is deleted, delete relationships 2015-07-10 09:42:09 +10:00
Rohan Mitchell
c5c3051f98 Re-enable future spec 2015-07-10 09:42:09 +10:00
Rohan Mitchell
4f2389e257 Remove legacy enterprises views - index, suppliers, distributors, show 2015-07-10 09:42:09 +10:00
Rohan Mitchell
fc4cd517fd Redirect legacy enterprise path to home #571 2015-07-10 09:42:09 +10:00
Rohan Mitchell
361f7e3432 Remove double-output on push to production. Add script to archive old branches. 2015-07-02 09:39:49 +10:00
Rohan Mitchell
213242627e Merge branch 'master' into redesign-phase-2
Conflicts:
	app/views/home/_hubs.html.haml
2015-07-01 15:44:36 +10:00
Rohan Mitchell
960e4d3015 Scale logo down when display is very short (ie. iPhone 4) 2015-07-01 15:38:50 +10:00
Continuous Integration
c3097cac70 Auto-merge from CI [skip ci] 2015-07-01 10:57:01 +10:00
Rohan Mitchell
b991f6c228 Add angular-slideables to js test include 2015-06-26 16:07:23 +10:00
Rohan Mitchell
918889a572 Make subject more friendly for groups enquiry email 2015-06-26 15:54:26 +10:00
Rohan Mitchell
7e685b646f Fine-tune header sizes on home page and cutover point for page_alert responsiveness 2015-06-26 15:54:26 +10:00
Rohan Mitchell
eef302635b Fix alert overflow on mobile 2015-06-26 15:54:26 +10:00
Rohan Mitchell
6105d008df Show CTA above the fold on iPhone 5 2015-06-26 15:54:26 +10:00
Rohan Mitchell
dd04afe8f8 Make alert box more legible 2015-06-26 15:54:25 +10:00
Rohan Mitchell
5a9101e303 Display HTML special chars correctly in title 2015-06-26 15:54:25 +10:00
Rohan Mitchell
c97ed026d0 Make room in menu for shopping@ text 2015-06-26 15:54:25 +10:00
Rohan Mitchell
ce46cb0956 Add subject to group enquiries 2015-06-26 15:54:25 +10:00
Rohan Mitchell
9f8fa575b3 Scroll past header on shops page if user is logged in 2015-06-26 15:54:25 +10:00
Rohan Mitchell
4da367a94b Put OFN logo in top bar of mobile site 2015-06-26 15:54:25 +10:00
Rohan Mitchell
6197dfe403 Make brand story animate slide down/up 2015-06-26 15:54:25 +10:00
Rohan Mitchell
1363daae3c When fetching ofn commit, if it is not found, return a sentinal value to avoid a wayward git push 2015-06-26 11:22:19 +10:00
Rohan Mitchell
d9f4a92648 Do not use with_products_require_tax_category in around filters - Spree::Config has caching which isn't shared between contexts 2015-06-24 14:52:17 +10:00
Rohan Mitchell
bc11140a40 Make config reset for all tests more robust. Add cache isolation for parallel specs. 2015-06-24 14:02:45 +10:00
Rohan Mitchell
7a36e92592 Merge branch 'unique-enterprise-names' into combined/unique-enterprise-names_parallel-fuubars_rob-github-fixes_optimise-shopfront 2015-06-24 10:09:35 +10:00
Rohan Mitchell
2d79177bb5 When a registering an enterprise with a non-unique name, display an error message. 2015-06-24 10:08:34 +10:00
Rohan Mitchell
f51a9679f2 Merge branch 'optimise-shopfront' into combined/unique-enterprise-names_parallel-fuubars_rob-github-fixes 2015-06-19 11:34:41 +10:00
Rohan Mitchell
173f4c0f03 Merge branch 'rob-github-fixes' into combined/unique-enterprise-names_parallel-fuubars_rob-github-fixes 2015-06-19 11:32:55 +10:00
Rohan Mitchell
116565fa0f Merge branch 'parallel-fuubars' into combined/unique-enterprise-names_parallel-fuubars_rob-github-fixes 2015-06-19 11:32:44 +10:00
Rohan Mitchell
52887dc699 Merge branch 'unique-enterprise-names' into combined/unique-enterprise-names_parallel-fuubars_rob-github-fixes 2015-06-19 11:32:25 +10:00
Rohan Mitchell
89a571d497 Fix spec coupled to variant overrides 2015-06-18 16:05:35 +10:00
Rohan Mitchell
ff4ee16f06 Fix currency issues, changed logo path 2015-06-18 15:38:46 +10:00
Rohan Mitchell
ae3a69c1af Put in debugging for failing push-to-prod step (sigh) 2015-06-18 15:29:05 +10:00
Continuous Integration
6d423ac990 Auto-merge from CI [skip ci] 2015-06-18 15:20:12 +10:00
Rohan Mitchell
aa0a031fa0 Fetch indexed variant overrides in one go 2015-06-18 15:03:24 +10:00
Rohan Mitchell
dd2f6d6430 Extract VariantOverride fetching into ScopeVariantToHub#scope 2015-06-18 14:45:40 +10:00
Rohan Mitchell
ce0de6e1dc Fix push to production - needs includes for get_ofn_commit 2015-06-18 14:25:48 +10:00
Rohan Mitchell
7cc2bc4fde Perform variant override scoping on product/variant by external class. Centralise this so we can load everything in one go. 2015-06-18 13:11:11 +10:00
Rohan Mitchell
6ed9a2620c Use indexed_fees_for for product price 2015-06-18 13:07:52 +10:00
Rohan Mitchell
860183e675 Do not double-display deployment output 2015-06-18 12:41:47 +10:00
Rohan Mitchell
1cd9ee399f Cloak shops page 2015-06-18 10:19:18 +10:00
Rohan Mitchell
b5d841562d Getting OFN commit should retrieve from meta-data 2015-06-18 10:02:15 +10:00
Rohan Mitchell
9f883db25b Really show deploy output in real time 2015-06-18 09:57:21 +10:00
Rohan Mitchell
389ac07bd7 Store commit at start of build process and use it throughout 2015-06-17 16:25:34 +10:00
Rohan Mitchell
4da69f78cb Use fuubar with parallel specs for advance notice of failures 2015-06-17 15:22:08 +10:00
Rohan Mitchell
c5526c78d9 Make enterprise name unique 2015-06-17 15:01:46 +10:00
Rohan Mitchell
470f10a828 Merge branch 'master' into rob-github-fixes 2015-06-16 19:00:54 +10:00
Rohan Mitchell
bf953f8987 Undo last change, it broke asset precompilation. Rename style.css to scss for inclusion and force recompilation of all assets. 2015-06-16 18:25:44 +10:00
Rohan Mitchell
0ade5ee3a8 Import style.css file also (not included by default by @import) 2015-06-16 18:00:35 +10:00
Rohan Mitchell
0dbecce65d Optimise relatives including self - minor improvement 2015-06-16 17:43:13 +10:00
Rohan Mitchell
faee88c404 Merge branch 'master' into redesign 2015-06-16 16:57:09 +10:00
Rohan Mitchell
bf2a7f12e0 Fix interaction between alert and mobile menu. A bit hack-ish, needs some more love. 2015-06-16 16:28:45 +10:00
Rohan Mitchell
02d68c662b Add titles to all darkswarm pages 2015-06-16 15:31:35 +10:00
Rohan Mitchell
301a3ac090 Rename Blog link to News for consistency with global site 2015-06-16 14:53:54 +10:00
Rohan Mitchell
fd41003fb7 Change all global links to www 2015-06-16 14:47:40 +10:00
Continuous Integration
c76021462c Auto-merge from CI [skip ci] 2015-06-16 14:12:16 +10:00
Rohan Mitchell
846f4bb4b1 Tweak menu responsiveness: Fix items covering country name, fix ul.right dropping down to next line 2015-06-16 13:02:43 +10:00
Rohan Mitchell
b540f645c3 Split CSS to overcome IE9's 4096 rule limit 2015-06-16 11:57:50 +10:00
Rohan Mitchell
d908701b59 Merge branch 'master' into folklabs-producer-emails
Conflicts:
	Gemfile
2015-06-11 17:02:34 +10:00
Rohan Mitchell
5ae88dbd6c Fix content overlapping alert 2015-06-11 14:29:49 +10:00
Rohan Mitchell
5175fe9a03 Make stats more accurate by excluding invisible, inactivated enterprises and incomplete orders 2015-06-11 12:53:23 +10:00
Rohan Mitchell
662330b222 Alert appears at top of page. It slides in on page load and slides out on close. 2015-06-11 12:10:50 +10:00
Rohan Mitchell
f4e0baa56a Basic click-to-close for sell-food alert 2015-06-10 19:03:40 +10:00
Rohan Mitchell
686a54c121 Make 'selling food' alert visible, basic styling 2015-06-10 19:03:25 +10:00
Rohan Mitchell
b37f21dce1 Remove load_active_distributors call missed by merge 2015-06-10 18:38:32 +10:00
Rohan Mitchell
610a4c03fe Merge branch 'master' into redesign
Conflicts:
	app/controllers/home_controller.rb
	app/views/producers/index.html.haml
	app/views/shared/menu/_mobile_menu.html.haml
	app/views/shop/products/_form.html.haml
	config/routes.rb
	spec/controllers/shops_controller_spec.rb
2015-06-10 18:27:50 +10:00
Rohan Mitchell
fee854a3f8 Merge branch 'master' into redesign 2015-05-29 17:37:18 +10:00
Rohan Mitchell
e3085d9224 Merge branch 'producer-emails' of https://github.com/folklabs/openfoodnetwork into folklabs-producer-emails 2015-05-29 17:36:56 +10:00
Rohan Mitchell
3dbc2e0382 Merge branch 'master' into folklabs-producer-emails 2015-05-29 17:36:11 +10:00
Rohan Mitchell
6f513fee77 Merge branch 'master' into redesign 2015-05-29 15:20:21 +10:00
Rohan Mitchell
7f73a4cc9b Fix column/row mixup 2015-05-29 15:19:35 +10:00
Rohan Mitchell
c75e14b383 Small edits 2015-05-29 09:55:40 +10:00
Rohan Mitchell
32b140ac88 Revert "Update group signup header copy"
This reverts commit 0a8bfdb872.
2015-05-29 09:54:09 +10:00
Rohan Mitchell
8a79741c0e Update pricing tables and detail formatting 2015-05-28 14:58:46 +10:00
Continuous Integration
1d08ae89da Auto-merge from CI [skip ci] 2015-05-28 14:31:25 +10:00
Rohan Mitchell
1cf62e01e9 Edit case study text 2015-05-28 14:27:36 +10:00
Rohan Mitchell
0a8bfdb872 Update group signup header copy 2015-05-28 14:08:58 +10:00
Rohan Mitchell
92d67327dd Add groups case studies 2015-05-28 14:07:17 +10:00
Rohan Mitchell
acc976f44a Add hub case studies 2015-05-28 14:00:04 +10:00
Rohan Mitchell
31caf278d7 Add producer case studies 2015-05-28 12:39:40 +10:00
Rohan Mitchell
e81a955827 Add detail to hubs and producers signup pages 2015-05-28 12:21:25 +10:00
Rohan Mitchell
eb0e8dcd9c Copy changes to home page and link fix in footer 2015-05-28 12:21:08 +10:00
Rohan Mitchell
c8f14f1ee9 Fetch fonts through https, fixes mixed-security error that prevents fonts loading 2015-05-26 10:29:20 +10:00
Paul Mackay
baaa192967 #275: Code cleanup. 2015-05-24 10:44:39 +01:00
Paul Mackay
2f05fc3824 #275: Insert receival time and instructions into email. 2015-05-24 10:38:49 +01:00
Rohan Mitchell
7da403808c Style mobile menu [skip ci] 2015-05-13 16:56:49 +10:00
Rohan Mitchell
ec1290d687 Style home page for mobile 2015-05-13 15:59:36 +10:00
Rohan Mitchell
7946340dad Allow more phantomjs timeout to avoid the first-spec-timeout issue 2015-05-13 15:34:27 +10:00
Rohan Mitchell
5e5628d0c3 Fix shops path for spec 2015-05-13 14:31:40 +10:00
Rohan Mitchell
0ac7dbf23b Update spec references to removed file logo.jpg 2015-05-13 14:27:43 +10:00
Rohan Mitchell
14fdc7d3ae Move home spec to shops spec 2015-05-13 14:27:18 +10:00
Rohan Mitchell
238adc5354 Do not couple editable content to frequently-changing home page format 2015-05-13 14:18:00 +10:00
Rohan Mitchell
75e0c1d99e Conclusively remove cta1 2015-05-13 14:13:10 +10:00
Rohan Mitchell
ff44636040 Home controller functionality moved to shops controller 2015-05-13 14:10:21 +10:00
Rohan Mitchell
76e41e6c1e Basic consistency styling for groups signup page [skip ci] 2015-05-13 12:51:34 +10:00
Rohan Mitchell
92805b5442 Style producers signup page CTA pane 2015-05-13 12:46:11 +10:00
Rohan Mitchell
cbe715087c Make producers signup table same colours as hubs table 2015-05-13 12:37:07 +10:00
Rohan Mitchell
1f75974e1c Unify case studies styling 2015-05-13 12:26:37 +10:00
Rohan Mitchell
71f3a450c6 Move signup-related styles from home_panes into signup.css.sass 2015-05-13 12:03:46 +10:00
Rohan Mitchell
fb400df662 Update basic copy and layout on producers signup page 2015-05-13 11:45:25 +10:00
Rohan Mitchell
eac22df200 Merge branch 'master' into redesign
Conflicts:
	app/assets/javascripts/templates/product_modal.html.haml
2015-05-13 09:53:20 +10:00
Rohan Mitchell
845509b0c0 Style shops signup page 2015-05-12 13:51:31 +10:00
Rohan Mitchell
5a43c80231 Convert tabs to spaces 2015-05-12 12:26:35 +10:00
Rohan Mitchell
4e0478bbe9 Update copy and spacing on hubs page 2015-05-12 11:59:51 +10:00
Rohan Mitchell
d261ea617a A little more space between header and button 2015-05-12 11:50:40 +10:00
Rohan Mitchell
f416503bde Tighten up footer lock 2015-05-12 11:49:45 +10:00
Rohan Mitchell
0184925ac8 Switch out footer logo for logo with no text 2015-05-12 11:41:49 +10:00
Rohan Mitchell
ebc452b1e2 Style home page stats pane 2015-05-12 11:33:07 +10:00
Rohan Mitchell
7b36f9dbf8 Add friendly icons for home systems pane 2015-05-12 10:45:42 +10:00
Rohan Mitchell
b2f687cd11 Style home panes (all except stats) 2015-05-12 10:21:52 +10:00
Rohan Mitchell
5a63353004 Extract transparent button style, use on home tagline and CTA2 2015-05-12 10:14:47 +10:00
Rohan Mitchell
7c37b4783a Avoid adding top padding on mobile menu 2015-05-12 10:10:52 +10:00
Rohan Mitchell
8178076dd2 Use more subtle background for tile image 2015-05-12 10:09:14 +10:00
Rohan Mitchell
25aede1bdf Brighten landscape home hero image 2015-05-12 10:08:39 +10:00
Paul Mackay
955f41633a Merge remote-tracking branch 'refs/remotes/origin/master' into producer-emails 2015-05-11 08:36:09 +01:00
Rohan Mitchell
b2d8d9fdfd Make nav menu centered, logo a little larger 2015-05-11 17:32:02 +10:00
Rohan Mitchell
fec375fbea Decrease padding on brand story 2015-05-11 16:52:39 +10:00
Rohan Mitchell
5498d03660 Add zoomed-in tile 2015-05-11 16:52:01 +10:00
Rohan Mitchell
82334036d1 Orange-styled tile 2015-05-11 16:43:53 +10:00
Rohan Mitchell
fa6b0fac3f Add landscape hero image 2015-05-11 16:36:26 +10:00
Rohan Mitchell
f99333dbd5 Remove trailing whitespace 2015-05-11 16:35:50 +10:00
Rohan Mitchell
9ee6ef06da Return logo to smaller size
This reverts commit 460d0c9907.
2015-05-11 16:14:30 +10:00
Rohan Mitchell
460d0c9907 Increase size of logo to fill page above the fold. Remove cta1 pane. 2015-05-11 15:53:46 +10:00
Rohan Mitchell
14afe932c1 Resize menu logo, make it always fully opaque 2015-05-11 14:39:53 +10:00
Rohan Mitchell
978c176cf6 Remove filter on hero image, set up superimposed logo and shop now CTA 2015-05-11 14:37:28 +10:00
Rohan Mitchell
3e82deb1f5 Add new home hero images 2015-05-11 14:32:07 +10:00
Paul Mackay
fd37324359 #536: Add permissions checking for Notify producers action. 2015-05-09 11:02:25 +01:00
Rohan Mitchell
8cb8aacefe Switch logo for white menu 2015-05-08 16:07:59 +10:00
Rohan Mitchell
6fc9789477 Invert colours on top menu 2015-05-08 15:11:54 +10:00
Rohan Mitchell
6322fdc1f0 Disable top alert 2015-05-08 15:03:37 +10:00
Rohan Mitchell
768c9f24a2 Make topbar height configurable 2015-05-08 11:22:55 +10:00
Rohan Mitchell
a450d3af81 Variables can now be used to override foundation vars 2015-05-08 11:15:27 +10:00
Rohan Mitchell
f6c1be97a8 WIP: Fix apostrophes, add TODO 2015-05-07 15:03:27 +10:00
Rohan Mitchell
f024f62970 Content-manage footer fields 2015-05-06 16:36:10 +10:00
Rohan Mitchell
bf435a8f3d Make home page what's happening text and about URL configurable 2015-05-06 15:17:28 +10:00
Rohan Mitchell
01d1e84f85 Update global links 2015-05-06 15:15:09 +10:00
Rohan Mitchell
b5a6f9c1bc Add infrastructure so admin can configure content. Make homepage tagline CTA configurable. 2015-05-06 14:54:16 +10:00
Rohan Mitchell
1ffba674b3 Show real stats on home page 2015-05-06 14:54:16 +10:00
Rohan Mitchell
e662aab004 Brand story can be expanded and contracted 2015-05-06 14:54:16 +10:00
Rohan Mitchell
abee9c8198 Update security text and licensing 2015-05-06 14:54:15 +10:00
summerscope
3bca1f2070 Tweaks to homepage styling 2015-05-06 11:32:47 +10:00
summerscope
808979a8e0 Add a to do note for Rohan in css 2015-05-06 09:44:45 +10:00
summerscope
b0f76330b7 Changing order of events on homepage to make shopping the most obvious thing on homepage. 2015-05-06 09:38:49 +10:00
summerscope
216f99d1c7 New link for footer - updated URL 2015-05-05 16:14:18 +10:00
summerscope
31c4af154e Applying Jay's copy to homepage 2015-05-05 15:44:36 +10:00
summerscope
e7d09f1b55 Change copy as supplied by Jay 2015-05-05 15:32:04 +10:00
summerscope
62a39af975 Make assets for home even smaller 2015-05-05 15:11:52 +10:00
summerscope
c0b12e39a8 Tweaking styling on shopfront header 2015-05-05 14:59:37 +10:00
summerscope
75055300e3 Adding comments into Footer for CMS implementation stuff with Rohan 2015-05-05 14:56:11 +10:00
summerscope
af4fe27f31 Adding comments for CMS implementation stuff with Rohan 2015-05-05 14:53:25 +10:00
summerscope
faa490b093 Reslice to optimise for web & reduce file size 2015-05-05 14:53:07 +10:00
summerscope
4da6bef639 Removing unused assets. Adding some todo notes. Optimising PNG assets to reduce file size. 2015-05-05 13:35:51 +10:00
Rohan Mitchell
63ec0d7dcf Merge branch 'master' into folklabs-producer-emails 2015-05-05 11:48:31 +10:00
summerscope
ae221f0416 Remove clashing padding classes 2015-05-04 23:02:33 +10:00
summerscope
924efec49c Add animation class to make consistent with Hubs and Producers.
Remove class .animate-repeat
2015-05-04 22:59:48 +10:00
summerscope
9082da6d5e Remove animation from search field, add to group nodes 2015-05-04 22:57:07 +10:00
summerscope
eabe0e43e2 Fix the big input styling to work better with new typography 2015-05-04 22:55:57 +10:00
summerscope
91afbaca4b Fixing name-space clash in footer 2015-05-04 22:49:10 +10:00
summerscope
2736421460 First cut at Groups landing page for sign up. 2015-05-04 22:42:14 +10:00
summerscope
84c2faddd5 Adding new link to footer 2015-05-04 22:19:33 +10:00
Rob Harrington
9ebbdd8dc7 Adding route for groups/signup
Conflicts:
	config/routes.rb
2015-05-04 22:14:43 +10:00
summerscope
0510fa27e6 More design tweaks for homepage and conversion pages 2015-05-04 18:23:04 +10:00
summerscope
b483afe7f7 Styling Producers page - simpler and to be more in-line with Shops page 2015-05-04 14:36:12 +10:00
summerscope
41fb44c19b More styling on pricing table
Remove middle column
2015-05-04 14:33:03 +10:00
summerscope
938358007a > More styling for landing pages for signup
> Add signup page for groups / food systems partners
> Change link in footer
2015-05-04 13:44:35 +10:00
summerscope
503c483acd Tweak language 2015-05-04 13:16:18 +10:00
summerscope
3091b365ec Adding in logos for case studies
More styling on signup pages
2015-05-04 13:15:18 +10:00
summerscope
36838ed457 Hubs signup page WIP styling 2015-05-02 21:49:01 +10:00
summerscope
9a0e9145ef Adding more logic to force padding for shopfront page whether populated with products or not. 2015-05-02 20:25:23 +10:00
summerscope
572ab14c0b Removing BG image from producers page. This isn't part of changing design per instance (for the moment at least) 2015-05-02 20:18:07 +10:00
summerscope
1090328a3c Adding padding class and apply to templates to have required padding for new footer. 2015-05-02 20:12:33 +10:00
summerscope
89a537c3f7 Image assets - removing old brand. Adding new versions for new look & feel. 2015-05-02 18:25:46 +10:00
summerscope
e6d00e00c4 WIP button tweaks for new look & feel 2015-05-02 18:25:38 +10:00
summerscope
ddde4e9dcb WIP producers signup page markup 2015-05-02 18:25:23 +10:00
summerscope
3dbe45172d Registration markup tweak with new icons 2015-05-02 18:24:55 +10:00
summerscope
2db6d5fe65 Registration styling tweak for new look & feel 2015-05-02 18:24:40 +10:00
summerscope
6d904b4700 Adding in styling for signup panes for Producers and Hubs 2015-05-02 18:24:18 +10:00
summerscope
4cb0158b21 Add in link for Regional founders user types - to send back to global site 2015-05-02 18:23:42 +10:00
summerscope
4f145104d2 Update mailer to new logo - should be instance specific (e.g. UK, AUS, etc.) 2015-05-02 17:58:35 +10:00
summerscope
fd90da6868 Shops landing page - adding info pane and copy with Jay. 2015-05-02 16:02:18 +10:00
summerscope
330d23c606 Move alert for 'join now' off global template onto homepage template only. 2015-05-02 15:23:12 +10:00
summerscope
5f193bc9ae More styling for homepage panes. 2015-05-02 15:20:51 +10:00
summerscope
0086066ea5 WIP on How does it work pane on homepage 2015-05-02 13:58:57 +10:00
summerscope
5198d52f0d Design assets for new UI 2015-05-02 13:58:47 +10:00
summerscope
7b8b53854e More WIP on homepage layout etc. 2015-05-01 18:46:39 +10:00
summerscope
03508f98d8 Homepage tagline styling for mobile / responsive 2015-05-01 18:24:07 +10:00
summerscope
53e2bc823d WIP styling and content for homepage
> footer
> alert @ top
> call to action buttons
2015-05-01 18:19:51 +10:00
summerscope
d9fd0b284d WIP on home panes and layout 2015-05-01 14:52:17 +10:00
summerscope
e1beae98ab WIP on redesign / layout job
> adding in new design assets
> copy and layout for homepage partials
> more global styling updates
2015-05-01 14:41:48 +10:00
Rohan Mitchell
91ca5f0213 Fix specs for receival_time / instructions 2015-05-01 10:08:24 +10:00
Rohan Mitchell
f5b45fa0ba Merge branch 'master' into folklabs-producer-emails 2015-05-01 09:51:01 +10:00
summerscope
427f535026 Redesign big chunk of work:
> setting up pages for Shops, and shops signup, producers signup
> setting up routes for new pages
> changing fonts to Google Oswald & Roboto
> setting up homepage partials and removing partials no longer required
> changing menu links and labels
2015-04-30 18:20:17 +10:00
summerscope
ae16589717 New version of logo sliced for OFN Australia 2015-04-30 17:55:18 +10:00
Rohan Mitchell
73376b30e2 Convention 2015-04-29 15:56:27 +10:00
Rohan Mitchell
3565548e91 Extract data preparation into private methods 2015-04-29 15:50:42 +10:00
Rohan Mitchell
6999bcfd4e Only include complete orders in producer mailer report 2015-04-29 15:43:50 +10:00
Rohan Mitchell
2fe5d7c73f Remove commented code, use neater syntax for accessing Spree config var 2015-04-29 15:33:39 +10:00
Rohan Mitchell
3a3bf19cf8 Clean up duplication 2015-04-29 15:31:42 +10:00
Rohan Mitchell
30e04b509d Clean up routes 2015-04-29 15:31:13 +10:00
Rohan Mitchell
4279742de5 Avoid serialising entire order cycle when enqueuing OrderCycleNotificationJob 2015-04-29 15:21:05 +10:00
Rohan Mitchell
713c93a570 Fix OrderCycleFormApplicator specs 2015-04-29 15:00:22 +10:00
Rohan Mitchell
36584f0177 Remove puts from specs, fix failing controller spec 2015-04-29 14:46:20 +10:00
Rohan Mitchell
6b1c125b03 Merge branch 'producer-emails' of https://github.com/folklabs/openfoodnetwork into folklabs-producer-emails
Conflicts:
	Gemfile.lock
	app/controllers/admin/order_cycles_controller.rb
	app/views/admin/order_cycles/edit.html.haml
	app/views/admin/order_cycles/show.rep
	db/schema.rb
	spec/controllers/admin/order_cycles_controller_spec.rb
2015-04-29 14:42:17 +10:00
Paul Mackay
0f1ec17698 #275: Use better path variable in test. 2015-04-28 16:08:26 +01:00
Paul Mackay
9103e83ce2 #275: spec test for controller method. Other small fixes. 2015-04-11 18:28:31 +01:00
Paul Mackay
99709b53ed Change controller action to 'notify_producers'.
Add flash message on completion.
Simplify job variables.
Improve mailer query.
Spec for job.
2015-04-11 13:19:48 +01:00
Paul Mackay
717b3b6494 #275: Fixes for testing aggregated orders. 2015-03-10 19:19:57 +00:00
Paul Mackay
ca665dc6bc Merge master into producer-emails. 2015-03-04 19:09:43 +00:00
Paul Mackay
67b17de695 #275: Add receival time and instructions to order cycle for incoming exchanges. Fix issues from feedback. 2014-12-30 11:33:13 +00:00
Paul Mackay
8d5a0aea9f Setup daemon and delayed job table. 2014-11-24 21:25:58 +00:00
Paul Mackay
803d790b7a Remove nokigiri warning.
Tweak email subject.
2014-11-24 21:00:36 +00:00
Paul Mackay
375bdc0586 #275: Change report format. Improved mailer. 2014-11-16 07:14:29 +00:00
Paul Mackay
9b7fd1c16b #275: small tweaks. 2014-11-09 11:19:26 +00:00
Paul Mackay
05437e2a56 #275: start on producer email. 2014-11-09 11:17:46 +00:00
701 changed files with 17792 additions and 23318 deletions

1
.gitignore vendored
View File

@@ -34,6 +34,7 @@ config/abr.yml
config/heroku_env.rb
config/newrelic.yml
config/initializers/feature_toggle.rb
config/initializers/db2fog.rb
NERD_tree*
coverage
libpeerconnection.log

View File

@@ -1,4 +1,4 @@
--format progress
--format Fuubar
--format ParallelTests::RSpec::SummaryLogger --out tmp/spec_summary.log
--format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log
--tag ~performance

View File

@@ -1 +1 @@
1.9.3-p392
2.1.5

View File

@@ -1,15 +1,56 @@
language: ruby
sudo: false
cache: bundler
bundler_args: --without development
rvm:
- "1.9.3"
services: postgresql
before_install:
- "2.1.5"
# Set the timezone for phantomjs with TZ
# Set the timezone for karma with TIMEZONE
#
# The test cases are roughly split according to their test times.
# It would be better to use https://github.com/ArturT/knapsack.
env:
global:
- TZ="Australia/Melbourne"
- TIMEZONE="Australia/Melbourne"
matrix:
- TEST_CASES="./spec/features/admin" GITHUB_DEPLOY="true"
- TEST_CASES="./spec/features/consumer ./spec/serializers ./spec/performance"
- TEST_CASES="./spec/models"
- TEST_CASES="./spec/controllers ./spec/views ./spec/jobs"
- TEST_CASES="./spec/requests ./spec/helpers ./spec/mailers ./spec/lib" KARMA="true"
before_script:
- cp config/database.travis.yml config/database.yml
- psql -c 'create database open_food_network_test;' -U postgres
- cp config/application.yml.example config/application.yml
- RAILS_ENV=test bundle exec rake db:create db:schema:load
- >
if [ "$KARMA" = "true" ]; then
npm install karma@0.12.31
npm install karma-jasmine@0.1.5
npm install karma-phantomjs-launcher@0.1.4
npm install karma-coffee-preprocessor@0.2.1
npm install -g karma-cli@0.0.4
fi
script:
- RAILS_ENV=test bundle exec rake db:migrate --trace
- bundle exec rake spec
- '[ "$KARMA" = "true" ] && bundle exec rake karma:run || echo "Skipping karma run"'
- "bundle exec rspec $TEST_CASES"
after_success:
- >
if [ "$GITHUB_DEPLOY" = "true" -a "$TRAVIS_PULL_REQUEST" = "false" -a -n "$TRAVIS_BRANCH" -a -n "$GITHUB_API_SECRET" ]; then
description="`git show "$TRAVIS_BRANCH" -s --oneline --no-color`"
data="{
\"ref\":\"$TRAVIS_BRANCH\",
\"description\":\"$description\",
\"environment\":\"staging\",
\"required_contexts\":[]}"
curl -u "$GITHUB_API_SECRET" -d "$data" "https://api.github.com/repos/$TRAVIS_REPO_SLUG/deployments"
else
echo "Not deploying on this build."
fi
notifications:
email: false

33
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,33 @@
# Contributing
We love pull requests from everyone. Here are some instructions for
contributing code to Open Food Network.
Fork, then clone the repo:
git clone git@github.com:your-username/openfoodnetwork.git
Follow the instructions in README.markdown to set up your machine.
Make sure the tests pass:
rspec spec
Make your change. Add tests for your change. Make the tests pass:
rspec spec
Push to your fork and [submit a pull request][pr].
[pr]: https://github.com/openfoodfoundation/openfoodnetwork/compare/
At this point you're waiting on us. We may suggest some changes or
improvements or alternatives.
To increase the chance that your pull request is swiftly accepted:
* Write tests
* Use a style consistent with the rest of the codebase
* Before submitting, [rebase your work][rebase] on the current master branch
[rebase]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing/workflow-walkthrough

18
Gemfile
View File

@@ -1,10 +1,12 @@
source 'https://rubygems.org'
ruby "1.9.3"
ruby "2.1.5"
gem 'rails', '3.2.21'
gem 'rails-i18n', '~> 3.0.0'
gem 'i18n', '~> 0.6.11'
gem 'nokogiri'
gem 'pg'
gem 'spree', :github => 'openfoodfoundation/spree', :branch => '1-3-stable'
gem 'spree_i18n', :github => 'spree/spree_i18n', :branch => '1-3-stable'
@@ -30,6 +32,7 @@ gem 'newrelic_rpm'
gem 'haml'
gem 'sass', "~> 3.3"
gem 'sass-rails', '~> 3.2.3', groups: [:default, :assets]
gem 'redcarpet'
gem 'aws-sdk'
gem 'db2fog'
gem 'andand'
@@ -49,7 +52,12 @@ gem 'custom_error_message', :github => 'jeremydurham/custom-err-msg'
gem 'angularjs-file-upload-rails', '~> 1.1.0'
gem 'roadie-rails', '~> 1.0.3'
gem 'figaro'
gem 'blockenspiel'
gem 'acts-as-taggable-on', '~> 3.4'
gem 'paper_trail', '~> 3.0.8'
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
gem 'foreigner'
gem 'immigrant'
@@ -72,11 +80,12 @@ group :assets do
gem 'momentjs-rails'
gem 'angular-rails-templates', '~> 0.2.0'
end
gem "foundation-rails"
gem 'foundation_rails_helper', github: 'willrjmarshall/foundation_rails_helper', branch: "rails3"
gem 'jquery-rails'
gem 'css_splitter'
group :test, :development do
@@ -88,13 +97,14 @@ group :test, :development do
gem 'factory_girl_rails', :require => false
gem 'capybara'
gem 'database_cleaner', '0.7.1', :require => false
gem 'simplecov', :require => false
gem 'awesome_print'
gem 'letter_opener'
gem 'timecop'
gem 'poltergeist'
gem 'rspec-retry'
gem 'json_spec'
gem 'unicorn-rails'
gem 'atomic'
end
group :test do
@@ -105,7 +115,7 @@ group :test do
end
group :development do
gem 'pry-debugger'
gem 'pry-byebug'
gem 'debugger-linecache'
gem 'guard'
gem 'guard-livereload'

View File

@@ -107,6 +107,7 @@ GIT
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (2.3.2)
actionmailer (3.2.21)
actionpack (= 3.2.21)
mail (~> 2.5.4)
@@ -155,6 +156,7 @@ GEM
angularjs-rails (1.2.13)
ansi (1.4.2)
arel (3.0.3)
atomic (1.1.99)
awesome_nested_set (2.1.5)
activerecord (>= 3.0.0)
awesome_print (1.0.2)
@@ -165,12 +167,16 @@ GEM
bcrypt (3.1.7)
bcrypt-ruby (3.1.5)
bcrypt (>= 3.1.3)
blockenspiel (0.4.5)
bugsnag (1.5.2)
httparty (>= 0.6, < 1.0)
multi_json (~> 1.0)
builder (3.0.4)
byebug (2.7.0)
columnize (~> 0.3)
debugger-linecache (~> 1.2)
cancan (1.6.8)
capybara (2.2.1)
capybara (2.5.0)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
@@ -189,12 +195,12 @@ GEM
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
coffee-script (2.2.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.3.3)
coffee-script-source (1.10.0)
colorize (0.7.7)
columnize (0.3.6)
columnize (0.9.0)
comfortable_mexican_sofa (1.6.24)
active_link_to (~> 1.0.0)
paperclip (>= 2.3.0)
@@ -219,6 +225,8 @@ GEM
safe_yaml (~> 0.9.0)
css_parser (1.3.5)
addressable
css_splitter (0.4.1)
sprockets (>= 2.0.0)
daemons (1.2.2)
dalli (2.7.2)
database_cleaner (0.7.1)
@@ -226,12 +234,7 @@ GEM
activerecord (~> 3.0)
fog (~> 1.0)
rails (~> 3.0)
debugger (1.6.1)
columnize (>= 0.3.1)
debugger-linecache (~> 1.2.0)
debugger-ruby_core_source (~> 1.2.3)
debugger-linecache (1.2.0)
debugger-ruby_core_source (1.2.3)
delayed_job (4.0.4)
activesupport (>= 3.0, < 4.2)
delayed_job_active_record (4.0.2)
@@ -249,9 +252,9 @@ GEM
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.5.3)
erubis (2.7.0)
eventmachine (1.0.3)
excon (0.25.3)
execjs (2.5.2)
eventmachine (1.0.8)
excon (0.45.4)
execjs (2.6.0)
factory_girl (3.3.0)
activesupport (>= 3.0.0)
factory_girl_rails (3.3.0)
@@ -262,19 +265,117 @@ GEM
figaro (0.7.0)
bundler (~> 1.0)
rails (>= 3, < 5)
fog (1.14.0)
fission (0.5.0)
CFPropertyList (~> 2.2)
fog (1.36.0)
fog-aliyun (>= 0.1.0)
fog-atmos
fog-aws (>= 0.6.0)
fog-brightbox (~> 0.4)
fog-core (~> 1.32)
fog-dynect (~> 0.0.2)
fog-ecloud (~> 0.1)
fog-google (<= 0.1.0)
fog-json
fog-local
fog-powerdns (>= 0.1.1)
fog-profitbricks
fog-radosgw (>= 0.0.2)
fog-riakcs
fog-sakuracloud (>= 0.0.4)
fog-serverlove
fog-softlayer
fog-storm_on_demand
fog-terremark
fog-vmfusion
fog-voxel
fog-xenserver
fog-xml (~> 0.1.1)
ipaddress (~> 0.5)
nokogiri (~> 1.5, >= 1.5.11)
fog-aliyun (0.1.0)
fog-core (~> 1.27)
fog-json (~> 1.0)
ipaddress (~> 0.8)
xml-simple (~> 1.1)
fog-atmos (0.1.0)
fog-core
fog-xml
fog-aws (0.7.6)
fog-core (~> 1.27)
fog-json (~> 1.0)
fog-xml (~> 0.1)
ipaddress (~> 0.8)
fog-brightbox (0.9.0)
fog-core (~> 1.22)
fog-json
inflecto (~> 0.0.2)
fog-core (1.35.0)
builder
excon (~> 0.25.0)
formatador (~> 0.2.0)
mime-types
multi_json (~> 1.0)
net-scp (~> 1.1)
net-ssh (>= 2.1.3)
nokogiri (~> 1.5)
ruby-hmac
excon (~> 0.45)
formatador (~> 0.2)
fog-dynect (0.0.2)
fog-core
fog-json
fog-xml
fog-ecloud (0.3.0)
fog-core
fog-xml
fog-google (0.1.0)
fog-core
fog-json
fog-xml
fog-json (1.0.2)
fog-core (~> 1.0)
multi_json (~> 1.10)
fog-local (0.2.1)
fog-core (~> 1.27)
fog-powerdns (0.1.1)
fog-core (~> 1.27)
fog-json (~> 1.0)
fog-xml (~> 0.1)
fog-profitbricks (0.0.5)
fog-core
fog-xml
nokogiri
fog-radosgw (0.0.4)
fog-core (>= 1.21.0)
fog-json
fog-xml (>= 0.0.1)
fog-riakcs (0.1.0)
fog-core
fog-json
fog-xml
fog-sakuracloud (1.4.0)
fog-core
fog-json
fog-serverlove (0.1.2)
fog-core
fog-json
fog-softlayer (1.0.2)
fog-core
fog-json
fog-storm_on_demand (0.1.1)
fog-core
fog-json
fog-terremark (0.1.0)
fog-core
fog-xml
fog-vmfusion (0.1.0)
fission
fog-core
fog-voxel (0.1.0)
fog-core
fog-xml
fog-xenserver (0.2.2)
fog-core
fog-xml
fog-xml (0.1.2)
fog-core
nokogiri (~> 1.5, >= 1.5.11)
foreigner (1.6.1)
activerecord (>= 3.0.0)
formatador (0.2.4)
formatador (0.2.5)
foundation-icons-sass-rails (3.0.0)
railties (>= 3.1.1)
sass-rails (>= 3.1.1)
@@ -316,6 +417,8 @@ GEM
immigrant (0.1.6)
activerecord (>= 3.0)
foreigner (>= 1.2.1)
inflecto (0.0.2)
ipaddress (0.8.0)
journey (1.0.4)
jquery-rails (2.2.2)
railties (>= 3.0, < 5.0)
@@ -332,7 +435,7 @@ GEM
addressable (~> 2.3)
letter_opener (1.0.0)
launchy (>= 2.0.4)
libv8 (3.16.14.3)
libv8 (3.16.14.11)
listen (2.2.0)
celluloid (>= 0.15.2)
rb-fsevent (>= 0.9.3)
@@ -348,16 +451,16 @@ GEM
railties (>= 3.1)
money (5.1.1)
i18n (~> 0.6.0)
multi_json (1.11.0)
multi_json (1.11.2)
multi_xml (0.5.5)
net-scp (1.1.2)
net-ssh (>= 2.6.5)
net-ssh (2.6.8)
newrelic_rpm (3.12.0.288)
nokogiri (1.6.6.2)
nokogiri (1.6.6.4)
mini_portile (~> 0.6.0)
oj (2.1.2)
orm_adapter (0.5.0)
paper_trail (3.0.8)
activerecord (>= 3.0, < 5.0)
activesupport (>= 3.0, < 5.0)
paperclip (3.5.4)
activemodel (>= 3.0.0)
activesupport (>= 3.0.0)
@@ -372,7 +475,7 @@ GEM
paypal-sdk-merchant (1.106.1)
paypal-sdk-core (~> 0.2.3)
pg (0.13.2)
poltergeist (1.5.0)
poltergeist (1.7.0)
capybara (~> 2.1)
cliver (~> 0.3.1)
multi_json (~> 1.0)
@@ -384,13 +487,13 @@ GEM
coderay (~> 1.0.5)
method_source (~> 0.8)
slop (~> 3.4)
pry-debugger (0.2.2)
debugger (~> 1.3)
pry (~> 0.9.10)
pry-byebug (1.3.2)
byebug (~> 2.7)
pry (~> 0.9.12)
rabl (0.7.2)
activesupport (>= 2.3.14)
multi_json (~> 1.0)
rack (1.4.5)
rack (1.4.7)
rack-cache (1.2)
rack (>= 0.4)
rack-livereload (0.3.15)
@@ -428,6 +531,7 @@ GEM
ffi (>= 0.5.0)
rdoc (3.12.2)
json (~> 1.4)
redcarpet (3.2.3)
ref (1.0.5)
representative (1.0.5)
activesupport (>= 2.2.2)
@@ -458,7 +562,8 @@ GEM
rspec-core (~> 2.14.0)
rspec-expectations (~> 2.14.0)
rspec-mocks (~> 2.14.0)
ruby-hmac (0.4.0)
rspec-retry (0.4.2)
rspec-core
ruby-progressbar (1.7.1)
safe_yaml (0.9.5)
sass (3.3.14)
@@ -470,10 +575,6 @@ GEM
thor (~> 0.14)
shoulda-matchers (1.1.0)
activesupport (>= 3.0.0)
simplecov (0.7.1)
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
slop (3.4.5)
spinjs-rails (1.3)
rails (>= 3.1)
@@ -521,10 +622,15 @@ GEM
webmock (1.13.0)
addressable (>= 2.2.7)
crack (>= 0.3.2)
websocket-driver (0.3.2)
websocket-driver (0.6.2)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)
whenever (0.9.2)
activesupport (>= 2.3.4)
chronic (>= 0.6.3)
wicked_pdf (0.11.0)
rails
wkhtmltopdf-binary (0.9.9.3)
xml-simple (1.1.4)
xpath (2.0.0)
nokogiri (~> 1.3)
@@ -541,13 +647,16 @@ DEPENDENCIES
angular-rails-templates (~> 0.2.0)
angularjs-file-upload-rails (~> 1.1.0)
angularjs-rails (= 1.2.13)
atomic
awesome_print
aws-sdk
blockenspiel
bugsnag
capybara
coffee-rails (~> 3.2.1)
comfortable_mexican_sofa
compass-rails
css_splitter
custom_error_message!
daemons
dalli
@@ -578,25 +687,28 @@ DEPENDENCIES
letter_opener
momentjs-rails
newrelic_rpm
nokogiri
oj
paper_trail (~> 3.0.8)
paperclip
parallel_tests
pg
poltergeist
pry-debugger
pry-byebug
rabl
rack-livereload
rack-ssl
rails (= 3.2.21)
rails-i18n (~> 3.0.0)
redcarpet
representative_view
roadie-rails (~> 1.0.3)
rspec-rails
rspec-retry
sass (~> 3.3)
sass-rails (~> 3.2.3)
shoulda-matchers
simple_form!
simplecov
spinjs-rails
spree!
spree_auth_devise!
@@ -612,3 +724,5 @@ DEPENDENCIES
unicorn-rails
webmock
whenever
wicked_pdf
wkhtmltopdf-binary

View File

@@ -12,10 +12,15 @@ We're part of global movement - get involved!
* Find out more and join in the conversation - http://openfoodnetwork.org
## Getting started
Below are instructions for setting up a development environment for Open Food Network. If you're interested in provisioning a server, see [the project's Ansible playbooks](https://github.com/openfoodfoundation/ofn_deployment).
## Dependencies
* Rails 3.2.x
* Ruby >= 1.9.3
* Ruby 2.1.5
* PostgreSQL database
* PhantomJS (for testing)
* See Gemfile for a list of gems required
@@ -32,19 +37,20 @@ You can view the code at:
You can download the source with the command:
git clone git@github.com:openfoodfoundation/openfoodnetwork
git clone https://github.com/openfoodfoundation/openfoodnetwork.git
## Get it running
For those new to Rails, the following tutorial will help get you up to speed with configuring a Rails environment: http://guides.rubyonrails.org/getting_started.html .
First, check your dependencies: Ensure that you have Ruby 1.9.x installed:
First, check your dependencies: Ensure that you have Ruby 2.1.5 installed:
ruby --version
Install the project's gem dependencies:
cd openfoodnetwork
bundle install
Configure the site:

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 300 104"
enable-background="new 0 0 300 104"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="logo-black.svg">
<metadata
id="metadata24">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs22" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1084"
inkscape:window-height="641"
id="namedview20"
showgrid="false"
inkscape:zoom="1.8101934"
inkscape:cx="126.57728"
inkscape:cy="62.030566"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="0"
inkscape:current-layer="g4" />
<g
id="g4"
fill="#fff">
<path
d="M142.7 15.6c.4 3.2.4 7.5 0 10.7-.5 4.6-3.8 8.4-9.1 8.4s-8.5-3.8-9.1-8.4c-.4-3.2-.4-7.5 0-10.7.5-4.6 3.8-8.4 9.1-8.4s8.6 3.8 9.1 8.4m-5.3 10.7c.4-3.2.4-7.5 0-10.7-.2-1.7-1.4-3-3.7-3-2.3 0-3.5 1.4-3.7 3-.4 3.2-.4 7.5 0 10.7.2 1.7 1.4 3 3.7 3 2.3 0 3.5-1.3 3.7-3"
id="path6"
style="fill:#000000" />
<path
d="M156.4 7.6c4.4 0 8 3.6 8 8s-3.6 8-8 8H153c-.2 0-.4.2-.4.4v9.5c0 .4-.3.8-.8.8H148c-.4 0-.8-.3-.8-.8V8.4c0-.4.3-.8.8-.8h8.4zm-3.5 5.3c-.2 0-.4.2-.4.4v4.6c0 .2.2.4.4.4h3.4c1.4 0 2.7-1.2 2.7-2.7 0-1.4-1.2-2.7-2.7-2.7h-3.4zM172.9 28.6c0 .2.2.4.4.4h9c.4 0 .8.3.8.8v3.8c0 .4-.3.8-.8.8h-14c-.4 0-.8-.3-.8-.8V8.4c0-.4.3-.8.8-.8h13.8c.4 0 .8.3.8.8v3.8c0 .4-.3.8-.8.8h-8.9c-.2 0-.4.2-.4.4V18c0 .2.2.4.4.4h8.6c.4 0 .8.3.8.8V23c0 .4-.3.8-.8.8h-8.6c-.2 0-.4.2-.4.4v4.4zM199.4 34.3c-.6 0-.9-.3-1-.6l-5.2-13.4c-.1-.2-.3-.2-.3.1v13.2c0 .4-.3.8-.8.8h-3.8c-.4 0-.8-.3-.8-.8V8.4c0-.4.3-.8.8-.8h4.5c.6 0 .8.3 1 .7l5.2 14.5c.1.2.3.2.3-.1V8.4c0-.4.3-.8.8-.8h3.8c.4 0 .8.3.8.8v25.1c0 .4-.3.8-.8.8h-4.5zM224.4 24v9.5c0 .4-.3.8-.8.8h-3.8c-.4 0-.8-.3-.8-.8V8.4c0-.4.3-.8.8-.8h13.3c.4 0 .8.3.8.8v3.8c0 .4-.3.8-.8.8h-8.4c-.2 0-.4.2-.4.4V18c0 .2.2.4.4.4h8c.4 0 .8.3.8.8V23c0 .4-.3.8-.8.8h-8c-.1-.2-.3 0-.3.2M255.6 15.6c.4 3.2.4 7.5 0 10.7-.5 4.6-3.8 8.4-9.1 8.4s-8.5-3.8-9.1-8.4c-.4-3.2-.4-7.5 0-10.7.5-4.6 3.8-8.4 9.1-8.4s8.6 3.8 9.1 8.4m-5.3 10.7c.4-3.2.4-7.5 0-10.7-.2-1.7-1.4-3-3.7-3-2.3 0-3.5 1.4-3.7 3-.4 3.2-.4 7.5 0 10.7.2 1.7 1.4 3 3.7 3 2.3 0 3.5-1.3 3.7-3M278 15.6c.4 3.2.4 7.5 0 10.7-.5 4.6-3.8 8.4-9.1 8.4s-8.5-3.8-9.1-8.4c-.4-3.2-.4-7.5 0-10.7.5-4.6 3.8-8.4 9.1-8.4s8.5 3.8 9.1 8.4m-5.4 10.7c.4-3.2.4-7.5 0-10.7-.2-1.7-1.4-3-3.7-3-2.3 0-3.5 1.4-3.7 3-.4 3.2-.4 7.5 0 10.7.2 1.7 1.4 3 3.7 3 2.3 0 3.5-1.3 3.7-3"
id="path8"
style="fill:#000000" />
<path
d="M291.2 7.6c4.7 0 8 3.8 8.5 8.4.4 3.2.4 6.6 0 9.8-.5 4.6-3.8 8.4-8.5 8.4h-8c-.4 0-.8-.3-.8-.8v-25c0-.4.3-.8.8-.8h8zm-3 5.3c-.2 0-.4.2-.4.4v15.2c0 .2.2.4.4.4h3c1.8 0 2.9-1.4 3.1-3.1.4-3.2.4-6.6 0-9.8-.2-1.7-1.4-3.1-3.1-3.1h-3zM137.5 67.9c-.4 0-.6-.1-.8-.6l-9.1-20.8c-.1-.1-.3-.1-.3.1v20.6c0 .4-.3.7-.8.7h-.8c-.4 0-.8-.3-.8-.7V43.3c0-.4.3-.7.8-.7h2c.4 0 .6.1.8.6l9.1 20.6c.1.1.3.1.3-.1V43.3c0-.4.3-.7.8-.7h.8c.4 0 .8.3.8.7v23.9c0 .4-.3.7-.8.7h-2zM146.7 65.3c0 .2.2.4.4.4h9.9c.4 0 .8.3.8.7v.9c0 .4-.3.7-.8.7h-12c-.4 0-.8-.3-.8-.7v-24c0-.4.3-.7.8-.7h12c.4 0 .8.3.8.7v.9c0 .4-.3.7-.8.7h-9.9c-.2 0-.4.1-.4.4v8.2c0 .2.2.4.4.4h9.4c.4 0 .8.3.8.7v.8c0 .4-.3.7-.8.7h-9.4c-.2 0-.4.1-.4.4v8.8zM170 45.3v21.9c0 .4-.3.7-.8.7h-1c-.4 0-.8-.3-.8-.7V45.3c0-.2-.2-.4-.4-.4h-5.6c-.4 0-.8-.3-.8-.7v-.9c0-.4.3-.7.8-.7H176c.4 0 .8.3.8.7v.9c0 .4-.3.7-.8.7h-5.6c-.2 0-.4.2-.4.4M187 67.9h-2.1c-.3 0-.6-.2-.7-.5L179 43.3c-.1-.4.2-.7.8-.7h.9c.3 0 .6.1.7.5l4.3 20.7c0 .1.1.2.2.2h.1c.1 0 .2-.1.2-.2l4-20.7c.1-.4.4-.5.7-.5h1.3c.3 0 .6.2.7.5l4.3 20.7c0 .1.1.2.2.2h.1c.1 0 .2-.1.2-.2l4.6-20.7c.1-.4.4-.5.7-.5h.9c.6 0 .8.4.8.7l-5.5 24.1c-.1.4-.4.5-.7.5h-2.1c-.3 0-.6-.2-.7-.5l-4-19.3c0-.2-.3-.2-.3 0l-3.8 19.3c0 .4-.3.5-.6.5M223.9 49.8c.4 2.9.4 7.9 0 10.9-.6 4.7-3.9 7.5-8.5 7.5s-7.8-2.9-8.5-7.5c-.4-2.9-.4-8 0-10.9.6-3.9 3.5-7.5 8.5-7.5s7.9 3.6 8.5 7.5m-2.6 10.9c.5-3 .5-7.9 0-10.9-.4-2.6-2.3-5.2-5.9-5.2-3.6 0-5.5 2.6-5.9 5.2-.5 3-.5 7.9 0 10.9.3 2.1 1.8 5.2 5.9 5.2 4.1 0 5.6-3.1 5.9-5.2"
id="path10"
style="fill:#000000" />
<path
d="M230.9 57.8c-.2 0-.4.1-.4.4v9c0 .4-.3.7-.8.7h-.9c-.4 0-.8-.3-.8-.7V43.3c0-.4.3-.7.8-.7h6.5c4.4 0 8 3.4 8 7.6 0 3.3-1.8 5.2-4.5 6.9-.5.3-.6.6-.3 1.2l4.8 8.6c.3.5 0 1.1-.7 1.1h-.8c-.6 0-.9-.3-1.1-.7l-4.9-9c-.1-.2-.3-.4-.7-.4h-4.2zm0-12.9c-.2 0-.4.1-.4.4v9.8c0 .2.2.4.4.4h4.4c3 0 5.6-2.4 5.6-5.3s-2.5-5.3-5.6-5.3h-4.4zM249.3 57.1c-.1-.1-.3-.1-.3.1v10c0 .4-.3.7-.8.7h-.9c-.4 0-.8-.3-.8-.7V43.3c0-.4.3-.7.8-.7h.9c.4 0 .8.3.8.7v9.6c0 .2.2.2.3.1l8.8-10c.1-.1.4-.4 1-.4h.6c.9 0 1.1.8.6 1.3l-9.4 10.5c-.2.3-.3.5 0 .9L261 66.6c.4.5.3 1.3-.7 1.3h-.8c-.6 0-.8-.3-1-.5l-9.2-10.3zM133.1 91.2c-.1-.3-.3-.4-.6-.4h-6c-.3 0-.5.1-.6.4l-1.4 4.9c-.1.3-.3.4-.6.4h-.7c-.5 0-.7-.3-.6-.6l5.6-19.4c.1-.3.3-.4.6-.4h1.5c.3 0 .5.2.6.4l5.6 19.4c.1.3-.1.6-.6.6h-.7c-.3 0-.5-.2-.6-.4l-1.5-4.9zm-.7-2.6l-2.7-9.9c0-.1-.1-.2-.1-.2h-.1c-.1 0-.1.1-.1.2l-2.7 9.9c-.1.2.1.3.2.3h5.1c.3 0 .4 0 .4-.3"
id="path12"
style="fill:#000000" />
<path
d="M150.4 90.5c0 3.5-2.8 6.3-6.3 6.3s-6.3-2.8-6.3-6.3V76.7c0-.3.3-.6.6-.6h.7c.3 0 .6.3.6.6v13.8c0 2.3 1.9 4.4 4.4 4.4 2.5 0 4.4-2.1 4.4-4.4V76.7c0-.3.3-.6.6-.6h.7c.3 0 .6.3.6.6v13.8zM158.4 86.4c-2.1-.5-4.9-1.6-4.9-5 0-3.5 2.7-5.5 5.7-5.5 3.4 0 5.7 2.5 5.7 5.5v.4c0 .3-.3.6-.6.6h-.7c-.3 0-.6-.3-.6-.6v-.4c0-2.1-1.6-3.6-3.8-3.6-2.6 0-3.8 1.8-3.8 3.6 0 2.6 2.7 2.9 4.8 3.5 3.2 1 5.3 2.2 5.3 5.8 0 3.8-3 6.1-6.3 6.1-3.8 0-6.3-2.7-6.3-6.1v-.5c0-.3.3-.6.6-.6h.7c.3 0 .6.3.6.6v.5c0 2 1.5 4.2 4.4 4.2 2.7 0 4.4-1.7 4.4-4.2 0-2.7-1.9-3.5-5.2-4.3M173.5 78.3V96c0 .3-.3.6-.6.6h-.7c-.3 0-.6-.3-.6-.6V78.3c0-.2-.1-.3-.3-.3H167c-.3 0-.6-.3-.6-.6v-.7c0-.3.3-.6.6-.6h11.1c.3 0 .6.3.6.6v.7c0 .3-.3.6-.6.6h-4.3c-.2 0-.3.1-.3.3"
id="path14"
style="fill:#000000" />
<path
d="M182.9 88.4c-.2 0-.3.1-.3.3V96c0 .3-.3.6-.6.6h-.7c-.3 0-.6-.3-.6-.6V76.7c0-.3.3-.6.6-.6h5c3.4 0 6.1 2.7 6.1 6.1 0 2.6-1.4 4.2-3.5 5.6-.4.2-.4.5-.2.9l3.7 6.9c.2.4 0 .9-.6.9h-.6c-.5 0-.7-.2-.8-.6l-3.7-7.2c-.1-.2-.2-.4-.6-.4h-3.2zm0-10.4c-.2 0-.3.1-.3.3v7.9c0 .2.1.3.3.3h3.4c2.3 0 4.3-1.9 4.3-4.3 0-2.3-1.9-4.3-4.3-4.3h-3.4zM204.8 91.2c-.1-.3-.3-.4-.6-.4h-6c-.3 0-.5.1-.6.4l-1.4 4.9c-.1.3-.3.4-.6.4h-.6c-.5 0-.7-.3-.6-.6l5.6-19.4c.1-.3.3-.4.6-.4h1.5c.3 0 .5.2.6.4l5.6 19.4c.1.3-.1.6-.6.6h-.7c-.3 0-.5-.2-.6-.4l-1.6-4.9zm-.7-2.6l-2.7-9.9c0-.1-.1-.2-.1-.2h-.1c-.1 0-.1.1-.1.2l-2.7 9.9c-.1.2.1.3.2.3h5.1c.3 0 .4 0 .4-.3"
id="path16"
style="fill:#000000" />
<path
d="M212.2 94.4c0 .2.1.3.3.3h7.2c.3 0 .6.3.6.6v.7c0 .3-.3.6-.6.6H211c-.3 0-.6-.3-.6-.6V76.7c0-.3.3-.6.6-.6h.7c.3 0 .6.3.6.6v17.7zM224.5 95.9c0 .3-.3.6-.6.6h-.7c-.3 0-.6-.3-.6-.6V76.7c0-.3.3-.6.6-.6h.7c.3 0 .6.3.6.6v19.2zM237.1 91.2c-.1-.3-.3-.4-.6-.4h-6c-.3 0-.5.1-.6.4l-1.4 4.9c-.1.3-.3.4-.6.4h-.7c-.5 0-.7-.3-.6-.6l5.6-19.4c.1-.3.3-.4.6-.4h1.5c.3 0 .5.2.6.4l5.6 19.4c.1.3-.1.6-.6.6h-.7c-.3 0-.5-.2-.6-.4l-1.5-4.9zm-.7-2.6l-2.7-9.9c0-.1-.1-.2-.1-.2h-.1c-.1 0-.1.1-.1.2l-2.7 9.9c-.1.2.1.3.2.3h5.1c.3 0 .4 0 .4-.3M3 44.3h.5c1.2 0 2.2-.9 2.4-2 .5-2.4 1.1-4.7 2-7 6.6-18.2 23.5-30.4 42-30.4s35.4 12.2 42 30.3c.8 2.2 1.5 4.6 2 6.9.3 1.3 1.6 2.2 2.9 1.9 1.3-.3 2.2-1.6 1.9-2.9-.5-2.6-1.3-5.1-2.2-7.6C89.2 13.5 70.5 0 49.9 0S10.6 13.5 3.3 33.6c-.9 2.5-1.6 5.1-2.2 7.7v.2l2.4.5-2.4-.5c-.3 1.3.6 2.6 1.9 2.8M99.8 53c.1-1-.4-2-1.4-2.5-3.4-1.6-7.7-3.1-12.5-4.2-1.5-.4-3.1-.7-4.7-1-3.3-.6-6.9-1.2-10.7-1.6-.7-7.4-3.9-12.8-9.5-16.6-6.3-4.2-14.1-4.4-20.9-.6-6.6 3.6-10.8 10.1-11.1 17.3-11.1 1.4-20.8 3.8-27.6 7.1-.1 0-.1.1-.2.1s-.1.1-.2.1l-.1.1c-.1.1-.2.1-.2.2-.4.4-.6 1-.6 1.6 0 1.4.1 2.7.2 4.1 0 .4.1.7.1 1.1.3 2.6.8 5.2 1.5 7.7.2.7.3 1.4.5 2 .3.9.6 1.7.9 2.6.7 1.8 1.4 3.6 2.2 5.2.8 1.6 1.7 3.1 2.6 4.6.7 1.2 1.5 2.3 2.4 3.5 1 1.3 2 2.6 3.2 3.8 1.5 1.7 3.1 3.2 4.8 4.6 1.4 1.2 2.9 2.3 4.4 3.3 1.9 1.3 3.8 2.4 5.9 3.4 2 .9 4 1.8 6.1 2.4 2.1.7 4.3 1.2 6.5 1.6 2.8.5 5.7.8 8.7.8h.1c13.6 0 26.5-5.9 35.8-15.9 1.8-1.9 3.4-3.9 4.9-6.1.2-.2.3-.5.5-.7 1.5-2.4 2.9-4.8 4-7.4.9-2 1.6-4 2.2-6 1.3-4.5 2.1-9.5 2.2-14.6 0 .1 0 .1 0 0m-14.1-1.7c3.3.8 6.3 1.8 8.9 2.9-3.4 1.6-6.7 2.9-9.9 4.1-1.9.7-3.7 1.2-5.5 1.7-3.5 1-7.1 1.6-10.7 2 1.3-4.4 2-8.8 2.2-13.4 3.6.4 7 1 10.2 1.6 1.7.4 3.3.7 4.8 1.1m-13 23.1c-3.2.4-6.5.6-9.7.6 1.5-2.5 2.7-5.2 3.8-7.8 3.6-.2 7-.7 10.4-1.5-1.3 2.9-2.8 5.8-4.5 8.7m-9.8 12.5c-2.8 0-5.6-.1-8.4-.5 1.9-2.1 3.7-4.3 5.4-6.5 1.2.1 2.5.1 3.7.1 1.8 0 3.7-.1 5.5-.2-1.9 2.4-4 4.8-6.2 7.1m-22.7-4.5c1.6-1.7 3-3.4 4.4-5.2 3.2.9 6.4 1.6 9.5 2-1.7 2.1-3.5 4.1-5.4 6-2.8-.7-5.6-1.6-8.5-2.8M6.6 65c-.5-1.9-.9-3.8-1.2-5.8 7.2-1.8 16.6-1.4 26.2 1.3-.9 2-2 3.9-3.2 5.8C19.3 64 11.6 64.2 6.6 65m50.7 9.7c-3.2-.3-6.5-.9-9.8-1.7 1.4-2.2 2.6-4.5 3.7-6.9 3.5.6 6.8 1 10.1 1.1-1.1 2.5-2.4 5.1-4 7.5m-14.6-3.3c-1.5-.5-3-1.1-4.5-1.8-1.7-.7-3.3-1.3-4.9-1.9 1.1-1.9 2.2-3.8 3.1-5.8 3.5 1.2 6.8 2.2 10 3-1.1 2.3-2.4 4.5-3.7 6.5m-12.2.6c1.8.6 3.8 1.3 5.7 2.2 1.2.5 2.3 1 3.5 1.4-1.3 1.7-2.8 3.3-4.3 4.8-3.1-1.2-6.2-2.3-9.3-3 1.5-1.8 3-3.6 4.4-5.4m12-41.3c5.2-2.9 11.1-2.7 15.8.4 4.2 2.8 6.5 6.7 7.3 12-5-.4-10.2-.6-15.5-.6-5.5 0-10.9.3-16 .7.4-5.1 3.5-9.8 8.4-12.5M50 47.5h2.1c1 0 2 0 3.1.1 3.6.1 7.2.3 10.6.6-.2 4.8-1 9.5-2.5 14.1-3.2 0-6.5-.3-10-.9-1.6-.3-3.2-.6-4.9-1-3.2-.7-6.6-1.7-10.2-3-.1 0-.2-.1-.3-.1-1.5-.5-2.9-1-4.4-1.4-9.6-2.8-18.9-3.5-26.7-2 10.3-4.1 26.1-6.4 43.2-6.4M8.2 69.7c4.2-.5 10.1-.7 17.2.9-1.5 1.9-3.2 3.8-5 5.5-3.3-.5-6.5-.8-9.6-.7-1-1.8-1.9-3.7-2.6-5.7m9.5 15.2c-1.1-1.2-2.2-2.4-3.2-3.8-.2-.3-.4-.5-.6-.8.5 0 1 0 1.5.1 2 .2 4.2.4 6.5.9 2.8.6 6 1.5 9.3 2.7-2.5 2.1-5.3 4.1-8.2 5.8-1.8-1.4-3.6-3.1-5.3-4.9m9.9 8c3.2-2 6.1-4.3 8.8-6.8 2.7 1.2 5.3 2.2 8 2.9-3 2.6-6.3 5.1-10 7.1-2.4-.8-4.7-1.9-6.8-3.2m13.1 5.2c3.5-2.3 6.6-5 9.4-7.5 2.7.5 5.3.9 7.9 1.1-3.2 3-6.3 5.4-9.4 7.4-2.6-.2-5.3-.5-7.9-1m17.1.2c2.4-1.9 4.7-4.1 7.2-6.6 3.6-.1 7.2-.6 10.8-1.3-5.3 4-11.5 6.7-18 7.9m28.9-19.1c-1.1 1.6-2.3 3.1-3.5 4.5-4.4 1.2-8.8 2.2-13.2 2.7 2.1-2.4 3.9-4.9 5.6-7.5 4.4-.7 8.8-1.7 13.1-3-.7 1.2-1.3 2.2-2 3.3m-7.8-5.9c1.6-3.1 3-6.2 4.1-9.3 3.7-1.2 7.4-2.6 11.3-4.3-.5 3.5-1.5 6.9-2.7 10.2-4.2 1.4-8.4 2.5-12.7 3.4"
id="path18"
style="fill:#000000" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
app/assets/images/ofn-o.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300.8" enable-background="new 0 0 300 300.8"><path fill="#808285" d="M150 300.8c-78.3 0-144.2-61.1-150-139.1-.2-2.3 1.5-4.3 3.8-4.4 2.3-.2 4.3 1.5 4.4 3.8C13.7 234.8 76 292.6 150 292.6c74 0 136.3-57.7 141.8-131.4.2-2.3 2.1-4 4.4-3.8 2.3.2 4 2.1 3.8 4.4-5.8 77.9-71.7 139-150 139zm145.9-157.3c-2.1 0-4-1.7-4.1-3.8C286.3 66 224 8.3 150 8.3 76 8.3 13.7 66 8.2 139.7c-.2 2.3-2.1 4-4.4 3.8-2.3-.2-4-2.2-3.8-4.4C5.8 61.1 71.7 0 150 0s144.2 61.1 150 139.1c.2 2.3-1.5 4.3-3.8 4.4h-.3z"/></svg>

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,840 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="265 892.8 550 134.3" enable-background="new 265 892.8 550 134.3" xml:space="preserve">
<g id="Layer_1_1_" display="none">
<g display="inline">
<text transform="matrix(0.9994 3.560383e-02 -3.560383e-02 0.9994 1023.0334 999.8911)" font-family="'LondrinaSketch-Regular'" font-size="32.2299" letter-spacing="1">BETA</text>
<g>
<g>
<path fill="#444345" d="M156.5,1047.3v-20.9c0-2.3-2.1-4-4.4-4h-33.4c-2.4,0-4.6,1.6-4.6,4v20.9c0,2.3,2.4,4.2,4.6,4.2h33.4
C154.4,1051.4,156.5,1049.6,156.5,1047.3z M118.8,1026.3h33.8v21.3h-33.8V1026.3z"/>
<path fill="#444345" d="M197.5,895.5c-8.4,16.7-11.9,18.9-11.9,25.8c0,6.6,5.6,12.2,12.3,12.2c6.6,0,12.3-5.4,12.3-12.2
c0-7-3.1-10.9-11.9-25.8C198,895.1,197.7,895.1,197.5,895.5z M194.2,921.1c0,2.2-1.3,3-2.5,3c-1.5,0-2.5-1.1-2.5-2.6
c0-4.8,2.4-8,4.4-10.8c0.7-0.9,1.3-1.7,1.7-2.5C195.4,907.9,194.2,917.1,194.2,921.1z"/>
<path fill="#444345" d="M92.5,1032.2c-2.5-1.6-7.5-4.6-7.5-4.6s0,0,0,6.3c0,6.3,10.6,8.6,10.6,8.6
C95.4,1039.5,95.1,1033.8,92.5,1032.2z"/>
<path fill="#444345" d="M92.5,1043.5c-2.5-1.6-7.5-4.6-7.5-4.6s0,0,0,6.3c0,6.3,10.6,8.6,10.6,8.6
C95.4,1050.9,95.1,1045.2,92.5,1043.5z"/>
<path fill="#444345" d="M95.5,1065.2c-0.2-3-0.4-8.6-2.9-10.3c-2.5-1.6-7.7-4.6-7.7-4.6s0,0,0,6.3
C85,1062.9,95.5,1065.2,95.5,1065.2z"/>
<path fill="#444345" d="M99.1,1042.5c0,0,11-2.4,11-8.6c0-6.3,0-6.3,0-6.3s-6.2,3-8.7,4.6C98.8,1033.8,99.3,1039.5,99.1,1042.5z
"/>
<path fill="#444345" d="M99.1,1053.8c0,0,11-2.3,11-8.6c0-6.2,0-6.3,0-6.3s-6.2,3-8.7,4.6C98.8,1045.2,99.3,1050.9,99.1,1053.8z
"/>
<path fill="#444345" d="M110.1,1056.6c0-6.3,0-6.3,0-6.3s-6.1,2.9-8.6,4.6c-2.5,1.6-2.4,7.3-2.5,10.3
C99,1065.2,110.1,1062.9,110.1,1056.6z"/>
<path fill="#444345" d="M101.1,1025.9c0-2.9-0.7-6.6-4-10.3c0,0-3.9,4.8-3.9,9.5c0,3.1,1.7,5.7,3.9,8.4
C97.1,1033.7,101.1,1029,101.1,1025.9z"/>
<path fill="#444345" d="M84.3,851.2c0.8,0,1.5-0.1,2.2-0.4c1.6,1.5,3.7,2.2,5.8,2.2c2.1,0,4.2-0.8,5.8-2.2
c0.7,0.3,1.5,0.4,2.2,0.4c3.5,0,6.3-2.8,6.3-6.3s-2.8-6.3-6.3-6.3c-0.3,0-0.6,0-0.9,0.1c-1.6-2.4-4.2-3.7-7.1-3.7
c-2.9,0-5.5,1.3-7.1,3.7c-0.3,0-0.6-0.1-0.9-0.1c-3.5,0-6.3,2.8-6.3,6.3C78.2,848.4,81,851.2,84.3,851.2z"/>
<path fill="#444345" d="M94,862c0,0.9,0.8,1.7,1.8,1.7c0.9,0,1.7-0.8,1.7-1.7s-1.7-3.6-1.7-3.6S94,860.9,94,862z"/>
<path fill="#444345" d="M99.1,858.3c0.9,0,1.8-0.8,1.8-1.7s-1.8-3.6-1.8-3.6s-1.7,2.6-1.7,3.6C97.3,857.5,98.2,858.3,99.1,858.3
z"/>
<path fill="#444345" d="M92,859.2c0-0.9-1.7-3.6-1.7-3.6s-1.8,2.6-1.8,3.6s0.8,1.7,1.8,1.7C91.2,861,92,860.2,92,859.2z"/>
<path fill="#444345" d="M8.8,1010.5c0,6.4,5.2,11.7,11.7,11.7s11.7-5.2,11.7-11.7s-5.2-11.7-11.7-11.7S8.8,1004,8.8,1010.5z
M29.1,1010.5c0,4.8-4,8.8-8.7,8.8c-4.8,0-8.8-4-8.8-8.8c0-4.8,4-8.8,8.8-8.8S29.1,1005.7,29.1,1010.5z"/>
<polygon fill="#444345" points="16,1014.9 22,1012 24.8,1006.1 19,1009.1 "/>
<path fill="#444345" d="M113.9,866.3c0-0.1-0.1-0.2-0.1-0.3L113.9,866.3L113.9,866.3z"/>
<path fill="#444345" d="M110.6,876.1c7.1-2,14.4,3.1,15.4,10.5c0,0.3,0.1,0.6,0.1,0.9c0.3,0,0.6,0.1,0.9,0.1
c6-0.2,12.1-0.2,18.1-0.5c-2.5,0.7-4.4,3-4.4,5.7c0,3.3,2.7,6,6,6s6-2.7,6-6c0-3-2.2-5.4-5-5.9c4.4-0.3,3.6-0.2,4.4-4.2
c0.4-1.9,0.6-3.9,0.8-5.8c0.2-1.8-0.3-2.2-2.1-2.4c-2.7-0.1-5.1-0.2-7.9-0.3c-0.1,0-0.2-0.1-0.2-0.2c0-2,0.5-6.8,0.5-6.8
s-0.9-0.8-1.9-0.1c0,2.4,0,4.6,0,7.1c0,0-3.6-0.1-8.2-0.2c-0.2,0-0.9-0.4-1.3-1.1c-0.7-1.9-2.4-5.6-4.4-11.4
c0,0-1.1-2.4-3.8-2.4c-2.1,0-13.4,0-13.4,0v14.2c0,0-0.8,0.4-1.5,0.5C108.2,876.1,108.7,876.5,110.6,876.1z M149.8,892.9
c0,1.7-1.5,3.1-3.1,3.1c-1.7,0-3.1-1.5-3.1-3.1c0-1.7,1.5-3.1,3.1-3.1C148.4,889.8,149.8,891.1,149.8,892.9z M113.8,866v-2.7h11
l3.5,10.5l0.1,0.1c-4.7-0.1-10.1,0-14.6,0.2V866z"/>
<path fill="#444345" d="M113.3,877.3c-6,0-10.8,4.8-10.8,10.8c0,6,4.8,10.8,10.8,10.8c5.9,0,10.8-4.8,10.8-10.8
C124.1,882.1,119.3,877.3,113.3,877.3z M113.3,894.1c-3.3,0-6-2.7-6-6c0-3.3,2.7-6,6-6s6,2.7,6,6
C119.3,891.4,116.6,894.1,113.3,894.1z"/>
<path fill="#444345" d="M87.2,1074.3l-7.9-4.2c0.5-1.7,0.5-3.7,0-5.6c-1.6-5.5-7.9-8.9-13.4-7.3c-5.6,1.6-8.8,7.3-7.1,12.8
c1.6,5.5,7.9,8.9,13.4,7.3c1.8-0.6,3.5-1.5,4.6-2.8l7.9,4.4c0.8,0.4,1.7,0.1,2.2-0.7l1.1-1.9C88.4,1075.5,88,1074.8,87.2,1074.3
z M70.8,1073.2c-3.2,0.9-7-1.1-7.9-4.2c-0.9-3.2,0.9-6.6,4.2-7.5c3.2-0.9,7,1.1,7.9,4.2C75.9,1069,74.1,1072.3,70.8,1073.2z"/>
<path fill="#444345" d="M42.4,987.3c6-6.8,2.7-11.7,1.7-13.6c-0.9-1.9-1.3-4.7-1.3-4.7l0.2-0.9l0.2-1.1
c-1.3-0.4-2.7,0.3-2.7,0.3c0.3,2.1-0.3,4.4-0.6,5.3c-0.4,0.9-1.6,2.8-2.2,4c-0.6,1.1-2.1,4.7-9.9,8.1
c-7.9,3.4-18.3,0.3-18.3,0.3c-2.7-0.7-4.9,0.4-4.9,0.4L4,986.3l0.1,0.8l-0.3,0.5l0.1,0.6c7.7,11.9,23.6,7.9,23.6,7.9
S36.4,994,42.4,987.3z"/>
<path fill="#444345" d="M215.2,1059.3c3.5-0.1,6.8-0.7,10.1-2c1.1-0.5,1.5-1.3,1.6-2.5c0.1-0.7,0.1-1.3,0.1-1.9
c0-0.1,0-0.1,0-0.2c0-0.1-0.3-0.4-0.7-0.4c-1.6-0.1-1.9-0.5-2.4-2c-0.4-1.1-0.7-2.1-1.1-3.1c3.9-0.9,3.4-3.7,2-7.3
c-1.1,1.6-0.3,2.1-2.1,2.5c-1.7,0.4-3,1.3-3.8,3c-0.1,0.3-0.3,0.7-0.5,1.1c-0.2-2,0.7-3.2,2.4-4.7c-0.8-0.8-4-0.4-4.8-0.9
c-3.1-2.2-17.5-4.8-26.5,2c-0.5-0.5-0.9-0.9-1.5-1.3c2.1-0.9,2.9-2,2.5-3.7c-0.3-1.3-1.3-2-2.4-1.9c-1.9,0.1-2.6,0.9-2.9,4.2
c-0.7-0.7-1.1-1.1-1.9-1.9c0,0.6-0.2,1.1-0.1,1.5c0.3,0.9,1.1,1.5,1.9,1.8c0.7,0.1,1.1,0.5,1.3,1.1c0.2,0.4,0.4,0.9,0.8,1.1
c0.9,0.9,1.1,2.1,1.1,3.5c0,3,0.1,6,0.5,9c0.4,3.2,1.1,6.3,2.6,9.2c0.5,0.9,1.1,0.9,1.9,0.8c0.3-0.1,0.6-0.8,0.6-1.1
c0.2-2.4,1.3-4.4,2.4-6.4c4.2,1.3,8.3,1.5,12.5,1.3c0.2,0,0.6,0.4,0.8,0.7c0.8,1.5,1.5,3.2,2.2,4.8c0.4,0.9,1.3,0.9,2,0.8
c0.2-0.1,0.3-0.9,0.3-1.3c0-1.7,0-3.6,0-5.3c0.2-0.1,0.3-0.1,0.3-0.2C214.7,1059.3,215.1,1059.3,215.2,1059.3z M187.2,1039.8
c-0.5-1.1-0.2-1.9,0.6-2c0.5-0.1,1.1-0.1,1.1,0.6C189.1,1039.2,188.5,1039.7,187.2,1039.8z"/>
<path fill="#444345" d="M33.5,924.2c6.6-0.6,8.9-3.9,10.8-10.3c1.1-3.9,1.3-7.7,1.5-11.8c-0.3-3.3-0.3-6.6-0.7-9.9
c-0.7-4.6-1.8-9.3-4-13.4c-1.7-3.3-2.2-5.3-5.9-5.9c-4-0.5-8.4,1-10.1,5.6c-0.5,1.3-1.1,2.4-1.3,3.7c-0.7,2.8-2.4,5-4.4,7
c-5.8,5.3-7.7,12.1-6.4,19.6C14.5,918.6,23.5,925.1,33.5,924.2z M21.2,893.3c3.5-3.3,6-6.8,7.1-11.5c0.2-0.9,0.7-1.8,1.1-2.6
c1.3-2.3,4.2-2.7,6.1-0.8c0.8,0.9,1.3,1.9,1.7,2.9c2.8,6.6,4,13.7,4,19.9c0,4.7-0.3,8.4-1.5,11.9c-1.7,5-5.3,7.5-10.1,7
c-4-0.4-7.3-2.4-9.9-5.5C15.2,908.4,15.4,898.6,21.2,893.3z"/>
<path fill="#444345" d="M29.5,917.1c3.2,0.3,5.6-0.7,7.1-3.6c2.8-5.6,3-11.3,1.1-17.2c-0.4-1.3-1.3-2.2-2.5-2.7
c-3.5-1.5-7.1-1.5-10.5-0.1c-1.6,0.8-3.2,1.8-3.9,3.6c-0.4,0.9-0.3,1.6,0.7,2.1c1.5,0.8,3,1.5,4.6,2.4c0.5,0.3,0.9,0.7,1.3,0.9
c0,0.1-0.1,0.3-0.2,0.4c-0.4-0.1-0.8-0.1-1.1-0.2c-1.7-0.5-3.5-1.1-5.2-1.5c-0.9-0.3-1.5,0.1-1.7,0.9c-0.1,0.4-0.2,0.8-0.2,1.1
C17.9,910,22.8,916.4,29.5,917.1z"/>
<path fill="#444345" d="M30.6,889c0.9,0.3,1.9,0.5,2.9,0.7c1.9-0.1,2.7-0.6,2.7-2.5c0-1.3-0.3-2.8-0.7-4.2c-0.3-1.1-1.1-2-2.4-2
c-1.3-0.1-2.5,0.5-3,1.7c-0.5,1.1-0.9,2.4-1.1,3.8C28.7,887.8,29.1,888.5,30.6,889z"/>
<path fill="#444345" d="M56.9,983.4c-0.4,0.1-0.9-0.1-0.9-0.5c0,0-0.5-1.3-2-2.9c-0.4-0.4-0.8-0.7-1.1-0.9
c-0.6-0.5-1.3-0.9-1.8-1.6c0.9,8.1,4.4,14,8.3,14c4.7,0,8.6-8.4,8.6-18.9s-4-18.9-8.7-18.9c-3.1,0-5.8,3.7-7.3,9.1
c0.6,0.9,1.1,1.3,1.9,1.8c0.4,0.3,0.9,0.7,1.3,1.1c1.9,1.8,2.4,3.5,2.4,3.6s0,0.1,0,0.2c0,0.3-0.2,0.6-0.6,0.7s-0.9-0.1-0.9-0.5
c0,0-0.5-1.3-2-2.9c-0.4-0.4-0.8-0.7-1.1-0.9c-0.5-0.3-0.9-0.7-1.3-1.1c-0.2,0.9-0.4,1.8-0.5,2.8c0.7,2.4,1.6,3.1,2.8,4
c0.4,0.3,0.9,0.7,1.3,1.1c1.9,1.8,2.4,3.5,2.4,3.6s0,0.1,0,0.2c0,0.3-0.2,0.6-0.6,0.7s-0.9-0.1-0.9-0.5c0,0-0.5-1.3-2-2.9
c-0.4-0.4-0.8-0.7-1.1-0.9c-0.7-0.5-1.5-1.1-2-1.9c0,0.6,0,1.1,0,1.7c0.7,3.5,1.7,4.4,3.1,5.3c0.4,0.3,0.9,0.7,1.3,1.1
c1.9,1.8,2.4,3.5,2.4,3.6c0,0.1,0,0.1,0,0.2C57.5,983,57.3,983.3,56.9,983.4z"/>
<path fill="#444345" d="M196.9,877c1.6,1.8,3.6,3.6,6,3.8c1.7,0.3,3.9-0.9,5.2-0.9c2.8,0,2.2,0.7,5.2,0.7c2.9,0,8.5-7,9.9-14.2
c0.3-1.8,0-4.9-1.3-7.9c-1.6-3.5-6.4-4.8-9.5-4.2c-0.8,0.1-2.5,0.5-3.9,0.7c0.3-0.9,0.9-2.6,2.6-3.5c0.5-0.3,0.7-0.9,0.4-1.3
c-0.3-0.5-0.9-0.7-1.3-0.4c-2.7,1.5-3.6,4.2-3.8,5.4c-1.3-0.3-4.4-0.8-5.8-0.8c-1.7,0.1-3.4,0.6-4.9,1.7c-1.3,1.1-2,2.5-2.6,4
c-0.8,2.2-1.1,4.4-0.8,6.8C192.8,870.8,194.4,874.1,196.9,877z M202.8,858.9c1.5,0,2.7,1.1,2.7,2.5c0,1.8-1.3,3.3-2.8,3.3
c-1.1,0-2.1-1.5-2.1-3.2C200.8,860,201.5,858.9,202.8,858.9z"/>
<path fill="#444345" d="M204.7,852.3c1.1,0.1,2.4,0.2,2.9-0.9c0.6-1.1-0.3-2.2-1.1-3.1c-1.8-1.9-4.6-2.3-7.7-0.9
c0.4,0.7,0.8,1.3,1.1,1.8C200.9,851,202.6,852,204.7,852.3z"/>
<path fill="#444345" d="M133.7,858.3c1.9-4,4.6-7.1,4.6-7.1c4,1.5,10.8,3.2,15.6-0.2c6.4-4.6,5.8-14.6,15-19.5
c2.1-1.1-18.1-5.9-28.7,0.2c-7.9,4.5-7.3,12-7.1,14.6c10.1-12,25.2-11.4,25.2-11.4s-21.4,7.4-27.7,22.2
C130.2,858.1,133.1,859.6,133.7,858.3z"/>
<path fill="#444345" d="M212,1007c4.8-9.9-0.6-17-2.7-19.6c-2.1,18.9-17.9,28.5-17.9,28.5s16.7-21.8,13.2-41
c-0.3-1.5-4.2-1.1-3.9,0.7c0.8,5.4,0.2,10.3,0.2,10.3c-5,1.1-13,4-15.8,10.7c-3.5,8.9,4,18.7-2,29.9
C181.8,1029.2,205.5,1020.4,212,1007z"/>
<path fill="#444345" d="M37.2,932.9c-2,1.5-1.6,5.4-0.1,7.5c1.5,1.9,5.3,3.4,7.3,1.8c0.4-0.3,1.6-1.1,1.6-1.1
c2.2,1.7,3.6,0,4.6,1.3c1.1,1.5,3.8,4.7,4.6,5.8c0.9,1.1,2.4,1.9,3.2,1.3c0.8-0.6,3.5-2.5,4.6-3.3c1.1-0.8,1.1-1.8,0.5-2.6
c-0.6-0.8-2.2-0.6-3-1.5c-0.8-0.9-3.1-3.8-3.8-4.7c-0.9-1.3-0.1-2.7,1.6-3.4c11.8-4.6,16,2.3,19.7-0.5
c2.8-2.1-0.3-11.2-6.6-19.3s-14.6-13.4-17.4-11.1C49.5,906.8,61,914.9,37.2,932.9z M57.2,907.8c0.7-0.5,6.4,2.8,11.5,9.1
c4.9,6.3,6.3,12.1,5.6,12.6c-0.7,0.5-6.4-2-11.4-8.3C57.9,914.9,56.6,908.3,57.2,907.8z"/>
<path fill="#444345" d="M15,980.9c8.2,0,15-3.9,15-5.9c0,0,0-0.6,0-6.2c0-5.7-10.3-10.3-10.3-14.4c0-4,10.3-8.7,10.3-14.4
c0-5.7,0-6.2,0-6.2c0-2.1-6.8-5.9-15-5.9s-15,3.8-15,5.8c0,0,0,0.6,0,6.2c0,5.7,10.3,10.3,10.3,14.4c0,4-10.3,8.7-10.3,14.4
c0,5.7,0,6.2,0,6.2C0,977.1,6.8,980.9,15,980.9z M3.5,934.1c1.8-1.1,5.3-2.9,10.9-2.9s10.6,2.9,10.6,2.9
c0.4,0.2,1.8,1.1,0.9,1.6c-2.2,1.3-6.6,2.7-11.6,2.7s-9.3-1.5-11.5-2.8C1.8,935,3.5,934.1,3.5,934.1z M2.9,968.8
c0-1.7,2.7-4.4,4.7-6.4c2.8-2.7,5.4-4.7,5.4-7.9c0-3.2-2.7-5.2-5.5-7.9c-2-2-4.8-4.7-4.8-6.4l-0.1-2.6c2.7,1.5,7.1,2.9,11.7,2.9
c4.7,0,9.1-1.3,11.8-2.9l-0.1,2.6c0,1.7-2.8,4.4-4.8,6.4c-2.8,2.7-5.4,4.7-5.4,7.9c0,3.2,2.2,5.2,5,7.9c2,2,4.4,4.7,4.4,6.4v3.5
c-1.9-1.3-9.5-2-9.5-5.9c0-1.9-2.7-1.9-2.7,0c0,3.9-8.1,4.6-10.1,5.9v-3.5H2.9z"/>
<path fill="#444345" d="M210.9,900.8c0,11,8.9,19.9,19.9,19.9c11,0,19.9-8.9,19.9-19.9c0-10.9-8.9-19.9-19.9-19.9
C219.8,880.9,210.9,889.8,210.9,900.8z M236.2,884.7c6.7,2.2,11.5,8.6,11.5,16c0,3.9-1.3,7.5-3.5,10.3c-0.6-0.5-1.3-1.8-0.7-3.2
c0.6-1.3,0.8-4.6,0.7-5.8c-0.1-1.3-0.8-4.2-2.5-4.2c-1.7,0-2.9-0.6-4-2.7c-2.1-4.2,4-5.1,1.8-7.5c-0.6-0.7-3.7,2.7-4.2-1.8
C235.5,885.7,235.8,885.1,236.2,884.7z M240.2,914.9c-2.7,1.7-5.9,2.8-9.4,2.8c-1.8,0-3.7-0.3-5.3-0.9c0.9-0.6,1.1-1.3,2-1.3
c1.1,0,1.9-0.4,3.1-0.7c1.1-0.2,3-1.3,4.6-1.5C236.7,913.3,239.4,913.5,240.2,914.9z M228.4,884c-0.4,0.8-1.5,1.1-2.1,1.7
c-1.5,1.3-2,1.1-2.8,2.3c-0.8,1.3-3.3,3-3.3,3.9s1.3,1.9,1.8,1.7c0.7-0.2,2.4-0.2,3.3,0.2c0.9,0.4,8.1,0.7,5.8,6.8
c-0.7,1.9-3.9,1.5-4.7,4.7c-0.1,0.5-0.6,2.4-0.6,3.1c-0.1,0.9,0.7,4.8-0.3,4.8s-3.6-3.4-3.6-4c0-0.6-0.7-2.8-0.7-4.6
s-3.2-1.8-3.2-4.2c0-2.2,1.7-3.3,1.3-4.4c-0.4-1.1-3.4-1.1-4.6-1.3C217.1,889,222.2,884.9,228.4,884z"/>
<path fill="#444345" d="M135.7,1029.6c-4,0-7.3,3.3-7.3,7.3s3.3,7.3,7.3,7.3c4,0,7.3-3.3,7.3-7.3
C142.9,1032.9,139.7,1029.6,135.7,1029.6z M132.5,1040c0-0.2-0.3-0.9-0.3-1.6c0-0.7-1.1-0.7-1.1-1.5c0-0.8,0.7-1.3,0.5-1.6
c-0.1-0.4-1.3-0.4-1.6-0.5c0.8-2,2.7-3.6,4.9-4c-0.2,0.3-0.6,0.4-0.8,0.6c-0.5,0.5-0.8,0.4-1.1,0.9s-1.1,1.1-1.1,1.5
c0,0.3,0.5,0.7,0.7,0.7c0.2-0.1,0.9-0.1,1.1,0.1c0.4,0.1,3,0.3,2.1,2.4c-0.3,0.7-1.5,0.6-1.7,1.7c-0.1,0.2-0.2,0.9-0.2,1.1
c0,0.4,0.3,1.7-0.1,1.7C133.5,1041.4,132.5,1040.2,132.5,1040z M135.7,1043.1c-0.7,0-1.3-0.1-1.9-0.3c0.4-0.2,0.4-0.5,0.8-0.5
s0.7-0.2,1.1-0.3c0.4-0.1,1.1-0.5,1.6-0.5c0.5,0,1.5,0,1.8,0.5C138.1,1042.7,137,1043.1,135.7,1043.1z M140.7,1040.6
c-0.2-0.2-0.5-0.7-0.2-1.1c0.2-0.5,0.3-1.6,0.2-2.1c-0.1-0.5-0.3-1.5-0.9-1.5s-1.1-0.2-1.5-0.9c-0.8-1.5,1.5-1.8,0.7-2.7
c-0.2-0.3-1.3,0.9-1.5-0.7c0-0.1,0.1-0.3,0.3-0.5c2.4,0.9,4.2,3.2,4.2,5.9C141.9,1038.4,141.4,1039.6,140.7,1040.6z"/>
<path fill="#444345" d="M44.9,1061.1c0,0.3,0,0.5,0,0.8c0.1,1.7,1.5,3.2,3.4,3.2c1.7,0,3.2-1.3,3.4-3c0.1-0.3,0.1-0.6,0.1-0.9
c0-0.9,0.4-1.3,1.1-1.5c6.4-1.5,11.4-6.6,12.4-13c0.1-0.8,0.1-1.5,0.4-2.1c0.6-0.5,1.5-0.9,1.7-1.5c0.2-0.5-0.4-1.3-0.6-2.1
c1.1-1.1,1.1-1.6-0.2-2.9c1.3-1.3,1.3-1.9-0.1-3.2c0.9-0.4,1.3-1.1,0.9-2c-0.3-0.6-1.1-0.9-1.6-1.3c-0.1,0.1-0.1,0.2-0.2,0.2
c-0.1-0.6-0.1-1.1-0.4-1.5c-0.4-0.5-0.9-1.1-1.5-1.1c-0.3-0.1-0.9,0.6-1.1,0.9c-0.7,1.3-1.1,2.8-1.7,4.2s-1.3,2.7-2.2,3.9
c-2.7,3.4-6.3,4.4-10.4,3.6c-4-0.9-6.8-3.3-7.9-7.3c-0.2-0.8-0.2-1.5-0.4-2.3c0.9-0.6,2.1-0.9,1.6-2.2c-0.2-0.7-1.1-1.1-2-1.7
c0-0.5,0.2-1.5-0.9-1.9c-0.9-0.4-1.6,0.2-2.2,1.1c-0.7-0.8-1.3-1.6-2.4-1.1c-0.6,0.4-0.9,1.3-1.5,2.2c-0.7,0-1.8-0.1-2,1.3
c-0.1,0.9,0.6,1.5,2.4,2c-1.1,1.3-3,1.3-4.2,2.4c1.1,0.6,2,1.1,3.1,1.7c0.6,0.3,0.8,0.7,0.7,1.3c-0.2,2.1-0.3,4.4-0.5,6.4
c-0.8,9.2,5.5,14.3,11.5,15.9C44.7,1059.8,45,1060,44.9,1061.1z M35.7,1034.1c-0.3,0-0.7-0.4-1.3-0.8c0.7-0.4,0.9-0.9,1.3-0.9
c0.3,0,0.9,0.6,0.8,0.8C36.3,1033.6,35.9,1034.1,35.7,1034.1z"/>
<path fill="#444345" d="M211.6,940.4h-6.4c-1.1,0-2.7,0.7-3.4,1.6l-8.5,10.9c-0.7,0.9-0.3,0.9,0.9,0.9h34.6c1.1,0,1.6,0,0.9-0.9
l-7.4-11c-0.7-0.9-2.1-1.5-3.3-1.5h-1.6v-3.9h-5.8V940.4z"/>
<path fill="#444345" d="M219.2,930.1l0.5-0.1c1.1-0.2,2-1.1,2.7-2.2c0.7-1.1,0.8-3.6,0.6-4.9c-0.7,2-2.1,2.7-3.7,3.4
c-0.4,0.2-0.9,0.4-1.3,0.5c-0.5,0.2-0.9,0.4-1.5,0.6c-1.5,0.8-2.1,2-2.4,4c-0.2,0.8-0.3,1.6-0.3,2.8c0.8-2,1.6-3,3.3-3.6
C217.8,930.5,218.5,930.3,219.2,930.1z"/>
<path fill="#444345" d="M227,969.3h0.9v-11.9c0-1.1,0-1.6,0-1.6H227h-1.3h-15h-1.3h-11h-4v2.2v11.3h4h2.7v-8
c0,0,0.2,0.3,1.1,0.3h5.2c0,0,0.5-1.1,0.5-0.2v7.9h1.5h1.3h15L227,969.3L227,969.3z M222.2,965.5c0,0.2,0.7,0.9,0.5,0.9h-5.7
c-0.2,0-0.6-0.8-0.6-0.9v-5.7c0-0.2,0.4-0.1,0.6-0.1h5.7c0.2,0-0.5-0.1-0.5,0.1V965.5z"/>
<path fill="#444345" d="M143.1,1056.3c0-0.6-0.5-0.9-1.1-0.9h-13.4c-0.6,0-1.1,0.4-1.1,0.9c0,0.6,0.5,0.9,1.1,0.9h13.4
C142.7,1057.3,143.1,1056.9,143.1,1056.3z"/>
<rect x="131.4" y="1052.5" fill="#444345" width="9.7" height="2.9"/>
<path fill="#444345" d="M117.8,828.2c-4.6,0.8-7.9,4.6-8.2,9.1l8.7-0.5L117.8,828.2z"/>
<path fill="#444345" d="M119.7,839.3l-9.9,0.5c0.9,4.8,5.2,8.4,10.3,8.1c5.5-0.3,9.7-4.9,9.4-10.4c-0.3-5-4.2-9-9.1-9.4l0.5,9.9
C120.9,838.7,120.3,839.2,119.7,839.3z"/>
<path fill="#444345" d="M78.2,866c0.4,0,0.9-0.6,1.3-0.7s0.9-0.6,1.1-0.8l5.5-3.9c0.3-0.2,0.5-0.6,0.5-0.9
c0-0.3-0.2-0.6-0.5-0.8l-5.5-3.8c-0.3-0.2-0.8-0.9-1.1-1.1c-0.5-0.1-0.9-0.7-1.3-0.7H62.5l1.8,12.6H78.2L78.2,866z"/>
<path fill="#444345" d="M41,865.1l5.5,3.8c0.3,0.2,0.8,0.5,1.1,0.7c0.5,0.1,0.9,0.4,1.3,0.4h8.1V890c0,0.5,0.6,0.2,1.1,0.2h2
c0.5,0,0.7,0.3,0.7-0.2v-39.7c0-0.5-0.2-1.6-0.7-1.6h-2c-0.5,0-1.1,1.1-1.1,1.6v9h-8c-0.4,0-0.9,0-1.3,0.1s-0.9,0.3-1.1,0.5
l-5.5,3.8c-0.3,0.2-0.5,0.5-0.5,0.8C40.6,864.7,40.8,864.9,41,865.1z"/>
<path fill="#444345" d="M72.4,874.2v31.6c0,2.2,2.4,4.6,4.6,4.6h15.4c2.2,0,4.2-2.4,4.2-4.6v-31.6c0-2.2-2-3.4-4.2-3.4H77
C74.8,870.8,72.4,872,72.4,874.2z M84.7,908.2c-1.5,0-2.8-0.9-2.8-2s1.3-2,2.8-2s2.8,0.9,2.8,2
C87.5,907.2,86.3,908.2,84.7,908.2z M93.7,875.7v26.1H76.3v-26.1H93.7z"/>
<path fill="#444345" d="M162,850.1c0,13.2,13.8,30.4,13.8,30.4s13.8-17.2,13.8-30.4c0-7.7-6.2-13.8-13.8-13.8
C168.2,836.1,162,842.3,162,850.1z M175.8,842.7c4.2,0,7.5,3.4,7.5,7.5c0,4.2-3.4,7.5-7.5,7.5c-4.2,0-7.5-3.4-7.5-7.5
C168.3,846.1,171.8,842.7,175.8,842.7z"/>
<path fill="#444345" d="M88.9,887.4c0-2.4-1.8-4.2-4.2-4.2s-4.2,1.8-4.2,4.2c0,4,4.2,9.1,4.2,9.1S88.9,891.4,88.9,887.4z
M82.4,887.6c0-1.3,0.9-2.2,2.2-2.2c1.3,0,2.2,0.9,2.2,2.2c0,1.3-0.9,2.2-2.2,2.2C83.5,889.8,82.4,888.8,82.4,887.6z"/>
<path fill="#444345" d="M177.1,885.5l-2.4,2.1l-2.4-2.1c-3.4-3.1-9-3.1-12.4,0c-3.9,3.6-3.9,9.3,0,12.8l14.7,13.5l14.7-13.5
c3.9-3.6,3.9-9.3,0-12.8C186.1,882.4,180.4,882.4,177.1,885.5z"/>
<path fill="#444345" d="M237.1,987.3l-3.3,2.8c-0.3,0.2-0.3,0.7-0.1,0.9l18.9,21.4c0.4,0.5,1.1,0.6,1.7,0.1l2.2-1.8
c0.5-0.5,0.6-1.3,0.1-1.7l-18.7-21.6C237.8,986.9,237.4,986.9,237.1,987.3z"/>
<path fill="#444345" d="M236.1,973.1c-2.9,0.3-6.6,3-8.4,4.2c-2.4,1.6-3.3,2.6-3.5,2.7c-0.7,0.6-0.1,1.9-1.3,3.1
c-1.3,1.1-2.1,0.3-2.9,0.9c-0.4,0.3-1.5,1.1-1.7,1.3c-0.3,0.3-0.4,0.7-0.1,1.1c0,0,2.9,3.2,3.1,3.5c0.2,0.3,0.9,0.5,1.3,0.2
c0.4-0.4,1.5-1.3,1.6-1.5c0.2-0.2-0.1-1.9,0.8-2.7c2.1-1.6,3.9-0.5,6.2,2.2c0.3,0.3,0.7-0.1,0.9-0.2c0.2-0.2,3.3-3,3.5-3.1
c0.2-0.1,0.3-0.4,0.1-0.7c-0.2-0.3-1.1-1.5-1.6-2.1c-4.2-5.4,11.2-9,8.9-9.1C241.6,973,236.7,973,236.1,973.1z"/>
<path fill="#444345" d="M224.1,1010.9l2.1,2.1c0.5,0.5,1.3,0.3,1.7-0.2l11.1-10.9l-3.4-3.9l-11.6,11.2
C223.7,1009.6,223.7,1010.4,224.1,1010.9z"/>
<path fill="#444345" d="M247.9,985.9c-0.2,0.3-0.4,0.6-0.7,0.9l-3.1,3.2l3.1,3.6l3.8-3.6c0.2-0.2,0.6-0.5,0.9-0.7
c0.1,0,0.1,0,0.2-0.1c0.3-0.1,0.6,0,0.9,0.2c0.7,0.5,1.3,0.9,1.9,1.5c0.5,0.4,0.9,0.4,1.3-0.1c0.6-0.7,1.1-1.3,1.7-1.9
c0.9-1.1,1.9-2.1,2.9-3.2c1.6-1.7,2.4-3.7,2.4-5.8c0-0.8,0-1.5-0.2-2.4c-0.3-2-1.3-3-3.3-3.3c-0.5-0.1-1.1-0.2-1.5-0.1
c-0.6,0-1.3,0-1.8,0.1c-1.5,0.1-3,0.5-4.2,1.6c-0.9,0.9-1.9,1.8-2.9,2.7c-1.1,1.1-2.2,2-3.3,3.1c-0.3,0.3-0.4,0.6,0,0.9
c0.7,0.7,1.3,1.5,1.9,2.1c0.3,0.3,0.4,0.5,0.2,0.9C248,985.6,247.9,985.6,247.9,985.9z M250.3,985.4l4.7-4.4
c0.1-0.1,0.4-0.1,0.5,0c0.1,0.1,0.1,0.3,0,0.5l-4.2,5c-0.1,0.1-0.2-0.7-0.3,0.3l0,0c-0.1,0-0.2-0.2-0.2-0.2l-0.6-0.6
c-0.1-0.1-0.1-0.2-0.1-0.3C250.2,985.6,250.3,985.4,250.3,985.4z"/>
<path fill="#444345" d="M237.6,934c0,0.8-0.1,1.5,0.6,1.5h10.1v2.5c0,0.6-0.4,0.4,0.2,0.4h4c0.6,0,0.7,0.2,0.7-0.4v-2.5h9.5
c0.8,0,1.1-0.9,1.1-1.5v-5.2h-26.1L237.6,934L237.6,934z"/>
<path fill="#444345" d="M251.2,948.8V947c0-0.3-0.2-0.6-0.5-0.6s-0.5,0.3-0.5,0.6v1.7c-2.9,0.3-4.8,2.5-4.8,5.1
c0,2.9,2.2,5.2,5.1,5.2c2.9,0,5.2-2.4,5.2-5.2C255.7,951.3,254.1,949.1,251.2,948.8z"/>
<path fill="#444345" d="M261.5,939.4h-22c-1.1,0-2,1.1-2.2,2.2l-2.6,22.8c-0.1,0.6,0.1,1.5,0.6,2c0.4,0.5,1.1,0.9,1.6,0.9h27.3
c0.7,0,1.3-0.5,1.6-0.9c0.4-0.5,0.6-1.1,0.6-1.8l-2.6-23C263.5,940.6,262.5,939.4,261.5,939.4z M250.4,963c-5,0-9.1-4-9.1-9.1
s4-9.1,9.1-9.1c5,0,9.1,4,9.1,9.1S255.4,963,250.4,963z"/>
<path fill="#444345" d="M155,1069.4v0.4h11.3c0.6,0,1.1-0.9,1.1-1.5c0-0.6-0.5-1.5-1.1-1.5H155h-1.3h-2.4c-3,0-5.4,1.9-6.2,4.8
h-7.9v2.9h7.9c0.8,2.9,3.2,5.8,6.2,5.8h2.4l0,0h12.6c0.6,0,1.1-0.9,1.1-1.5s-0.5-1.5-1.1-1.5H155c-0.4,0-0.7-0.1-0.7-0.5
c0-0.4,0.3-0.5,0.7-0.5h11.3c0.6,0,1.1-0.4,1.1-0.9c0-0.6-0.5-0.9-1.1-0.9H155l0,0c-0.4,0-0.7-0.6-0.7-0.9
c0-0.4,0.3-0.9,0.7-0.9h11.3c0.6,0,1.1-0.4,1.1-0.9c0-0.6-0.5-0.9-1.1-0.9h-10.7v-0.4c-0.9,0-0.9-0.1-0.9-0.5
C154.6,1069.5,154.6,1069.4,155,1069.4z"/>
<path fill="#444345" d="M105.5,1076.6h27.3c1.3,0,3.3-0.7,3.3-1.6v-3.3c0-0.9-2.1-1.8-3.3-1.8h-27.3c-1.8,0-3.3,1.5-3.3,3.4
C102.4,1075,103.9,1076.6,105.5,1076.6z"/>
<path fill="#444345" d="M165.8,1086.7c0-1.8-1.5-3.4-3.4-3.4h-28.2c-1.3,0-1.9,0.6-2.9,1.6v3.4c0.9,0.9,1.6,1.7,2.9,1.7h28.2
C164.3,1090.1,165.8,1088.6,165.8,1086.7z"/>
<path fill="#444345" d="M131.4,1088.2v-2.9h-4h-5.8H96.6c0,0-2.5,1.1,1.3,2.8c5.7,2.4,10.3,2.8,14.7,3.4
c1.5,0.2,6.6,1.3,9.9-1.5c1.1-1.1,2.4-1.8,3.4-1.8H131.4z"/>
<path fill="#444345" d="M169.3,1059.4l8.2-0.8c-0.1-0.9-0.3-1.8-0.3-2.7c-0.1-2.3-0.2-4.6-0.3-7c-0.1-1.7,0-3.5,0-5.2
c0.1-2,0.2-4.2,0.3-6.2c0.1-1.6,0.2-3.4,0.4-5c0.2-2,0.5-4,0.8-6c0.2-1.5,0.5-3.2,0.7-4.7c0.1-0.5-0.2-0.9-0.7-0.9
c-0.3-0.1-0.6-0.1-0.9-0.1c-4.2,0-8.5,0-12.4,0c0,0,0,0,0,0.1c-0.9,0-1.9,0-2.9,0c-0.6,0-0.7,0-0.7,0.6
c-0.1,0.8-0.2,1.5-0.2,2.2c0,1.5,0,3.1,0.1,4.6c0,1.5,0.1,3.1,0.2,4.6c0.1,1.5,0.2,3.1,0.3,4.6c0.1,1.5,0.2,2.8,0.3,4.2
c0.1,1.9,0.3,3.9,0.5,5.8c0.1,1.6,0.3,3.2,0.4,4.8c0.2,1.5,0.3,3.2,0.5,4.8c0.1,0.8,0.2,1.5,0.3,2.2c0,0.2,0.1,0.4,0.4,0.4
c0.5,0,0.9-0.1,1.5-0.1c0.8-0.1,1.6-0.1,2.4-0.2C168.6,1059.5,168.9,1059.4,169.3,1059.4z M174.8,1023.7c0.7,0,1.1,0.4,1.1,1.1
c0,0.6-0.5,1.1-1.1,1.1c-0.6,0-1.1-0.5-1.1-1.1C173.7,1024.1,174.2,1023.7,174.8,1023.7z"/>
<path fill="#444345" d="M175.7,1082.3c-0.5,1.5,0.9,3.3,2.6,3.3c1.3,0,2.5-0.9,2.9-2.4c0.3-1.3,0.3-2.5,0.1-3.8
c-0.5-2.6-1.1-5.2-1.5-7.7c-0.4-2-0.9-4-1.3-6.1c-0.3-1.5-0.6-3.1-0.7-4.6v-0.1l-5.2,0.5c0.2,0.9,0.4,2,0.6,3
c0.6,3.2,1.1,6.3,1.8,9.4c0.5,1.9,0.9,4,1.3,5.9c0.1,0.4,0,0.9-0.1,1.3C176,1081.3,175.8,1081.8,175.7,1082.3z"/>
<path fill="#444345" d="M85.5,1019.1c1.3,0.1,2.6-0.1,4-0.2c0.1,0,0.1-0.1,0.1-0.2c0.6-1.1-0.1-2.9-1.3-3.4c0-1.1,0.2-2.4,0-3.6
c-0.2-1.5-0.2-3.5-1.1-4.6c-2-2.9-5-6.3-7.5-8.9c-1.7-1.9-3.6-2.2-6.2-2.2c-10.1-0.1-20.1-0.2-30.1-0.3c-3.2,0-4.4,1.3-4.4,4.4
c-0.1,4.9-0.1,9.9-0.2,15c-1.1-0.1-1.3,0.5-1.3,1.3c0,0.4,0,0.8,0,1.3c0,0.7,0.3,1.1,0.9,1.1c0.9,0,1.7,0,2.7,0
c0.9,0.1,1.3-0.3,1.5-1.1c0.9-2.8,3.1-4.4,6-4.4c2.9,0,5.1,1.6,6,4.6c0.3,0.9,0.8,1.1,1.6,1.1c4.8,0,9.7,0.1,14.6,0.2
c0.9,0,1.5-0.4,1.7-1.3c0.9-2.7,3.2-4.4,6-4.4c2.8,0,4.9,1.6,5.9,4.4C84.6,1018.3,85.1,1019.1,85.5,1019.1z M82.8,1007
L82.8,1007l-9.5,0.4c-0.7,0-1.3-0.4-1.3-1.1l0.1-6.8c0-0.7,0.6-1.3,1.3-1.3l3,0.1c0.1,0,0.3,0,0.4,0.1c0.4,0.1,0.6,0.2,6.8,7.3
c0.2,0.2,0.4,0.1,0.4,0.5C84.1,1006.9,83.5,1007,82.8,1007z"/>
<path fill="#444345" d="M48.8,1014.1c-3,0-5.5,2.4-5.5,5.4s2.4,5.5,5.4,5.5s5.5-2.4,5.5-5.4
C54.2,1016.6,51.8,1014.2,48.8,1014.1z"/>
<path fill="#444345" d="M78.6,1014.5c-3,0-5.5,2.4-5.5,5.4c0,3,2.4,5.5,5.4,5.5s5.5-2.4,5.5-5.4
C84.1,1017,81.6,1014.5,78.6,1014.5z"/>
<path fill="#444345" d="M247.8,1026.3c0-0.9-2.4-1.7-10.3-0.7c0,0,1.9-1.6,2.7-1.9c0.8-0.3,4.2-2.4,3.6-5.1
c-0.6-2.7-1.6-1.1-2.9,1.1c-1.1,2.1-2.7,4-4.9,5.3c0,0-0.7-4.2-3.1-4.4c-0.8,0-4,0-7.7,0.4l-0.7,0.1c-0.4,0-0.9,0.1-1.3,0.2
c0,0.1-0.2,0.1-0.2,0.2v4.6c0,0.4-0.1,0.7-0.5,0.7s-0.5-0.3-0.5-0.7v-4.6l0,0c-0.9,0.1-1.3,0.2-1.8,0.3c0,0-7.1,1.1-11.8,2.5
h-0.1c-0.1,0-0.2,0.1-0.3,0.1c-0.3,0.1-0.6,0.2-0.9,0.3c-0.2,0.1-0.4,0.1-0.6,0.2c-0.1,0-0.1,0.1-0.2,0.1
c-0.1,0-0.2,0.1-0.3,0.1l0,0c-0.9,0.4-1.6,0.6-2.4,1.1c0,0-0.8,0.4-0.3,1.5c0.3,0.7,4.2,2.4,12,3.6v-3.5c0-0.4,0.1-0.7,0.5-0.7
s0.5,0.3,0.5,0.7v3.7c0.9,0.1,1.3,0.1,1.7,0.2l0.9,0.1c2.6,0.3,5.1,0.5,9.9,0.6v-2.9c0-0.4,0.1-0.7,0.5-0.7s0.5,0.3,0.5,0.7v2.9
h0.8c1.1,0,1.6,0,2.6-0.1c0,0,2.5,0.2,2.7-4.4c0,0,4.4-0.8,4,4.2c-0.2,3.7,3,3.8,3,1.1c0-2.5-0.7-5.4-5.5-6.4c0,0,3.9,0.5,7,1.1
C247.5,1028.4,247.8,1027.3,247.8,1026.3z"/>
</g>
<g>
<polygon fill="#444345" points="678.1,1020.6 677.4,1020.6 650.5,985.8 642.4,985.8 642.4,1038 654,1038 654,1003.2
653.4,1003.2 680.4,1038 687.7,1038 687.7,987.7 678.1,987.7 "/>
<polygon fill="#444345" points="706.1,1038 731.3,1038 731.3,1028.3 714.8,1028.3 714.8,1015.7 731.3,1015.7 731.3,1007
714.8,1007 714.8,994.4 731.3,994.4 731.3,987.7 706.1,987.7 "/>
<polygon fill="#444345" points="744.8,994.4 755.4,994.4 755.4,1038 764.1,1038 764.1,994.4 776.6,994.4 776.6,987.7
744.8,987.7 "/>
<polygon fill="#444345" points="832.4,1022.5 832.3,1022.5 821.6,985.8 815.8,985.8 805.5,1022.5 805.5,1022.5 795.1,987.7
784.6,987.7 800.9,1038 808.2,1038 817.9,1007 818.1,1007 828.2,1038 835.6,1038 853,987.7 842.4,987.7 "/>
<path fill="#444345" d="M888.7,985.4c-15.2,0-25.3,11.7-25.3,26.9c0,15,9.7,27.1,25.3,27.1c15.6,0,25.3-12,25.3-27.1
C914.1,997.1,904,985.4,888.7,985.4z M888.7,1029.6c-11.1,0-15-9.7-15-17.6c0-8.3,5.6-16.6,15-16.6c9.5,0,15,8.4,15,16.6
C903.7,1019.8,899.8,1029.6,888.7,1029.6z"/>
<path fill="#444345" d="M959.8,1002.7c0-10.9-7.1-15-17.1-15h-14.4v50.2h11.6v-20.3h-0.7l12.5,20.3h12.1l-14.5-21.4
C956.3,1015.5,959.8,1009.1,959.8,1002.7z M940.4,1010.9h-0.5v-16.5h0.6c5.3,0,9.3,1.7,9.3,8
C949.9,1008.7,945.9,1010.9,940.4,1010.9z"/>
<polygon fill="#444345" points="1015.5,987.7 1003.2,987.7 987.4,1008 987.2,1008 987.2,987.7 976.6,987.7 976.6,1038
987.2,1038 987.2,1013.8 987.4,1013.8 1003.7,1038 1016.6,1038 996.1,1010.9 "/>
<path fill="#444345" d="M360.6,873.3c-25,0-41.6,19.1-41.6,44c0,24.7,15.9,44.3,41.6,44.3c25.6,0,41.6-19.6,41.6-44.3
C402.1,892.4,385.6,873.3,360.6,873.3z M360.6,945.5c-18.1,0-24.6-15.9-24.6-28.8c0-13.6,9.2-27.3,24.6-27.3
s24.6,13.7,24.6,27.3C385.2,929.6,378.8,945.5,360.6,945.5z"/>
<path fill="#444345" d="M443.5,876.6h-22.4v83.1h15.4v-31.9h9.3c17.2,0,26.9-8,26.9-25.8C472.6,883,461.1,876.6,443.5,876.6z
M441,915.3h-4.4v-26.1h4c9.2,0,15.4,1.9,15.4,12.8C456,912.9,450.7,915.3,441,915.3z"/>
<polygon fill="#444345" points="491.7,959.7 535.1,959.7 535.1,945.2 508.1,945.2 508.1,923 533.3,923 533.3,908.5 508.1,908.5
508.1,889.2 535.1,889.2 535.1,876.6 491.7,876.6 "/>
<polygon fill="#444345" points="612.4,932.7 612.7,932.7 568.6,872.8 556.4,872.8 556.4,959.7 573.8,959.7 573.8,901.7
573.3,901.7 617.6,961.6 629.8,961.6 629.8,876.6 612.4,876.6 "/>
<polygon fill="#444345" points="695.5,959.7 711.9,959.7 711.9,923 736.1,923 736.1,908.5 711.9,908.5 711.9,889.2 738,889.2
738,876.6 695.5,876.6 "/>
<path fill="#444345" d="M795.8,961.6c25.6,0,41.6-19.6,41.6-44.3c0-24.9-16.5-44-41.6-44s-41.6,19.1-41.6,44
C754.4,942,770.3,961.6,795.8,961.6z M795.8,889.4c15.4,0,24.6,13.7,24.6,27.3c0,13-6.4,28.8-24.6,28.8
c-18.1,0-24.6-15.9-24.6-28.8C771.3,903.1,780.4,889.4,795.8,889.4z"/>
<path fill="#444345" d="M894.1,873.3c-25,0-41.6,19.1-41.6,44c0,24.7,15.9,44.3,41.6,44.3c25.6,0,41.6-19.6,41.6-44.3
C935.6,892.4,919.3,873.3,894.1,873.3z M894.1,945.5c-18.1,0-24.6-15.9-24.6-28.8c0-13.6,9.2-27.3,24.6-27.3
c15.4,0,24.6,13.7,24.6,27.3C918.7,929.6,912.3,945.5,894.1,945.5z"/>
<path fill="#444345" d="M1018.7,918.2c0-24-16.2-41.6-40.6-41.6h-21.8v83.1h21.8C1002,959.7,1018.7,941.8,1018.7,918.2z
M971.8,945.2v-56.1h2.1c18.5,0,27.9,9.7,27.9,28c0,16.6-7.9,28-27.9,28L971.8,945.2L971.8,945.2z"/>
</g>
</g>
<g>
<path d="M1039.4,1045.1h-1.2c-0.1-0.4-0.2-0.6-0.3-0.7l-0.5-0.5l-0.2-0.3l-0.1-0.3c-0.1,0-0.2-0.1-0.3-0.3h-0.1l-0.3-0.5
l-0.3-0.3l-0.3-0.3c-0.6-0.5-1.3-1.1-2.1-2c-0.7-0.9-1.1-1.3-1.1-1.3l-0.3-0.3h-0.7l0.1-0.1l-0.3,0.3l0.1-0.1
c-0.1,0.1-0.3,0.3-0.5,0.5l-1.3,1.3v-0.1l-1.3,1.3l-0.9,0.9l0,0c-1.2,1.2-1.9,1.9-2.2,2.1v0.1c0,0.1-0.1,0.3-0.5,0.7l-0.6-0.3
l-0.4-0.1c0-0.3-0.1-0.4-0.1-0.5l-0.2-0.1c-0.1-0.3-0.3-0.5-0.4-0.5l-1.7-1.7c0,0,0.1,0.1,0.1,0.1s0,0.1,0,0.1s-0.1,0.1-0.3,0.1
l0.1-1.1l0.9-0.9c0.3-0.2,0.7-0.5,1.1-0.9l0.7-0.7c0.2-0.1,0.4-0.3,0.7-0.7l1.7-1.7v0.1l0.1-0.1h-0.1c0.8-0.7,1.2-1.1,1.3-1.1
l1.7-1.7c0.4-0.4,0.9-0.9,1.5-1.3l0.5-0.7l0.5-0.5l0.5,0.2c0.1,0.1,0.2,0.1,0.2,0.1l1,0.9c0.2,0.1,0.5,0.4,0.8,0.8
c0.3,0.3,0.5,0.6,0.6,0.7l0.7,0.7v0.1l5.8,6c0.3,0.3,0.5,0.5,0.7,0.7c0.2,0.2,0.5,0.4,0.7,0.7l-0.3,0.5l-0.5,0.5h0.1
c-0.4,0.1-0.6,0.3-0.7,0.7l-1.1,1.1c-0.1,0.1-0.3,0.3-0.3,0.3L1039.4,1045.1L1039.4,1045.1
C1039.4,1044.9,1039.4,1044.9,1039.4,1045.1z M1021.5,1041l-0.3,0.3v0.3h0.1c0.1,0,0.1,0.1,0.2,0.1l0.7,0.7
c0.1,0.1,0.3,0.3,0.7,0.6c0.7,0.6,0.9,0.9,0.9,1.1l0.1,0.3l0.1-0.1c0.1,0.1,0.1,0.1,0.2,0.3l0.1-0.1v0.1l0.1-0.1h-0.1l0.1-0.1
c0,0-0.1,0-0.1-0.1c0-0.1,0-0.1-0.1-0.1l1.1-1.1l0.1,0.1l2.2-2.1l0.1,0.1l2.7-2.7l0.1,0.1c0.3-0.2,0.7-0.6,1.1-1.1h0.1l0.1-0.1
c1.3,1.4,2.6,2.8,3.8,4c0.5,0.4,0.8,0.7,0.9,0.9l0.7,0.6l0.1,0.1c0.3,0.3,0.5,0.6,0.8,0.8l0.5,0.5l-0.1,0.1
c0.1,0.1,0.1,0.1,0.1,0.3v0.1h0.3l0.9-0.9c0.8-0.9,1.5-1.5,1.9-1.7c0-0.1,0.1-0.2,0.3-0.3l-0.1-0.1l-0.1,0.1c0,0,0-0.1-0.1-0.1
s-0.1,0-0.1,0.1l-1.1-1.1l0.1-0.1l-0.3-0.3c0,0-0.1,0-0.1-0.1l0.1-0.1l-1.9-1.9c-0.5-0.5-0.9-1-1.5-1.5c-0.5-0.5-0.9-0.9-1.1-1.2
l-0.7-0.7h0.1l-1.1-1.1c-0.1-0.1-0.3-0.3-0.5-0.5l-1.7-1.6c-0.1,0-0.1,0-0.1,0.1c-0.1-0.1-0.1-0.1-0.3-0.1l-0.2,0.1h0.1l-2.1,1.9
h0.1l-1.9,1.9c-0.4,0.3-0.8,0.7-1.3,1.1l-1.5,1.4l-0.2,0.1l-1.1,1.1l-0.3,0.3c-0.3,0.2-0.5,0.5-0.7,0.7s-0.5,0.5-0.9,0.9
L1021.5,1041z"/>
</g>
</g>
</g>
<g id="OFN_beta__x28_new_x29_" display="none">
<g display="inline">
<text transform="matrix(0.9994 3.560383e-02 -3.560383e-02 0.9994 1024.377 998.5481)" fill="#444345" font-family="'BubblegumSans-Regular'" font-size="26.8582">BETA</text>
<text transform="matrix(3.560383e-02 -0.9994 0.9994 3.560383e-02 1038.5093 1045.8531)" fill="#444345" font-family="'BubblegumSans-Regular'" font-size="29.5441">&gt;</text>
<g>
<g>
<path fill="#444345" d="M156.5,1047.3v-20.9c0-2.3-2.1-4-4.4-4h-33.4c-2.4,0-4.6,1.6-4.6,4v20.9c0,2.3,2.4,4.2,4.6,4.2h33.4
C154.4,1051.4,156.5,1049.6,156.5,1047.3z M118.8,1026.3h33.8v21.3h-33.8V1026.3z"/>
<path fill="#444345" d="M197.5,895.5c-8.4,16.7-11.9,18.9-11.9,25.8c0,6.6,5.6,12.2,12.3,12.2c6.6,0,12.3-5.4,12.3-12.2
c0-7-3.1-10.9-11.9-25.8C198,895.1,197.7,895.1,197.5,895.5z M194.2,921.1c0,2.2-1.3,3-2.5,3c-1.5,0-2.5-1.1-2.5-2.6
c0-4.8,2.4-8,4.4-10.8c0.7-0.9,1.3-1.7,1.7-2.5C195.4,907.9,194.2,917.1,194.2,921.1z"/>
<path fill="#444345" d="M92.5,1032.2c-2.5-1.6-7.5-4.6-7.5-4.6s0,0,0,6.3c0,6.3,10.6,8.6,10.6,8.6
C95.4,1039.5,95.1,1033.8,92.5,1032.2z"/>
<path fill="#444345" d="M92.5,1043.5c-2.5-1.6-7.5-4.6-7.5-4.6s0,0,0,6.3c0,6.3,10.6,8.6,10.6,8.6
C95.4,1050.9,95.1,1045.2,92.5,1043.5z"/>
<path fill="#444345" d="M95.5,1065.2c-0.2-3-0.4-8.6-2.9-10.3c-2.5-1.6-7.7-4.6-7.7-4.6s0,0,0,6.3
C85,1062.9,95.5,1065.2,95.5,1065.2z"/>
<path fill="#444345" d="M99.1,1042.5c0,0,11-2.4,11-8.6c0-6.3,0-6.3,0-6.3s-6.2,3-8.7,4.6C98.8,1033.8,99.3,1039.5,99.1,1042.5z
"/>
<path fill="#444345" d="M99.1,1053.8c0,0,11-2.3,11-8.6c0-6.2,0-6.3,0-6.3s-6.2,3-8.7,4.6C98.8,1045.2,99.3,1050.9,99.1,1053.8z
"/>
<path fill="#444345" d="M110.1,1056.6c0-6.3,0-6.3,0-6.3s-6.1,2.9-8.6,4.6c-2.5,1.6-2.4,7.3-2.5,10.3
C99,1065.2,110.1,1062.9,110.1,1056.6z"/>
<path fill="#444345" d="M101.1,1025.9c0-2.9-0.7-6.6-4-10.3c0,0-3.9,4.8-3.9,9.5c0,3.1,1.7,5.7,3.9,8.4
C97.1,1033.7,101.1,1029,101.1,1025.9z"/>
<path fill="#444345" d="M84.3,851.2c0.8,0,1.5-0.1,2.2-0.4c1.6,1.5,3.7,2.2,5.8,2.2c2.1,0,4.2-0.8,5.8-2.2
c0.7,0.3,1.5,0.4,2.2,0.4c3.5,0,6.3-2.8,6.3-6.3s-2.8-6.3-6.3-6.3c-0.3,0-0.6,0-0.9,0.1c-1.6-2.4-4.2-3.7-7.1-3.7
c-2.9,0-5.5,1.3-7.1,3.7c-0.3,0-0.6-0.1-0.9-0.1c-3.5,0-6.3,2.8-6.3,6.3C78.2,848.4,81,851.2,84.3,851.2z"/>
<path fill="#444345" d="M94,862c0,0.9,0.8,1.7,1.8,1.7c0.9,0,1.7-0.8,1.7-1.7s-1.7-3.6-1.7-3.6S94,860.9,94,862z"/>
<path fill="#444345" d="M99.1,858.3c0.9,0,1.8-0.8,1.8-1.7s-1.8-3.6-1.8-3.6s-1.7,2.6-1.7,3.6C97.3,857.5,98.2,858.3,99.1,858.3
z"/>
<path fill="#444345" d="M92,859.2c0-0.9-1.7-3.6-1.7-3.6s-1.8,2.6-1.8,3.6s0.8,1.7,1.8,1.7C91.2,861,92,860.2,92,859.2z"/>
<path fill="#444345" d="M8.8,1010.5c0,6.4,5.2,11.7,11.7,11.7s11.7-5.2,11.7-11.7s-5.2-11.7-11.7-11.7S8.8,1004,8.8,1010.5z
M29.1,1010.5c0,4.8-4,8.8-8.7,8.8c-4.8,0-8.8-4-8.8-8.8c0-4.8,4-8.8,8.8-8.8S29.1,1005.7,29.1,1010.5z"/>
<polygon fill="#444345" points="16,1014.9 22,1012 24.8,1006.1 19,1009.1 "/>
<path fill="#444345" d="M113.9,866.3c0-0.1-0.1-0.2-0.1-0.3L113.9,866.3L113.9,866.3z"/>
<path fill="#444345" d="M110.6,876.1c7.1-2,14.4,3.1,15.4,10.5c0,0.3,0.1,0.6,0.1,0.9c0.3,0,0.6,0.1,0.9,0.1
c6-0.2,12.1-0.2,18.1-0.5c-2.5,0.7-4.4,3-4.4,5.7c0,3.3,2.7,6,6,6s6-2.7,6-6c0-3-2.2-5.4-5-5.9c4.4-0.3,3.6-0.2,4.4-4.2
c0.4-1.9,0.6-3.9,0.8-5.8c0.2-1.8-0.3-2.2-2.1-2.4c-2.7-0.1-5.1-0.2-7.9-0.3c-0.1,0-0.2-0.1-0.2-0.2c0-2,0.5-6.8,0.5-6.8
s-0.9-0.8-1.9-0.1c0,2.4,0,4.6,0,7.1c0,0-3.6-0.1-8.2-0.2c-0.2,0-0.9-0.4-1.3-1.1c-0.7-1.9-2.4-5.6-4.4-11.4
c0,0-1.1-2.4-3.8-2.4c-2.1,0-13.4,0-13.4,0v14.2c0,0-0.8,0.4-1.5,0.5C108.2,876.1,108.7,876.5,110.6,876.1z M149.8,892.9
c0,1.7-1.5,3.1-3.1,3.1c-1.7,0-3.1-1.5-3.1-3.1c0-1.7,1.5-3.1,3.1-3.1C148.4,889.8,149.8,891.1,149.8,892.9z M113.8,866v-2.7h11
l3.5,10.5l0.1,0.1c-4.7-0.1-10.1,0-14.6,0.2V866z"/>
<path fill="#444345" d="M113.3,877.3c-6,0-10.8,4.8-10.8,10.8c0,6,4.8,10.8,10.8,10.8c5.9,0,10.8-4.8,10.8-10.8
C124.1,882.1,119.3,877.3,113.3,877.3z M113.3,894.1c-3.3,0-6-2.7-6-6c0-3.3,2.7-6,6-6s6,2.7,6,6
C119.3,891.4,116.6,894.1,113.3,894.1z"/>
<path fill="#444345" d="M87.2,1074.3l-7.9-4.2c0.5-1.7,0.5-3.7,0-5.6c-1.6-5.5-7.9-8.9-13.4-7.3c-5.6,1.6-8.8,7.3-7.1,12.8
c1.6,5.5,7.9,8.9,13.4,7.3c1.8-0.6,3.5-1.5,4.6-2.8l7.9,4.4c0.8,0.4,1.7,0.1,2.2-0.7l1.1-1.9C88.4,1075.5,88,1074.8,87.2,1074.3
z M70.8,1073.2c-3.2,0.9-7-1.1-7.9-4.2c-0.9-3.2,0.9-6.6,4.2-7.5c3.2-0.9,7,1.1,7.9,4.2C75.9,1069,74.1,1072.3,70.8,1073.2z"/>
<path fill="#444345" d="M42.4,987.3c6-6.8,2.7-11.7,1.7-13.6c-0.9-1.9-1.3-4.7-1.3-4.7l0.2-0.9l0.2-1.1
c-1.3-0.4-2.7,0.3-2.7,0.3c0.3,2.1-0.3,4.4-0.6,5.3c-0.4,0.9-1.6,2.8-2.2,4c-0.6,1.1-2.1,4.7-9.9,8.1
c-7.9,3.4-18.3,0.3-18.3,0.3c-2.7-0.7-4.9,0.4-4.9,0.4L4,986.3l0.1,0.8l-0.3,0.5l0.1,0.6c7.7,11.9,23.6,7.9,23.6,7.9
S36.4,994,42.4,987.3z"/>
<path fill="#444345" d="M215.2,1059.3c3.5-0.1,6.8-0.7,10.1-2c1.1-0.5,1.5-1.3,1.6-2.5c0.1-0.7,0.1-1.3,0.1-1.9
c0-0.1,0-0.1,0-0.2c0-0.1-0.3-0.4-0.7-0.4c-1.6-0.1-1.9-0.5-2.4-2c-0.4-1.1-0.7-2.1-1.1-3.1c3.9-0.9,3.4-3.7,2-7.3
c-1.1,1.6-0.3,2.1-2.1,2.5c-1.7,0.4-3,1.3-3.8,3c-0.1,0.3-0.3,0.7-0.5,1.1c-0.2-2,0.7-3.2,2.4-4.7c-0.8-0.8-4-0.4-4.8-0.9
c-3.1-2.2-17.5-4.8-26.5,2c-0.5-0.5-0.9-0.9-1.5-1.3c2.1-0.9,2.9-2,2.5-3.7c-0.3-1.3-1.3-2-2.4-1.9c-1.9,0.1-2.6,0.9-2.9,4.2
c-0.7-0.7-1.1-1.1-1.9-1.9c0,0.6-0.2,1.1-0.1,1.5c0.3,0.9,1.1,1.5,1.9,1.8c0.7,0.1,1.1,0.5,1.3,1.1c0.2,0.4,0.4,0.9,0.8,1.1
c0.9,0.9,1.1,2.1,1.1,3.5c0,3,0.1,6,0.5,9c0.4,3.2,1.1,6.3,2.6,9.2c0.5,0.9,1.1,0.9,1.9,0.8c0.3-0.1,0.6-0.8,0.6-1.1
c0.2-2.4,1.3-4.4,2.4-6.4c4.2,1.3,8.3,1.5,12.5,1.3c0.2,0,0.6,0.4,0.8,0.7c0.8,1.5,1.5,3.2,2.2,4.8c0.4,0.9,1.3,0.9,2,0.8
c0.2-0.1,0.3-0.9,0.3-1.3c0-1.7,0-3.6,0-5.3c0.2-0.1,0.3-0.1,0.3-0.2C214.7,1059.3,215.1,1059.3,215.2,1059.3z M187.2,1039.8
c-0.5-1.1-0.2-1.9,0.6-2c0.5-0.1,1.1-0.1,1.1,0.6C189.1,1039.2,188.5,1039.7,187.2,1039.8z"/>
<path fill="#444345" d="M33.5,924.2c6.6-0.6,8.9-3.9,10.8-10.3c1.1-3.9,1.3-7.7,1.5-11.8c-0.3-3.3-0.3-6.6-0.7-9.9
c-0.7-4.6-1.8-9.3-4-13.4c-1.7-3.3-2.2-5.3-5.9-5.9c-4-0.5-8.4,1-10.1,5.6c-0.5,1.3-1.1,2.4-1.3,3.7c-0.7,2.8-2.4,5-4.4,7
c-5.8,5.3-7.7,12.1-6.4,19.6C14.5,918.6,23.5,925.1,33.5,924.2z M21.2,893.3c3.5-3.3,6-6.8,7.1-11.5c0.2-0.9,0.7-1.8,1.1-2.6
c1.3-2.3,4.2-2.7,6.1-0.8c0.8,0.9,1.3,1.9,1.7,2.9c2.8,6.6,4,13.7,4,19.9c0,4.7-0.3,8.4-1.5,11.9c-1.7,5-5.3,7.5-10.1,7
c-4-0.4-7.3-2.4-9.9-5.5C15.2,908.4,15.4,898.6,21.2,893.3z"/>
<path fill="#444345" d="M29.5,917.1c3.2,0.3,5.6-0.7,7.1-3.6c2.8-5.6,3-11.3,1.1-17.2c-0.4-1.3-1.3-2.2-2.5-2.7
c-3.5-1.5-7.1-1.5-10.5-0.1c-1.6,0.8-3.2,1.8-3.9,3.6c-0.4,0.9-0.3,1.6,0.7,2.1c1.5,0.8,3,1.5,4.6,2.4c0.5,0.3,0.9,0.7,1.3,0.9
c0,0.1-0.1,0.3-0.2,0.4c-0.4-0.1-0.8-0.1-1.1-0.2c-1.7-0.5-3.5-1.1-5.2-1.5c-0.9-0.3-1.5,0.1-1.7,0.9c-0.1,0.4-0.2,0.8-0.2,1.1
C17.9,910,22.8,916.4,29.5,917.1z"/>
<path fill="#444345" d="M30.6,889c0.9,0.3,1.9,0.5,2.9,0.7c1.9-0.1,2.7-0.6,2.7-2.5c0-1.3-0.3-2.8-0.7-4.2c-0.3-1.1-1.1-2-2.4-2
c-1.3-0.1-2.5,0.5-3,1.7c-0.5,1.1-0.9,2.4-1.1,3.8C28.7,887.8,29.1,888.5,30.6,889z"/>
<path fill="#444345" d="M56.9,983.4c-0.4,0.1-0.9-0.1-0.9-0.5c0,0-0.5-1.3-2-2.9c-0.4-0.4-0.8-0.7-1.1-0.9
c-0.6-0.5-1.3-0.9-1.8-1.6c0.9,8.1,4.4,14,8.3,14c4.7,0,8.6-8.4,8.6-18.9s-4-18.9-8.7-18.9c-3.1,0-5.8,3.7-7.3,9.1
c0.6,0.9,1.1,1.3,1.9,1.8c0.4,0.3,0.9,0.7,1.3,1.1c1.9,1.8,2.4,3.5,2.4,3.6s0,0.1,0,0.2c0,0.3-0.2,0.6-0.6,0.7s-0.9-0.1-0.9-0.5
c0,0-0.5-1.3-2-2.9c-0.4-0.4-0.8-0.7-1.1-0.9c-0.5-0.3-0.9-0.7-1.3-1.1c-0.2,0.9-0.4,1.8-0.5,2.8c0.7,2.4,1.6,3.1,2.8,4
c0.4,0.3,0.9,0.7,1.3,1.1c1.9,1.8,2.4,3.5,2.4,3.6s0,0.1,0,0.2c0,0.3-0.2,0.6-0.6,0.7s-0.9-0.1-0.9-0.5c0,0-0.5-1.3-2-2.9
c-0.4-0.4-0.8-0.7-1.1-0.9c-0.7-0.5-1.5-1.1-2-1.9c0,0.6,0,1.1,0,1.7c0.7,3.5,1.7,4.4,3.1,5.3c0.4,0.3,0.9,0.7,1.3,1.1
c1.9,1.8,2.4,3.5,2.4,3.6c0,0.1,0,0.1,0,0.2C57.5,983,57.3,983.3,56.9,983.4z"/>
<path fill="#444345" d="M196.9,877c1.6,1.8,3.6,3.6,6,3.8c1.7,0.3,3.9-0.9,5.2-0.9c2.8,0,2.2,0.7,5.2,0.7c2.9,0,8.5-7,9.9-14.2
c0.3-1.8,0-4.9-1.3-7.9c-1.6-3.5-6.4-4.8-9.5-4.2c-0.8,0.1-2.5,0.5-3.9,0.7c0.3-0.9,0.9-2.6,2.6-3.5c0.5-0.3,0.7-0.9,0.4-1.3
c-0.3-0.5-0.9-0.7-1.3-0.4c-2.7,1.5-3.6,4.2-3.8,5.4c-1.3-0.3-4.4-0.8-5.8-0.8c-1.7,0.1-3.4,0.6-4.9,1.7c-1.3,1.1-2,2.5-2.6,4
c-0.8,2.2-1.1,4.4-0.8,6.8C192.8,870.8,194.4,874.1,196.9,877z M202.8,858.9c1.5,0,2.7,1.1,2.7,2.5c0,1.8-1.3,3.3-2.8,3.3
c-1.1,0-2.1-1.5-2.1-3.2C200.8,860,201.5,858.9,202.8,858.9z"/>
<path fill="#444345" d="M204.7,852.3c1.1,0.1,2.4,0.2,2.9-0.9c0.6-1.1-0.3-2.2-1.1-3.1c-1.8-1.9-4.6-2.3-7.7-0.9
c0.4,0.7,0.8,1.3,1.1,1.8C200.9,851,202.6,852,204.7,852.3z"/>
<path fill="#444345" d="M133.7,858.3c1.9-4,4.6-7.1,4.6-7.1c4,1.5,10.8,3.2,15.6-0.2c6.4-4.6,5.8-14.6,15-19.5
c2.1-1.1-18.1-5.9-28.7,0.2c-7.9,4.5-7.3,12-7.1,14.6c10.1-12,25.2-11.4,25.2-11.4s-21.4,7.4-27.7,22.2
C130.2,858.1,133.1,859.6,133.7,858.3z"/>
<path fill="#444345" d="M212,1007c4.8-9.9-0.6-17-2.7-19.6c-2.1,18.9-17.9,28.5-17.9,28.5s16.7-21.8,13.2-41
c-0.3-1.5-4.2-1.1-3.9,0.7c0.8,5.4,0.2,10.3,0.2,10.3c-5,1.1-13,4-15.8,10.7c-3.5,8.9,4,18.7-2,29.9
C181.8,1029.2,205.5,1020.4,212,1007z"/>
<path fill="#444345" d="M37.2,932.9c-2,1.5-1.6,5.4-0.1,7.5c1.5,1.9,5.3,3.4,7.3,1.8c0.4-0.3,1.6-1.1,1.6-1.1
c2.2,1.7,3.6,0,4.6,1.3c1.1,1.5,3.8,4.7,4.6,5.8c0.9,1.1,2.4,1.9,3.2,1.3c0.8-0.6,3.5-2.5,4.6-3.3c1.1-0.8,1.1-1.8,0.5-2.6
c-0.6-0.8-2.2-0.6-3-1.5c-0.8-0.9-3.1-3.8-3.8-4.7c-0.9-1.3-0.1-2.7,1.6-3.4c11.8-4.6,16,2.3,19.7-0.5
c2.8-2.1-0.3-11.2-6.6-19.3s-14.6-13.4-17.4-11.1C49.5,906.8,61,914.9,37.2,932.9z M57.2,907.8c0.7-0.5,6.4,2.8,11.5,9.1
c4.9,6.3,6.3,12.1,5.6,12.6c-0.7,0.5-6.4-2-11.4-8.3C57.9,914.9,56.6,908.3,57.2,907.8z"/>
<path fill="#444345" d="M15,980.9c8.2,0,15-3.9,15-5.9c0,0,0-0.6,0-6.2c0-5.7-10.3-10.3-10.3-14.4c0-4,10.3-8.7,10.3-14.4
c0-5.7,0-6.2,0-6.2c0-2.1-6.8-5.9-15-5.9s-15,3.8-15,5.8c0,0,0,0.6,0,6.2c0,5.7,10.3,10.3,10.3,14.4c0,4-10.3,8.7-10.3,14.4
c0,5.7,0,6.2,0,6.2C0,977.1,6.8,980.9,15,980.9z M3.5,934.1c1.8-1.1,5.3-2.9,10.9-2.9s10.6,2.9,10.6,2.9
c0.4,0.2,1.8,1.1,0.9,1.6c-2.2,1.3-6.6,2.7-11.6,2.7s-9.3-1.5-11.5-2.8C1.8,935,3.5,934.1,3.5,934.1z M2.9,968.8
c0-1.7,2.7-4.4,4.7-6.4c2.8-2.7,5.4-4.7,5.4-7.9c0-3.2-2.7-5.2-5.5-7.9c-2-2-4.8-4.7-4.8-6.4l-0.1-2.6c2.7,1.5,7.1,2.9,11.7,2.9
c4.7,0,9.1-1.3,11.8-2.9l-0.1,2.6c0,1.7-2.8,4.4-4.8,6.4c-2.8,2.7-5.4,4.7-5.4,7.9c0,3.2,2.2,5.2,5,7.9c2,2,4.4,4.7,4.4,6.4v3.5
c-1.9-1.3-9.5-2-9.5-5.9c0-1.9-2.7-1.9-2.7,0c0,3.9-8.1,4.6-10.1,5.9v-3.5H2.9z"/>
<path fill="#444345" d="M210.9,900.8c0,11,8.9,19.9,19.9,19.9c11,0,19.9-8.9,19.9-19.9c0-10.9-8.9-19.9-19.9-19.9
C219.8,880.9,210.9,889.8,210.9,900.8z M236.2,884.7c6.7,2.2,11.5,8.6,11.5,16c0,3.9-1.3,7.5-3.5,10.3c-0.6-0.5-1.3-1.8-0.7-3.2
c0.6-1.3,0.8-4.6,0.7-5.8c-0.1-1.3-0.8-4.2-2.5-4.2c-1.7,0-2.9-0.6-4-2.7c-2.1-4.2,4-5.1,1.8-7.5c-0.6-0.7-3.7,2.7-4.2-1.8
C235.5,885.7,235.8,885.1,236.2,884.7z M240.2,914.9c-2.7,1.7-5.9,2.8-9.4,2.8c-1.8,0-3.7-0.3-5.3-0.9c0.9-0.6,1.1-1.3,2-1.3
c1.1,0,1.9-0.4,3.1-0.7c1.1-0.2,3-1.3,4.6-1.5C236.7,913.3,239.4,913.5,240.2,914.9z M228.4,884c-0.4,0.8-1.5,1.1-2.1,1.7
c-1.5,1.3-2,1.1-2.8,2.3c-0.8,1.3-3.3,3-3.3,3.9s1.3,1.9,1.8,1.7c0.7-0.2,2.4-0.2,3.3,0.2c0.9,0.4,8.1,0.7,5.8,6.8
c-0.7,1.9-3.9,1.5-4.7,4.7c-0.1,0.5-0.6,2.4-0.6,3.1c-0.1,0.9,0.7,4.8-0.3,4.8s-3.6-3.4-3.6-4c0-0.6-0.7-2.8-0.7-4.6
s-3.2-1.8-3.2-4.2c0-2.2,1.7-3.3,1.3-4.4c-0.4-1.1-3.4-1.1-4.6-1.3C217.1,889,222.2,884.9,228.4,884z"/>
<path fill="#444345" d="M135.7,1029.6c-4,0-7.3,3.3-7.3,7.3s3.3,7.3,7.3,7.3c4,0,7.3-3.3,7.3-7.3
C142.9,1032.9,139.7,1029.6,135.7,1029.6z M132.5,1040c0-0.2-0.3-0.9-0.3-1.6c0-0.7-1.1-0.7-1.1-1.5c0-0.8,0.7-1.3,0.5-1.6
c-0.1-0.4-1.3-0.4-1.6-0.5c0.8-2,2.7-3.6,4.9-4c-0.2,0.3-0.6,0.4-0.8,0.6c-0.5,0.5-0.8,0.4-1.1,0.9s-1.1,1.1-1.1,1.5
c0,0.3,0.5,0.7,0.7,0.7c0.2-0.1,0.9-0.1,1.1,0.1c0.4,0.1,3,0.3,2.1,2.4c-0.3,0.7-1.5,0.6-1.7,1.7c-0.1,0.2-0.2,0.9-0.2,1.1
c0,0.4,0.3,1.7-0.1,1.7C133.5,1041.4,132.5,1040.2,132.5,1040z M135.7,1043.1c-0.7,0-1.3-0.1-1.9-0.3c0.4-0.2,0.4-0.5,0.8-0.5
s0.7-0.2,1.1-0.3c0.4-0.1,1.1-0.5,1.6-0.5c0.5,0,1.5,0,1.8,0.5C138.1,1042.7,137,1043.1,135.7,1043.1z M140.7,1040.6
c-0.2-0.2-0.5-0.7-0.2-1.1c0.2-0.5,0.3-1.6,0.2-2.1c-0.1-0.5-0.3-1.5-0.9-1.5s-1.1-0.2-1.5-0.9c-0.8-1.5,1.5-1.8,0.7-2.7
c-0.2-0.3-1.3,0.9-1.5-0.7c0-0.1,0.1-0.3,0.3-0.5c2.4,0.9,4.2,3.2,4.2,5.9C141.9,1038.4,141.4,1039.6,140.7,1040.6z"/>
<path fill="#444345" d="M44.9,1061.1c0,0.3,0,0.5,0,0.8c0.1,1.7,1.5,3.2,3.4,3.2c1.7,0,3.2-1.3,3.4-3c0.1-0.3,0.1-0.6,0.1-0.9
c0-0.9,0.4-1.3,1.1-1.5c6.4-1.5,11.4-6.6,12.4-13c0.1-0.8,0.1-1.5,0.4-2.1c0.6-0.5,1.5-0.9,1.7-1.5c0.2-0.5-0.4-1.3-0.6-2.1
c1.1-1.1,1.1-1.6-0.2-2.9c1.3-1.3,1.3-1.9-0.1-3.2c0.9-0.4,1.3-1.1,0.9-2c-0.3-0.6-1.1-0.9-1.6-1.3c-0.1,0.1-0.1,0.2-0.2,0.2
c-0.1-0.6-0.1-1.1-0.4-1.5c-0.4-0.5-0.9-1.1-1.5-1.1c-0.3-0.1-0.9,0.6-1.1,0.9c-0.7,1.3-1.1,2.8-1.7,4.2s-1.3,2.7-2.2,3.9
c-2.7,3.4-6.3,4.4-10.4,3.6c-4-0.9-6.8-3.3-7.9-7.3c-0.2-0.8-0.2-1.5-0.4-2.3c0.9-0.6,2.1-0.9,1.6-2.2c-0.2-0.7-1.1-1.1-2-1.7
c0-0.5,0.2-1.5-0.9-1.9c-0.9-0.4-1.6,0.2-2.2,1.1c-0.7-0.8-1.3-1.6-2.4-1.1c-0.6,0.4-0.9,1.3-1.5,2.2c-0.7,0-1.8-0.1-2,1.3
c-0.1,0.9,0.6,1.5,2.4,2c-1.1,1.3-3,1.3-4.2,2.4c1.1,0.6,2,1.1,3.1,1.7c0.6,0.3,0.8,0.7,0.7,1.3c-0.2,2.1-0.3,4.4-0.5,6.4
c-0.8,9.2,5.5,14.3,11.5,15.9C44.7,1059.8,45,1060,44.9,1061.1z M35.7,1034.1c-0.3,0-0.7-0.4-1.3-0.8c0.7-0.4,0.9-0.9,1.3-0.9
c0.3,0,0.9,0.6,0.8,0.8C36.3,1033.6,35.9,1034.1,35.7,1034.1z"/>
<path fill="#444345" d="M211.6,940.4h-6.4c-1.1,0-2.7,0.7-3.4,1.6l-8.5,10.9c-0.7,0.9-0.3,0.9,0.9,0.9h34.6c1.1,0,1.6,0,0.9-0.9
l-7.4-11c-0.7-0.9-2.1-1.5-3.3-1.5h-1.6v-3.9h-5.8V940.4z"/>
<path fill="#444345" d="M219.2,930.1l0.5-0.1c1.1-0.2,2-1.1,2.7-2.2c0.7-1.1,0.8-3.6,0.6-4.9c-0.7,2-2.1,2.7-3.7,3.4
c-0.4,0.2-0.9,0.4-1.3,0.5c-0.5,0.2-0.9,0.4-1.5,0.6c-1.5,0.8-2.1,2-2.4,4c-0.2,0.8-0.3,1.6-0.3,2.8c0.8-2,1.6-3,3.3-3.6
C217.8,930.5,218.5,930.3,219.2,930.1z"/>
<path fill="#444345" d="M227,969.3h0.9v-11.9c0-1.1,0-1.6,0-1.6H227h-1.3h-15h-1.3h-11h-4v2.2v11.3h4h2.7v-8
c0,0,0.2,0.3,1.1,0.3h5.2c0,0,0.5-1.1,0.5-0.2v7.9h1.5h1.3h15L227,969.3L227,969.3z M222.2,965.5c0,0.2,0.7,0.9,0.5,0.9h-5.7
c-0.2,0-0.6-0.8-0.6-0.9v-5.7c0-0.2,0.4-0.1,0.6-0.1h5.7c0.2,0-0.5-0.1-0.5,0.1V965.5z"/>
<path fill="#444345" d="M143.1,1056.3c0-0.6-0.5-0.9-1.1-0.9h-13.4c-0.6,0-1.1,0.4-1.1,0.9c0,0.6,0.5,0.9,1.1,0.9h13.4
C142.7,1057.3,143.1,1056.9,143.1,1056.3z"/>
<rect x="131.4" y="1052.5" fill="#444345" width="9.7" height="2.9"/>
<path fill="#444345" d="M117.8,828.2c-4.6,0.8-7.9,4.6-8.2,9.1l8.7-0.5L117.8,828.2z"/>
<path fill="#444345" d="M119.7,839.3l-9.9,0.5c0.9,4.8,5.2,8.4,10.3,8.1c5.5-0.3,9.7-4.9,9.4-10.4c-0.3-5-4.2-9-9.1-9.4l0.5,9.9
C120.9,838.7,120.3,839.2,119.7,839.3z"/>
<path fill="#444345" d="M78.2,866c0.4,0,0.9-0.6,1.3-0.7s0.9-0.6,1.1-0.8l5.5-3.9c0.3-0.2,0.5-0.6,0.5-0.9
c0-0.3-0.2-0.6-0.5-0.8l-5.5-3.8c-0.3-0.2-0.8-0.9-1.1-1.1c-0.5-0.1-0.9-0.7-1.3-0.7H62.5l1.8,12.6H78.2L78.2,866z"/>
<path fill="#444345" d="M41,865.1l5.5,3.8c0.3,0.2,0.8,0.5,1.1,0.7c0.5,0.1,0.9,0.4,1.3,0.4h8.1V890c0,0.5,0.6,0.2,1.1,0.2h2
c0.5,0,0.7,0.3,0.7-0.2v-39.7c0-0.5-0.2-1.6-0.7-1.6h-2c-0.5,0-1.1,1.1-1.1,1.6v9h-8c-0.4,0-0.9,0-1.3,0.1s-0.9,0.3-1.1,0.5
l-5.5,3.8c-0.3,0.2-0.5,0.5-0.5,0.8C40.6,864.7,40.8,864.9,41,865.1z"/>
<path fill="#444345" d="M72.4,874.2v31.6c0,2.2,2.4,4.6,4.6,4.6h15.4c2.2,0,4.2-2.4,4.2-4.6v-31.6c0-2.2-2-3.4-4.2-3.4H77
C74.8,870.8,72.4,872,72.4,874.2z M84.7,908.2c-1.5,0-2.8-0.9-2.8-2s1.3-2,2.8-2s2.8,0.9,2.8,2
C87.5,907.2,86.3,908.2,84.7,908.2z M93.7,875.7v26.1H76.3v-26.1H93.7z"/>
<path fill="#444345" d="M162,850.1c0,13.2,13.8,30.4,13.8,30.4s13.8-17.2,13.8-30.4c0-7.7-6.2-13.8-13.8-13.8
C168.2,836.1,162,842.3,162,850.1z M175.8,842.7c4.2,0,7.5,3.4,7.5,7.5c0,4.2-3.4,7.5-7.5,7.5c-4.2,0-7.5-3.4-7.5-7.5
C168.3,846.1,171.8,842.7,175.8,842.7z"/>
<path fill="#444345" d="M88.9,887.4c0-2.4-1.8-4.2-4.2-4.2s-4.2,1.8-4.2,4.2c0,4,4.2,9.1,4.2,9.1S88.9,891.4,88.9,887.4z
M82.4,887.6c0-1.3,0.9-2.2,2.2-2.2c1.3,0,2.2,0.9,2.2,2.2c0,1.3-0.9,2.2-2.2,2.2C83.5,889.8,82.4,888.8,82.4,887.6z"/>
<path fill="#444345" d="M177.1,885.5l-2.4,2.1l-2.4-2.1c-3.4-3.1-9-3.1-12.4,0c-3.9,3.6-3.9,9.3,0,12.8l14.7,13.5l14.7-13.5
c3.9-3.6,3.9-9.3,0-12.8C186.1,882.4,180.4,882.4,177.1,885.5z"/>
<path fill="#444345" d="M237.1,987.3l-3.3,2.8c-0.3,0.2-0.3,0.7-0.1,0.9l18.9,21.4c0.4,0.5,1.1,0.6,1.7,0.1l2.2-1.8
c0.5-0.5,0.6-1.3,0.1-1.7l-18.7-21.6C237.8,986.9,237.4,986.9,237.1,987.3z"/>
<path fill="#444345" d="M236.1,973.1c-2.9,0.3-6.6,3-8.4,4.2c-2.4,1.6-3.3,2.6-3.5,2.7c-0.7,0.6-0.1,1.9-1.3,3.1
c-1.3,1.1-2.1,0.3-2.9,0.9c-0.4,0.3-1.5,1.1-1.7,1.3c-0.3,0.3-0.4,0.7-0.1,1.1c0,0,2.9,3.2,3.1,3.5c0.2,0.3,0.9,0.5,1.3,0.2
c0.4-0.4,1.5-1.3,1.6-1.5c0.2-0.2-0.1-1.9,0.8-2.7c2.1-1.6,3.9-0.5,6.2,2.2c0.3,0.3,0.7-0.1,0.9-0.2c0.2-0.2,3.3-3,3.5-3.1
c0.2-0.1,0.3-0.4,0.1-0.7c-0.2-0.3-1.1-1.5-1.6-2.1c-4.2-5.4,11.2-9,8.9-9.1C241.6,973,236.7,973,236.1,973.1z"/>
<path fill="#444345" d="M224.1,1010.9l2.1,2.1c0.5,0.5,1.3,0.3,1.7-0.2l11.1-10.9l-3.4-3.9l-11.6,11.2
C223.7,1009.6,223.7,1010.4,224.1,1010.9z"/>
<path fill="#444345" d="M247.9,985.9c-0.2,0.3-0.4,0.6-0.7,0.9l-3.1,3.2l3.1,3.6l3.8-3.6c0.2-0.2,0.6-0.5,0.9-0.7
c0.1,0,0.1,0,0.2-0.1c0.3-0.1,0.6,0,0.9,0.2c0.7,0.5,1.3,0.9,1.9,1.5c0.5,0.4,0.9,0.4,1.3-0.1c0.6-0.7,1.1-1.3,1.7-1.9
c0.9-1.1,1.9-2.1,2.9-3.2c1.6-1.7,2.4-3.7,2.4-5.8c0-0.8,0-1.5-0.2-2.4c-0.3-2-1.3-3-3.3-3.3c-0.5-0.1-1.1-0.2-1.5-0.1
c-0.6,0-1.3,0-1.8,0.1c-1.5,0.1-3,0.5-4.2,1.6c-0.9,0.9-1.9,1.8-2.9,2.7c-1.1,1.1-2.2,2-3.3,3.1c-0.3,0.3-0.4,0.6,0,0.9
c0.7,0.7,1.3,1.5,1.9,2.1c0.3,0.3,0.4,0.5,0.2,0.9C248,985.6,247.9,985.6,247.9,985.9z M250.3,985.4l4.7-4.4
c0.1-0.1,0.4-0.1,0.5,0c0.1,0.1,0.1,0.3,0,0.5l-4.2,5c-0.1,0.1-0.2-0.7-0.3,0.3l0,0c-0.1,0-0.2-0.2-0.2-0.2l-0.6-0.6
c-0.1-0.1-0.1-0.2-0.1-0.3C250.2,985.6,250.3,985.4,250.3,985.4z"/>
<path fill="#444345" d="M237.6,934c0,0.8-0.1,1.5,0.6,1.5h10.1v2.5c0,0.6-0.4,0.4,0.2,0.4h4c0.6,0,0.7,0.2,0.7-0.4v-2.5h9.5
c0.8,0,1.1-0.9,1.1-1.5v-5.2h-26.1L237.6,934L237.6,934z"/>
<path fill="#444345" d="M251.2,948.8V947c0-0.3-0.2-0.6-0.5-0.6s-0.5,0.3-0.5,0.6v1.7c-2.9,0.3-4.8,2.5-4.8,5.1
c0,2.9,2.2,5.2,5.1,5.2c2.9,0,5.2-2.4,5.2-5.2C255.7,951.3,254.1,949.1,251.2,948.8z"/>
<path fill="#444345" d="M261.5,939.4h-22c-1.1,0-2,1.1-2.2,2.2l-2.6,22.8c-0.1,0.6,0.1,1.5,0.6,2c0.4,0.5,1.1,0.9,1.6,0.9h27.3
c0.7,0,1.3-0.5,1.6-0.9c0.4-0.5,0.6-1.1,0.6-1.8l-2.6-23C263.5,940.6,262.5,939.4,261.5,939.4z M250.4,963c-5,0-9.1-4-9.1-9.1
s4-9.1,9.1-9.1c5,0,9.1,4,9.1,9.1S255.4,963,250.4,963z"/>
<path fill="#444345" d="M155,1069.4v0.4h11.3c0.6,0,1.1-0.9,1.1-1.5c0-0.6-0.5-1.5-1.1-1.5H155h-1.3h-2.4c-3,0-5.4,1.9-6.2,4.8
h-7.9v2.9h7.9c0.8,2.9,3.2,5.8,6.2,5.8h2.4l0,0h12.6c0.6,0,1.1-0.9,1.1-1.5s-0.5-1.5-1.1-1.5H155c-0.4,0-0.7-0.1-0.7-0.5
c0-0.4,0.3-0.5,0.7-0.5h11.3c0.6,0,1.1-0.4,1.1-0.9c0-0.6-0.5-0.9-1.1-0.9H155l0,0c-0.4,0-0.7-0.6-0.7-0.9
c0-0.4,0.3-0.9,0.7-0.9h11.3c0.6,0,1.1-0.4,1.1-0.9c0-0.6-0.5-0.9-1.1-0.9h-10.7v-0.4c-0.9,0-0.9-0.1-0.9-0.5
C154.6,1069.5,154.6,1069.4,155,1069.4z"/>
<path fill="#444345" d="M105.5,1076.6h27.3c1.3,0,3.3-0.7,3.3-1.6v-3.3c0-0.9-2.1-1.8-3.3-1.8h-27.3c-1.8,0-3.3,1.5-3.3,3.4
C102.4,1075,103.9,1076.6,105.5,1076.6z"/>
<path fill="#444345" d="M165.8,1086.7c0-1.8-1.5-3.4-3.4-3.4h-28.2c-1.3,0-1.9,0.6-2.9,1.6v3.4c0.9,0.9,1.6,1.7,2.9,1.7h28.2
C164.3,1090.1,165.8,1088.6,165.8,1086.7z"/>
<path fill="#444345" d="M131.4,1088.2v-2.9h-4h-5.8H96.6c0,0-2.5,1.1,1.3,2.8c5.7,2.4,10.3,2.8,14.7,3.4
c1.5,0.2,6.6,1.3,9.9-1.5c1.1-1.1,2.4-1.8,3.4-1.8H131.4z"/>
<path fill="#444345" d="M169.3,1059.4l8.2-0.8c-0.1-0.9-0.3-1.8-0.3-2.7c-0.1-2.3-0.2-4.6-0.3-7c-0.1-1.7,0-3.5,0-5.2
c0.1-2,0.2-4.2,0.3-6.2c0.1-1.6,0.2-3.4,0.4-5c0.2-2,0.5-4,0.8-6c0.2-1.5,0.5-3.2,0.7-4.7c0.1-0.5-0.2-0.9-0.7-0.9
c-0.3-0.1-0.6-0.1-0.9-0.1c-4.2,0-8.5,0-12.4,0c0,0,0,0,0,0.1c-0.9,0-1.9,0-2.9,0c-0.6,0-0.7,0-0.7,0.6
c-0.1,0.8-0.2,1.5-0.2,2.2c0,1.5,0,3.1,0.1,4.6c0,1.5,0.1,3.1,0.2,4.6c0.1,1.5,0.2,3.1,0.3,4.6c0.1,1.5,0.2,2.8,0.3,4.2
c0.1,1.9,0.3,3.9,0.5,5.8c0.1,1.6,0.3,3.2,0.4,4.8c0.2,1.5,0.3,3.2,0.5,4.8c0.1,0.8,0.2,1.5,0.3,2.2c0,0.2,0.1,0.4,0.4,0.4
c0.5,0,0.9-0.1,1.5-0.1c0.8-0.1,1.6-0.1,2.4-0.2C168.6,1059.5,168.9,1059.4,169.3,1059.4z M174.8,1023.7c0.7,0,1.1,0.4,1.1,1.1
c0,0.6-0.5,1.1-1.1,1.1c-0.6,0-1.1-0.5-1.1-1.1C173.7,1024.1,174.2,1023.7,174.8,1023.7z"/>
<path fill="#444345" d="M175.7,1082.3c-0.5,1.5,0.9,3.3,2.6,3.3c1.3,0,2.5-0.9,2.9-2.4c0.3-1.3,0.3-2.5,0.1-3.8
c-0.5-2.6-1.1-5.2-1.5-7.7c-0.4-2-0.9-4-1.3-6.1c-0.3-1.5-0.6-3.1-0.7-4.6v-0.1l-5.2,0.5c0.2,0.9,0.4,2,0.6,3
c0.6,3.2,1.1,6.3,1.8,9.4c0.5,1.9,0.9,4,1.3,5.9c0.1,0.4,0,0.9-0.1,1.3C176,1081.3,175.8,1081.8,175.7,1082.3z"/>
<path fill="#444345" d="M85.5,1019.1c1.3,0.1,2.6-0.1,4-0.2c0.1,0,0.1-0.1,0.1-0.2c0.6-1.1-0.1-2.9-1.3-3.4c0-1.1,0.2-2.4,0-3.6
c-0.2-1.5-0.2-3.5-1.1-4.6c-2-2.9-5-6.3-7.5-8.9c-1.7-1.9-3.6-2.2-6.2-2.2c-10.1-0.1-20.1-0.2-30.1-0.3c-3.2,0-4.4,1.3-4.4,4.4
c-0.1,4.9-0.1,9.9-0.2,15c-1.1-0.1-1.3,0.5-1.3,1.3c0,0.4,0,0.8,0,1.3c0,0.7,0.3,1.1,0.9,1.1c0.9,0,1.7,0,2.7,0
c0.9,0.1,1.3-0.3,1.5-1.1c0.9-2.8,3.1-4.4,6-4.4c2.9,0,5.1,1.6,6,4.6c0.3,0.9,0.8,1.1,1.6,1.1c4.8,0,9.7,0.1,14.6,0.2
c0.9,0,1.5-0.4,1.7-1.3c0.9-2.7,3.2-4.4,6-4.4c2.8,0,4.9,1.6,5.9,4.4C84.6,1018.3,85.1,1019.1,85.5,1019.1z M82.8,1007
L82.8,1007l-9.5,0.4c-0.7,0-1.3-0.4-1.3-1.1l0.1-6.8c0-0.7,0.6-1.3,1.3-1.3l3,0.1c0.1,0,0.3,0,0.4,0.1c0.4,0.1,0.6,0.2,6.8,7.3
c0.2,0.2,0.4,0.1,0.4,0.5C84.1,1006.9,83.5,1007,82.8,1007z"/>
<path fill="#444345" d="M48.8,1014.1c-3,0-5.5,2.4-5.5,5.4s2.4,5.5,5.4,5.5s5.5-2.4,5.5-5.4
C54.2,1016.6,51.8,1014.2,48.8,1014.1z"/>
<path fill="#444345" d="M78.6,1014.5c-3,0-5.5,2.4-5.5,5.4c0,3,2.4,5.5,5.4,5.5s5.5-2.4,5.5-5.4
C84.1,1017,81.6,1014.5,78.6,1014.5z"/>
<path fill="#444345" d="M247.8,1026.3c0-0.9-2.4-1.7-10.3-0.7c0,0,1.9-1.6,2.7-1.9c0.8-0.3,4.2-2.4,3.6-5.1
c-0.6-2.7-1.6-1.1-2.9,1.1c-1.1,2.1-2.7,4-4.9,5.3c0,0-0.7-4.2-3.1-4.4c-0.8,0-4,0-7.7,0.4l-0.7,0.1c-0.4,0-0.9,0.1-1.3,0.2
c0,0.1-0.2,0.1-0.2,0.2v4.6c0,0.4-0.1,0.7-0.5,0.7s-0.5-0.3-0.5-0.7v-4.6l0,0c-0.9,0.1-1.3,0.2-1.8,0.3c0,0-7.1,1.1-11.8,2.5
h-0.1c-0.1,0-0.2,0.1-0.3,0.1c-0.3,0.1-0.6,0.2-0.9,0.3c-0.2,0.1-0.4,0.1-0.6,0.2c-0.1,0-0.1,0.1-0.2,0.1
c-0.1,0-0.2,0.1-0.3,0.1l0,0c-0.9,0.4-1.6,0.6-2.4,1.1c0,0-0.8,0.4-0.3,1.5c0.3,0.7,4.2,2.4,12,3.6v-3.5c0-0.4,0.1-0.7,0.5-0.7
s0.5,0.3,0.5,0.7v3.7c0.9,0.1,1.3,0.1,1.7,0.2l0.9,0.1c2.6,0.3,5.1,0.5,9.9,0.6v-2.9c0-0.4,0.1-0.7,0.5-0.7s0.5,0.3,0.5,0.7v2.9
h0.8c1.1,0,1.6,0,2.6-0.1c0,0,2.5,0.2,2.7-4.4c0,0,4.4-0.8,4,4.2c-0.2,3.7,3,3.8,3,1.1c0-2.5-0.7-5.4-5.5-6.4c0,0,3.9,0.5,7,1.1
C247.5,1028.4,247.8,1027.3,247.8,1026.3z"/>
</g>
<g>
<polygon fill="#444345" points="678.1,1020.6 677.4,1020.6 650.5,985.8 642.4,985.8 642.4,1038 654,1038 654,1003.2
653.4,1003.2 680.4,1038 687.7,1038 687.7,987.7 678.1,987.7 "/>
<polygon fill="#444345" points="706.1,1038 731.3,1038 731.3,1028.3 714.8,1028.3 714.8,1015.7 731.3,1015.7 731.3,1007
714.8,1007 714.8,994.4 731.3,994.4 731.3,987.7 706.1,987.7 "/>
<polygon fill="#444345" points="744.8,994.4 755.4,994.4 755.4,1038 764.1,1038 764.1,994.4 776.6,994.4 776.6,987.7
744.8,987.7 "/>
<polygon fill="#444345" points="832.4,1022.5 832.3,1022.5 821.6,985.8 815.8,985.8 805.5,1022.5 805.5,1022.5 795.1,987.7
784.6,987.7 800.9,1038 808.2,1038 817.9,1007 818.1,1007 828.2,1038 835.6,1038 853,987.7 842.4,987.7 "/>
<path fill="#444345" d="M888.7,985.4c-15.2,0-25.3,11.7-25.3,26.9c0,15,9.7,27.1,25.3,27.1c15.6,0,25.3-12,25.3-27.1
C914.1,997.1,904,985.4,888.7,985.4z M888.7,1029.6c-11.1,0-15-9.7-15-17.6c0-8.3,5.6-16.6,15-16.6c9.5,0,15,8.4,15,16.6
C903.7,1019.8,899.8,1029.6,888.7,1029.6z"/>
<path fill="#444345" d="M959.8,1002.7c0-10.9-7.1-15-17.1-15h-14.4v50.2h11.6v-20.3h-0.7l12.5,20.3h12.1l-14.5-21.4
C956.3,1015.5,959.8,1009.1,959.8,1002.7z M940.4,1010.9h-0.5v-16.5h0.6c5.3,0,9.3,1.7,9.3,8
C949.9,1008.7,945.9,1010.9,940.4,1010.9z"/>
<polygon fill="#444345" points="1015.5,987.7 1003.2,987.7 987.4,1008 987.2,1008 987.2,987.7 976.6,987.7 976.6,1038
987.2,1038 987.2,1013.8 987.4,1013.8 1003.7,1038 1016.6,1038 996.1,1010.9 "/>
<path fill="#444345" d="M360.6,873.3c-25,0-41.6,19.1-41.6,44c0,24.7,15.9,44.3,41.6,44.3c25.6,0,41.6-19.6,41.6-44.3
C402.1,892.4,385.6,873.3,360.6,873.3z M360.6,945.5c-18.1,0-24.6-15.9-24.6-28.8c0-13.6,9.2-27.3,24.6-27.3
s24.6,13.7,24.6,27.3C385.2,929.6,378.8,945.5,360.6,945.5z"/>
<path fill="#444345" d="M443.5,876.6h-22.4v83.1h15.4v-31.9h9.3c17.2,0,26.9-8,26.9-25.8C472.6,883,461.1,876.6,443.5,876.6z
M441,915.3h-4.4v-26.1h4c9.2,0,15.4,1.9,15.4,12.8C456,912.9,450.7,915.3,441,915.3z"/>
<polygon fill="#444345" points="491.7,959.7 535.1,959.7 535.1,945.2 508.1,945.2 508.1,923 533.3,923 533.3,908.5 508.1,908.5
508.1,889.2 535.1,889.2 535.1,876.6 491.7,876.6 "/>
<polygon fill="#444345" points="612.4,932.7 612.7,932.7 568.6,872.8 556.4,872.8 556.4,959.7 573.8,959.7 573.8,901.7
573.3,901.7 617.6,961.6 629.8,961.6 629.8,876.6 612.4,876.6 "/>
<polygon fill="#444345" points="695.5,959.7 711.9,959.7 711.9,923 736.1,923 736.1,908.5 711.9,908.5 711.9,889.2 738,889.2
738,876.6 695.5,876.6 "/>
<path fill="#444345" d="M795.8,961.6c25.6,0,41.6-19.6,41.6-44.3c0-24.9-16.5-44-41.6-44s-41.6,19.1-41.6,44
C754.4,942,770.3,961.6,795.8,961.6z M795.8,889.4c15.4,0,24.6,13.7,24.6,27.3c0,13-6.4,28.8-24.6,28.8
c-18.1,0-24.6-15.9-24.6-28.8C771.3,903.1,780.4,889.4,795.8,889.4z"/>
<path fill="#444345" d="M894.1,873.3c-25,0-41.6,19.1-41.6,44c0,24.7,15.9,44.3,41.6,44.3c25.6,0,41.6-19.6,41.6-44.3
C935.6,892.4,919.3,873.3,894.1,873.3z M894.1,945.5c-18.1,0-24.6-15.9-24.6-28.8c0-13.6,9.2-27.3,24.6-27.3
c15.4,0,24.6,13.7,24.6,27.3C918.7,929.6,912.3,945.5,894.1,945.5z"/>
<path fill="#444345" d="M1018.7,918.2c0-24-16.2-41.6-40.6-41.6h-21.8v83.1h21.8C1002,959.7,1018.7,941.8,1018.7,918.2z
M971.8,945.2v-56.1h2.1c18.5,0,27.9,9.7,27.9,28c0,16.6-7.9,28-27.9,28L971.8,945.2L971.8,945.2z"/>
</g>
</g>
</g>
</g>
<g id="OFN_beta__x28_outlined_x29_">
<g>
<g>
<path fill="#FFFFFF" d="M787.9,977.7l0.2-5.2c0-0.4,0-0.5,0-0.6c-0.1-0.1-0.2-0.3-0.4-0.7c-0.1-0.3-0.2-0.6-0.2-0.7v0
c0.1,0,0.3-0.1,0.9-0.1c0.5,0,1.1,0,1.6,0c0.5,0,1,0.1,1.4,0.1c0.4,0.1,0.9,0.2,1.2,0.3c0.4,0.1,0.7,0.4,1,0.6
c0.2,0.3,0.3,0.6,0.3,0.9s-0.1,0.6-0.2,0.9c-0.1,0.3-0.3,0.5-0.5,0.6c-0.3,0.3-0.6,0.4-1,0.6c0,0,0,0,0,0s0.1,0,0.2,0.1
s0.2,0.1,0.3,0.1c0.1,0,0.2,0.1,0.4,0.2c0.2,0.1,0.3,0.2,0.4,0.3s0.2,0.2,0.4,0.4c0.2,0.3,0.4,0.8,0.3,1.3c0,0.5-0.2,1-0.5,1.5
c-0.3,0.4-0.8,0.8-1.4,1.1c-1.1,0.5-2.4,0.7-3.8,0.6l-0.7-0.1c0,0,0-0.4,0-1C787.9,978.6,787.9,978.2,787.9,977.7z M789.8,978.8
c0.6,0,1.2-0.1,1.7-0.5c0.5-0.3,0.9-0.8,0.9-1.2c0-0.3-0.1-0.6-0.4-0.9c-0.4-0.4-1.1-0.6-1.9-0.6c-0.2,0-0.3,0-0.3,0
s0,0.4-0.1,1.3C789.6,977.7,789.6,978.3,789.8,978.8C789.7,978.8,789.7,978.8,789.8,978.8z M791,973.9c0.2-0.1,0.4-0.2,0.6-0.4
c0.2-0.2,0.3-0.4,0.3-0.6c0-0.2,0-0.4-0.2-0.5s-0.3-0.2-0.5-0.3c-0.2-0.1-0.4-0.1-0.5-0.2c-0.2,0-0.3-0.1-0.5-0.1s-0.2,0-0.3,0
c0,0,0,0.4-0.1,1.1c0,0.7-0.1,1.1-0.1,1.2c0,0,0.1,0,0.1,0c0.1,0,0.2,0,0.4-0.1C790.5,974.1,790.8,974.1,791,973.9z"/>
<path fill="#FFFFFF" d="M796.1,974.6l0.1-1.5c0-0.4,0-0.6,0-0.6c-0.1-0.1-0.2-0.3-0.4-0.8c-0.1-0.4-0.2-0.6-0.2-0.8
c0.1-0.1,1.7-0.1,4.8,0c0.8,0,1.2,0.1,1.2,0.1c0,0.2-0.1,0.4-0.1,0.6c-0.1,0.2-0.2,0.4-0.3,0.5s-0.2,0.2-0.2,0.2c0,0-0.2,0-0.5,0
c-0.3,0-0.8,0-1.4,0c-0.6,0-0.9,0.1-1,0.1c-0.1,0.1-0.1,0.5-0.1,1.5v0.6c0.4,0,0.9,0,1.6,0c0.7,0,1.1,0.1,1.1,0.1
c0,0.3-0.1,0.7-0.4,1.1c-0.1,0.1-0.1,0.2-0.2,0.2c-0.2,0-0.6,0-1.2,0c-0.6,0-0.9,0.1-1,0.1c0,0,0,0.4-0.1,1.2c0,0.8,0,1.2,0,1.2
c0.1,0.1,0.9,0.2,2.4,0.3c0.6,0,1,0,1.2,0s0.3,0,0.3,0c0,0.2-0.1,0.5-0.2,0.8c-0.2,0.3-0.3,0.5-0.5,0.7c-0.1,0.1-0.9,0.1-2.5,0
c-1.5-0.1-2.4-0.1-2.4-0.2c-0.1,0-0.1-0.5,0-1.3c0-0.9,0.1-1.7,0.1-2.6c-0.2-0.1-0.3-0.4-0.4-0.7s-0.2-0.6-0.2-0.8
C795.3,974.6,795.6,974.6,796.1,974.6z"/>
<path fill="#FFFFFF" d="M803.8,979.1l0.3-5.7c0-0.5,0-0.7,0-0.7c0,0-0.1,0-0.2,0c-0.3,0-0.8,0-1.5,0.1l-0.4,0l0-0.3
c0-0.4,0.1-0.8,0.3-1.1l0.1-0.2c0.7,0,1.5,0,2.4,0c0.9,0,1.7,0,2.4,0c0.7,0,1.1,0.1,1.1,0.1c0,0.3,0,0.6-0.1,1
c-0.1,0.4-0.1,0.6-0.2,0.6c-0.2-0.1-0.6-0.1-1.2-0.1c-0.6,0-0.9,0-0.9,0c-0.1,0.1-0.1,1.3-0.2,3.6c-0.1,2.3,0,3.7,0.3,4.2l0,0
c0,0.1-0.2,0.1-0.5,0.2c-0.3,0.1-0.6,0.1-0.9,0.1c-0.3,0-0.5-0.1-0.7-0.1C803.8,980.6,803.8,980.1,803.8,979.1z"/>
<path fill="#FFFFFF" d="M812.2,977.5c-0.1,0-0.5,0-1.2-0.1c-0.6,0-1,0-1.2,0c-0.5,1.6-0.9,2.7-1,3.4c0,0-0.1,0-0.3,0
c-0.2,0-0.4,0-0.7-0.1c-0.5-0.1-0.8-0.2-0.8-0.2c0-0.4,0.4-1.4,1.1-3.1c-0.1-0.1-0.2-0.3-0.4-0.6c-0.1-0.3-0.2-0.6-0.2-0.8
c0,0,0.4,0,1.1,0c0.8-2.2,1.3-3.3,1.4-3.4c0,0,0.2-0.1,0.5-0.1s0.5-0.1,0.5-0.1l0-0.2c0-0.1,0-0.3,0-0.4c0-0.1,0-0.2,0-0.3
c0,0,0.1-0.1,0.2-0.2c0.4-0.2,0.9-0.3,1.4-0.3c0.1,0.5,0.2,1.2,0.3,2.1c0.1,0.9,0.4,2.1,0.8,3.9c0.4,1.7,0.8,2.9,1.1,3.6l0.1,0.2
c0,0-0.1,0.1-0.3,0.2c-0.2,0.1-0.4,0.2-0.7,0.3c-0.3,0.1-0.5,0.1-0.8,0.1c-0.1,0-0.3-0.5-0.5-1.6S812.2,978,812.2,977.5z
M811.9,976.1c-0.3-1.3-0.4-2.1-0.4-2.2c0-0.2,0-0.2-0.1-0.2s0,0-0.1,0.1c-0.1,0.1-0.2,0.5-0.5,1.1c-0.2,0.6-0.4,1-0.5,1.2
C811.3,976,811.9,976,811.9,976.1z"/>
</g>
<g>
<path fill="#FFFFFF" d="M791.1,1003.2c-0.1-0.1-0.5-1.3-1.3-3.4l-0.4-1.1c0,0,0-0.1,0-0.1c-0.1,0.1-0.5,0.9-1.2,2.1
c-0.6,1.3-1,2-1.1,2.1c-0.7,0-1.1-0.1-1.2-0.4c0.1-0.3,0.4-1,0.9-1.9c0.5-0.9,1-1.8,1.4-2.5l0.7-1.2c0.1-0.1,0.3-0.1,0.6-0.2h0.1
l0.5,0.1c1,3.1,1.7,5.1,2,6.1C791.9,1003,791.5,1003.2,791.1,1003.2L791.1,1003.2z"/>
</g>
<g>
<g>
<path fill="#FFFFFF" d="M344.7,1004.5v-10.6c0-1.2-1.1-2-2.2-2h-17c-1.2,0-2.4,0.8-2.4,2v10.6c0,1.2,1.2,2.1,2.4,2.1h17
C343.6,1006.6,344.7,1005.6,344.7,1004.5z M325.5,993.8h17.2v10.8h-17.2V993.8z"/>
<path fill="#FFFFFF" d="M365.6,927.2c-4.3,8.5-6.1,9.6-6.1,13.1c0,3.4,2.8,6.2,6.3,6.2c3.4,0,6.3-2.8,6.3-6.2
c0-3.6-1.6-5.6-6.1-13.1C365.8,927,365.7,927,365.6,927.2z M363.9,940.2c0,1.1-0.7,1.5-1.3,1.5c-0.8,0-1.3-0.6-1.3-1.3
c0-2.5,1.2-4.1,2.3-5.5c0.3-0.4,0.6-0.9,0.9-1.3C364.5,933.5,363.9,938.1,363.9,940.2z"/>
<path fill="#FFFFFF" d="M312.1,996.8c-1.3-0.8-3.8-2.4-3.8-2.4s0,0,0,3.2s5.4,4.4,5.4,4.4C313.6,1000.5,313.5,997.6,312.1,996.8
z"/>
<path fill="#FFFFFF" d="M312.1,1002.5c-1.3-0.8-3.8-2.4-3.8-2.4s0,0,0,3.2s5.4,4.4,5.4,4.4
C313.6,1006.3,313.5,1003.4,312.1,1002.5z"/>
<path fill="#FFFFFF" d="M313.7,1013.6c-0.1-1.5-0.2-4.4-1.5-5.3c-1.3-0.8-3.9-2.4-3.9-2.4s0,0,0,3.2S313.7,1013.6,313.7,1013.6z
"/>
<path fill="#FFFFFF" d="M315.5,1002c0,0,5.6-1.2,5.6-4.4c0-3.2,0-3.2,0-3.2s-3.1,1.5-4.4,2.4
C315.3,997.6,315.6,1000.5,315.5,1002z"/>
<path fill="#FFFFFF" d="M315.5,1007.8c0,0,5.6-1.2,5.6-4.4c0-3.2,0-3.2,0-3.2s-3.1,1.5-4.4,2.4
C315.3,1003.4,315.6,1006.3,315.5,1007.8z"/>
<path fill="#FFFFFF" d="M321.1,1009.2c0-3.2,0-3.2,0-3.2s-3.1,1.5-4.4,2.4c-1.3,0.8-1.2,3.7-1.3,5.3
C315.4,1013.6,321.1,1012.4,321.1,1009.2z"/>
<path fill="#FFFFFF" d="M316.5,993.6c0-1.5-0.3-3.4-2.1-5.2c0,0-2,2.5-2,4.9c0,1.6,0.9,2.9,2,4.3
C314.4,997.5,316.5,995.1,316.5,993.6z"/>
<path fill="#FFFFFF" d="M307.9,904.6c0.4,0,0.8,0,1.1-0.2c0.8,0.8,1.9,1.1,2.9,1.1c1.1,0,2.2-0.4,2.9-1.1
c0.3,0.1,0.8,0.2,1.1,0.2c1.8,0,3.2-1.4,3.2-3.2s-1.4-3.2-3.2-3.2c-0.1,0-0.3,0-0.4,0c-0.8-1.2-2.2-1.9-3.6-1.9
c-1.5,0-2.8,0.7-3.6,1.9c-0.1,0-0.3,0-0.4,0c-1.8,0-3.2,1.4-3.2,3.2C304.8,903.2,306.2,904.6,307.9,904.6z"/>
<path fill="#FFFFFF" d="M312.9,910.1c0,0.5,0.4,0.9,0.9,0.9c0.5,0,0.9-0.4,0.9-0.9s-0.9-1.8-0.9-1.8S312.9,909.5,312.9,910.1z"
/>
<path fill="#FFFFFF" d="M315.5,908.2c0.5,0,0.9-0.4,0.9-0.9s-0.9-1.8-0.9-1.8s-0.9,1.3-0.9,1.8
C314.5,907.8,315,908.2,315.5,908.2z"/>
<path fill="#FFFFFF" d="M311.8,908.7c0-0.5-0.9-1.8-0.9-1.8s-0.9,1.3-0.9,1.8c0,0.5,0.4,0.9,0.9,0.9
C311.4,909.6,311.8,909.2,311.8,908.7z"/>
<path fill="#FFFFFF" d="M269.5,985.7c0,3.3,2.7,5.9,5.9,5.9c3.3,0,5.9-2.7,5.9-5.9c0-3.3-2.7-5.9-5.9-5.9
S269.5,982.4,269.5,985.7z M279.8,985.7c0,2.5-2,4.5-4.4,4.5c-2.5,0-4.5-2-4.5-4.5s2-4.5,4.5-4.5
C277.9,981.2,279.8,983.3,279.8,985.7z"/>
<polygon fill="#FFFFFF" points="273.2,987.9 276.2,986.5 277.7,983.5 274.7,985 "/>
<path fill="#FFFFFF" d="M323,912.3c0,0,0-0.1,0-0.1L323,912.3L323,912.3z"/>
<path fill="#FFFFFF" d="M321.3,917.3c3.6-1,7.3,1.6,7.8,5.4c0,0.1,0,0.3,0,0.5c0.1,0,0.3,0,0.4,0c3-0.1,6.2-0.1,9.2-0.2
c-1.3,0.3-2.2,1.5-2.2,2.9c0,1.7,1.4,3,3,3s3-1.4,3-3c0-1.5-1.1-2.8-2.6-3c2.3-0.1,1.8-0.1,2.2-2.1c0.2-1,0.3-2,0.4-2.9
c0.1-0.9-0.1-1.1-1.1-1.2c-1.4,0-2.6-0.1-4-0.1c0,0-0.1,0-0.1-0.1c0-1,0.2-3.5,0.2-3.5s-0.5-0.4-1,0c0,1.2,0,2.3,0,3.6
c0,0-1.8,0-4.2-0.1c-0.1,0-0.5-0.2-0.6-0.5c-0.3-1-1.2-2.8-2.2-5.8c0,0-0.6-1.2-1.9-1.2c-1.1,0-6.8,0-6.8,0v7.2
c0,0-0.4,0.2-0.8,0.2C320.1,917.3,320.4,917.5,321.3,917.3z M341.3,925.8c0,0.9-0.8,1.6-1.6,1.6c-0.9,0-1.6-0.8-1.6-1.6
c0-0.9,0.8-1.6,1.6-1.6C340.6,924.2,341.3,924.9,341.3,925.8z M323,912.1v-1.4h5.6l1.8,5.4l0,0c-2.4,0-5.2,0-7.4,0.1V912.1z"/>
<path fill="#FFFFFF" d="M322.7,917.9c-3,0-5.5,2.5-5.5,5.5s2.5,5.5,5.5,5.5c3,0,5.5-2.5,5.5-5.5S325.8,917.9,322.7,917.9z
M322.7,926.5c-1.7,0-3-1.4-3-3s1.4-3,3-3c1.7,0,3,1.4,3,3S324.4,926.5,322.7,926.5z"/>
<path fill="#FFFFFF" d="M309.4,1018.2l-4-2.2c0.2-0.9,0.2-1.9,0-2.8c-0.8-2.8-4-4.5-6.8-3.7c-2.8,0.8-4.5,3.7-3.6,6.5
c0.8,2.8,4,4.5,6.8,3.7c0.9-0.3,1.8-0.8,2.4-1.4l4,2.2c0.4,0.2,0.9,0,1.1-0.3l0.5-1C310,1018.8,309.8,1018.5,309.4,1018.2z
M301.1,1017.6c-1.6,0.5-3.6-0.5-4-2.2c-0.5-1.6,0.5-3.4,2.1-3.8c1.6-0.5,3.6,0.5,4,2.2C303.7,1015.5,302.7,1017.2,301.1,1017.6
z"/>
<path fill="#FFFFFF" d="M286.6,973.9c3-3.5,1.4-5.9,0.9-6.9c-0.5-1-0.6-2.4-0.6-2.4l0.1-0.5l0.1-0.5c-0.7-0.2-1.4,0.1-1.4,0.1
c0.1,1.1-0.1,2.3-0.3,2.7c-0.2,0.5-0.8,1.4-1.1,2s-1.1,2.4-5.1,4.1c-4,1.7-9.3,0.1-9.3,0.1c-1.4-0.3-2.5,0.2-2.5,0.2l-0.3,0.5
l0,0.4l-0.1,0.2l0,0.3c3.9,6.1,12,4,12,4S283.5,977.3,286.6,973.9z"/>
<path fill="#FFFFFF" d="M374.6,1010.6c1.8,0,3.5-0.3,5.1-1c0.6-0.2,0.8-0.6,0.8-1.3c0-0.3,0-0.7,0-1c0,0,0,0,0-0.1
c0,0-0.1-0.2-0.3-0.2c-0.8,0-1-0.2-1.2-1c-0.2-0.5-0.3-1.1-0.6-1.6c2-0.5,1.7-1.9,1-3.7c-0.6,0.8-0.1,1.1-1.1,1.3
c-0.9,0.2-1.5,0.7-1.9,1.5c0,0.1-0.1,0.3-0.2,0.6c-0.1-1,0.3-1.6,1.2-2.4c-0.4-0.4-2-0.2-2.5-0.5c-1.6-1.1-8.9-2.5-13.5,1
c-0.2-0.2-0.5-0.4-0.8-0.6c1.1-0.4,1.5-1,1.3-1.9c-0.1-0.6-0.6-1-1.2-1c-1,0-1.3,0.5-1.5,2.1c-0.3-0.3-0.6-0.6-1-1
c0,0.3-0.1,0.5,0,0.8c0.1,0.5,0.5,0.8,1,0.9c0.3,0,0.5,0.2,0.7,0.5c0.1,0.2,0.2,0.4,0.4,0.6c0.5,0.5,0.5,1.1,0.5,1.8
c0,1.5,0,3,0.2,4.6c0.2,1.6,0.6,3.2,1.3,4.7c0.2,0.5,0.6,0.5,1,0.4c0.1,0,0.3-0.4,0.3-0.6c0.1-1.2,0.6-2.2,1.2-3.2
c2.1,0.6,4.2,0.8,6.4,0.6c0.1,0,0.3,0.2,0.4,0.3c0.4,0.8,0.8,1.6,1.1,2.5c0.2,0.5,0.6,0.5,1,0.4c0.1,0,0.1-0.4,0.1-0.7
c0-0.9,0-1.8,0-2.7c0.1,0,0.1,0,0.1-0.1C374.4,1010.6,374.5,1010.6,374.6,1010.6z M360.3,1000.6c-0.2-0.6-0.1-1,0.3-1
c0.2,0,0.5,0,0.6,0.3C361.3,1000.3,361,1000.6,360.3,1000.6z"/>
<path fill="#FFFFFF" d="M282.1,941.8c3.4-0.3,4.5-2,5.5-5.3c0.6-2,0.7-3.9,0.8-6c-0.1-1.7-0.1-3.4-0.3-5.1
c-0.3-2.4-0.9-4.7-2.1-6.8c-0.9-1.7-1.1-2.7-3-3c-2-0.3-4.3,0.5-5.2,2.8c-0.2,0.6-0.5,1.2-0.7,1.9c-0.3,1.4-1.2,2.6-2.3,3.6
c-2.9,2.7-3.9,6.2-3.2,10C272.4,938.9,277,942.2,282.1,941.8z M275.8,926c1.8-1.7,3-3.5,3.6-5.8c0.1-0.5,0.3-0.9,0.6-1.3
c0.7-1.2,2.2-1.4,3.1-0.4c0.4,0.4,0.7,1,0.9,1.5c1.4,3.4,2,7,2.1,10.1c0,2.4-0.1,4.3-0.8,6.1c-0.9,2.6-2.7,3.8-5.1,3.6
c-2.1-0.2-3.7-1.2-5-2.8C272.7,933.7,272.9,928.7,275.8,926z"/>
<path fill="#FFFFFF" d="M280,938.1c1.6,0.1,2.8-0.3,3.6-1.8c1.4-2.8,1.5-5.7,0.5-8.8c-0.2-0.6-0.7-1.1-1.3-1.4
c-1.8-0.8-3.6-0.8-5.4,0c-0.8,0.4-1.6,0.9-2,1.8c-0.2,0.5-0.1,0.8,0.3,1.1c0.8,0.4,1.5,0.8,2.3,1.2c0.2,0.1,0.4,0.3,0.7,0.5
c0,0,0,0.1-0.1,0.2c-0.2,0-0.4,0-0.6-0.1c-0.9-0.2-1.8-0.5-2.7-0.8c-0.5-0.1-0.8,0-0.9,0.5c0,0.2-0.1,0.4-0.1,0.6
C274.1,934.6,276.6,937.8,280,938.1z"/>
<path fill="#FFFFFF" d="M280.6,923.8c0.5,0.1,1,0.2,1.5,0.3c1,0,1.4-0.3,1.4-1.3c0-0.7-0.1-1.4-0.3-2.1c-0.1-0.6-0.5-1-1.2-1
c-0.7,0-1.3,0.2-1.5,0.9c-0.2,0.6-0.4,1.2-0.6,1.9C279.6,923.2,279.8,923.6,280.6,923.8z"/>
<path fill="#FFFFFF" d="M294,971.9c-0.2,0-0.4,0-0.5-0.2c0,0-0.2-0.7-1-1.5c-0.2-0.2-0.4-0.3-0.6-0.5c-0.3-0.2-0.6-0.5-0.9-0.8
c0.5,4.1,2.2,7.1,4.2,7.1c2.4,0,4.4-4.3,4.4-9.6s-2-9.6-4.4-9.6c-1.6,0-2.9,1.9-3.7,4.6c0.3,0.4,0.6,0.7,1,0.9
c0.2,0.1,0.4,0.3,0.6,0.5c1,0.9,1.2,1.8,1.2,1.8c0,0,0,0,0,0.1c0,0.1-0.1,0.3-0.3,0.3c-0.2,0-0.4,0-0.5-0.2c0,0-0.2-0.7-1-1.5
c-0.2-0.2-0.4-0.3-0.6-0.5c-0.2-0.1-0.4-0.3-0.7-0.5c-0.1,0.4-0.2,0.9-0.2,1.4c0.3,1.2,0.8,1.6,1.4,2c0.2,0.1,0.4,0.3,0.6,0.5
c1,0.9,1.2,1.8,1.2,1.8c0,0,0,0,0,0.1c0,0.1-0.1,0.3-0.3,0.3c-0.2,0-0.4,0-0.5-0.2c0,0-0.2-0.7-1-1.5c-0.2-0.2-0.4-0.3-0.6-0.5
c-0.3-0.2-0.8-0.5-1-1c0,0.3,0,0.6,0,0.9c0.3,1.8,0.9,2.2,1.6,2.7c0.2,0.1,0.4,0.3,0.6,0.5c1,0.9,1.2,1.8,1.2,1.8c0,0,0,0,0,0.1
C294.3,971.7,294.2,971.9,294,971.9z"/>
<path fill="#FFFFFF" d="M365.3,917.7c0.8,0.9,1.8,1.8,3,1.9c0.9,0.1,2-0.4,2.7-0.4c1.4,0,1.1,0.3,2.7,0.3c1.5,0,4.3-3.6,5-7.2
c0.1-0.9,0-2.5-0.7-4c-0.8-1.8-3.3-2.5-4.8-2.2c-0.4,0-1.3,0.2-2,0.3c0.1-0.5,0.5-1.3,1.3-1.8c0.2-0.1,0.3-0.4,0.2-0.7
c-0.1-0.2-0.4-0.3-0.7-0.2c-1.4,0.8-1.8,2.2-1.9,2.8c-0.6-0.1-2.3-0.4-2.9-0.4c-0.9,0-1.7,0.3-2.5,0.9c-0.7,0.5-1,1.3-1.3,2.1
c-0.4,1.1-0.5,2.3-0.4,3.5C363.2,914.6,364,916.3,365.3,917.7z M368.3,908.5c0.8,0,1.4,0.6,1.4,1.3c0,0.9-0.6,1.7-1.4,1.7
c-0.6,0-1.1-0.8-1.1-1.6C367.2,909.1,367.6,908.5,368.3,908.5z"/>
<path fill="#FFFFFF" d="M369.3,905.2c0.5,0,1.2,0.1,1.5-0.5c0.3-0.6-0.1-1.1-0.5-1.6c-0.9-1-2.4-1.2-3.9-0.5
c0.2,0.3,0.4,0.6,0.5,0.9C367.3,904.5,368.2,905,369.3,905.2z"/>
<path fill="#FFFFFF" d="M333.1,908.2c1-2.1,2.4-3.6,2.4-3.6c2,0.8,5.5,1.6,8-0.1c3.3-2.3,2.9-7.4,7.6-10c1.1-0.6-9.2-3-14.6,0.1
c-4,2.3-3.7,6.1-3.6,7.5c5.2-6.1,12.8-5.8,12.8-5.8s-10.9,3.8-14.1,11.3C331.3,908.1,332.8,908.9,333.1,908.2z"/>
<path fill="#FFFFFF" d="M373,983.9c2.5-5-0.3-8.7-1.4-10c-1.1,9.6-9.1,14.5-9.1,14.5s8.5-11.1,6.7-20.9c-0.1-0.8-2.1-0.6-2,0.3
c0.4,2.8,0.1,5.3,0.1,5.3c-2.6,0.6-6.6,2.1-8,5.5c-1.8,4.5,2,9.5-1,15.2C357.6,995.2,369.6,990.7,373,983.9z"/>
<path fill="#FFFFFF" d="M283.9,946.2c-1,0.8-0.8,2.8,0,3.8c0.8,1,2.7,1.7,3.7,0.9c0.2-0.1,0.8-0.6,0.8-0.6
c1.1,0.9,1.8,0,2.3,0.6c0.6,0.8,1.9,2.4,2.4,2.9c0.4,0.5,1.2,1,1.6,0.7c0.4-0.3,1.8-1.3,2.3-1.7c0.5-0.4,0.5-0.9,0.2-1.3
s-1.1-0.3-1.5-0.8c-0.4-0.4-1.6-1.9-1.9-2.4c-0.5-0.6,0-1.4,0.8-1.7c6-2.3,8.2,1.2,10-0.2c1.4-1.1-0.1-5.7-3.4-9.8
c-3.2-4.1-7.4-6.8-8.9-5.6C290.2,932.9,296,937.1,283.9,946.2z M294.1,933.4c0.3-0.2,3.3,1.4,5.8,4.6c2.5,3.2,3.2,6.2,2.8,6.4
c-0.4,0.2-3.2-1-5.8-4.2C294.5,937,293.8,933.7,294.1,933.4z"/>
<path fill="#FFFFFF" d="M272.6,970.7c4.2,0,7.6-2,7.6-3c0,0,0-0.3,0-3.1c0-2.9-5.2-5.3-5.2-7.3c0-2.1,5.2-4.4,5.2-7.3
s0-3.1,0-3.1c0-1.1-3.5-3-7.6-3c-4.2,0-7.6,1.9-7.6,3c0,0,0,0.3,0,3.1c0,2.9,5.2,5.3,5.2,7.3c0,2.1-5.2,4.4-5.2,7.3s0,3.1,0,3.1
C265,968.7,268.5,970.7,272.6,970.7z M266.8,946.8c0.9-0.6,2.7-1.5,5.6-1.5c2.9,0,5.4,1.5,5.4,1.5c0.2,0.1,0.9,0.5,0.4,0.8
c-1.1,0.7-3.4,1.4-5.9,1.4c-2.6,0-4.7-0.8-5.8-1.4C265.9,947.2,266.8,946.8,266.8,946.8z M266.5,964.5c0-0.9,1.4-2.3,2.4-3.3
c1.4-1.4,2.8-2.4,2.8-4c0-1.6-1.4-2.7-2.8-4c-1-1-2.5-2.4-2.5-3.3l0-1.3c1.4,0.8,3.6,1.5,5.9,1.5c2.4,0,4.6-0.7,6-1.5l0,1.3
c0,0.9-1.4,2.3-2.5,3.3c-1.4,1.4-2.8,2.4-2.8,4c0,1.6,1.1,2.7,2.6,4c1,1,2.3,2.4,2.3,3.3v1.8c-1-0.6-4.8-1-4.8-3
c0-1-1.4-1-1.4,0c0,2-4.1,2.3-5.1,3L266.5,964.5L266.5,964.5z"/>
<path fill="#FFFFFF" d="M372.4,929.8c0,5.6,4.5,10.1,10.1,10.1c5.6,0,10.1-4.5,10.1-10.1c0-5.6-4.5-10.1-10.1-10.1
C376.9,919.7,372.4,924.2,372.4,929.8z M385.3,921.6c3.4,1.1,5.9,4.4,5.9,8.1c0,2-0.7,3.8-1.8,5.3c-0.3-0.2-0.6-0.9-0.3-1.6
c0.3-0.7,0.4-2.3,0.3-2.9c0-0.6-0.4-2.1-1.3-2.2c-0.9,0-1.5-0.3-2-1.4c-1.1-2.2,2.1-2.6,0.9-3.8c-0.3-0.3-1.9,1.4-2.1-0.9
C385,922.1,385.1,921.9,385.3,921.6z M387.3,937c-1.4,0.9-3,1.4-4.8,1.4c-0.9,0-1.9-0.1-2.7-0.4c0.5-0.3,0.6-0.6,1-0.6
c0.5,0,1-0.2,1.6-0.3c0.5-0.1,1.5-0.6,2.4-0.8C385.5,936.2,386.9,936.3,387.3,937z M381.3,921.3c-0.2,0.4-0.8,0.6-1.1,0.9
c-0.8,0.6-1,0.5-1.4,1.2c-0.4,0.6-1.7,1.5-1.7,2s0.6,1,0.9,0.9c0.3-0.1,1.2-0.1,1.7,0.1c0.5,0.2,4.1,0.3,2.9,3.5
c-0.3,1-2,0.8-2.4,2.4c0,0.2-0.3,1.2-0.3,1.6c0,0.5,0.3,2.5-0.1,2.5c-0.5,0-1.8-1.7-1.8-2.1c0-0.3-0.3-1.4-0.3-2.4
s-1.6-0.9-1.6-2.2c0-1.1,0.9-1.7,0.7-2.2c-0.2-0.5-1.7-0.5-2.4-0.6C375.6,923.8,378.2,921.7,381.3,921.3z"/>
<path fill="#FFFFFF" d="M334.1,995.5c-2,0-3.7,1.7-3.7,3.7s1.7,3.7,3.7,3.7c2,0,3.7-1.7,3.7-3.7
C337.8,997.1,336.1,995.5,334.1,995.5z M332.5,1000.7c0-0.1-0.1-0.5-0.1-0.8s-0.6-0.3-0.6-0.8c0-0.4,0.3-0.6,0.2-0.8
c0-0.2-0.6-0.2-0.8-0.2c0.4-1,1.4-1.8,2.5-2c-0.1,0.1-0.3,0.2-0.4,0.3c-0.2,0.2-0.4,0.2-0.5,0.4c-0.1,0.2-0.6,0.5-0.6,0.8
c0,0.1,0.2,0.3,0.3,0.3c0.1,0,0.4,0,0.6,0c0.2,0,1.5,0.1,1.1,1.2c-0.1,0.3-0.8,0.3-0.9,0.9c0,0.1-0.1,0.4-0.1,0.6
c0,0.2,0.1,0.9,0,0.9C333,1001.5,332.5,1000.8,332.5,1000.7z M334.1,1002.3c-0.3,0-0.7,0-1-0.1c0.2-0.1,0.2-0.2,0.4-0.2
c0.2,0,0.3-0.1,0.6-0.1c0.2,0,0.5-0.2,0.8-0.2c0.2,0,0.8,0,0.9,0.2C335.3,1002.1,334.8,1002.3,334.1,1002.3z M336.6,1001.1
c-0.1-0.1-0.2-0.3-0.1-0.6c0.1-0.2,0.1-0.8,0.1-1.1c0-0.2-0.1-0.8-0.5-0.8c-0.3,0-0.5-0.1-0.8-0.5c-0.4-0.8,0.8-0.9,0.3-1.4
c-0.1-0.1-0.7,0.5-0.8-0.3c0,0,0-0.1,0.1-0.2c1.2,0.4,2.2,1.6,2.2,3C337.3,999.9,337,1000.5,336.6,1001.1z"/>
<path fill="#FFFFFF" d="M287.9,1011.5c0,0.1,0,0.2,0,0.4c0,0.9,0.8,1.6,1.7,1.6c0.9,0,1.6-0.6,1.7-1.5c0-0.1,0-0.3,0-0.4
c0-0.5,0.2-0.6,0.6-0.8c3.3-0.8,5.8-3.4,6.3-6.6c0-0.4,0-0.8,0.2-1.1c0.3-0.2,0.8-0.4,0.9-0.8c0.1-0.2-0.2-0.7-0.3-1.1
c0.5-0.5,0.5-0.8-0.1-1.5c0.7-0.6,0.7-1,0-1.6c0.4-0.2,0.7-0.6,0.5-1c-0.1-0.3-0.5-0.5-0.8-0.7c0,0,0,0.1-0.1,0.1
c0-0.3,0-0.6-0.2-0.8c-0.2-0.2-0.5-0.5-0.8-0.6c-0.1,0-0.5,0.3-0.6,0.5c-0.3,0.7-0.5,1.4-0.9,2.1c-0.3,0.7-0.7,1.4-1.1,2
c-1.4,1.7-3.2,2.3-5.3,1.8c-2.1-0.4-3.5-1.7-4-3.7c-0.1-0.4-0.1-0.8-0.2-1.2c0.4-0.3,1.1-0.5,0.8-1.1c-0.1-0.3-0.6-0.5-1-0.9
c0-0.2,0.1-0.8-0.4-1c-0.5-0.2-0.8,0.1-1.1,0.6c-0.3-0.4-0.7-0.8-1.2-0.5c-0.3,0.2-0.4,0.7-0.8,1.1c-0.3,0-0.9,0-1,0.6
c0,0.4,0.3,0.8,1.2,1c-0.6,0.7-1.5,0.6-2.2,1.2c0.5,0.3,1,0.6,1.6,0.9c0.3,0.1,0.4,0.3,0.3,0.6c-0.1,1.1-0.1,2.2-0.2,3.3
c-0.4,4.7,2.8,7.3,5.8,8.1C287.7,1010.8,287.9,1010.9,287.9,1011.5z M283.2,997.7c-0.1,0-0.3-0.2-0.7-0.4
c0.3-0.2,0.5-0.4,0.7-0.4c0.1,0,0.4,0.3,0.4,0.4C283.5,997.5,283.3,997.7,283.2,997.7z"/>
<path fill="#FFFFFF" d="M372.7,950h-3.3c-0.6,0-1.4,0.3-1.7,0.8l-4.3,5.6c-0.3,0.5-0.1,0.5,0.4,0.5h17.6c0.6,0,0.8,0,0.5-0.5
l-3.8-5.6c-0.3-0.5-1.1-0.8-1.7-0.8h-0.8v-2h-2.9V950z"/>
<path fill="#FFFFFF" d="M376.6,944.8l0.2,0c0.5-0.1,1-0.5,1.4-1.1c0.3-0.6,0.4-1.8,0.3-2.5c-0.3,1-1.1,1.4-1.9,1.7
c-0.2,0.1-0.4,0.2-0.6,0.2c-0.2,0.1-0.5,0.2-0.8,0.3c-0.8,0.4-1.1,1-1.2,2c-0.1,0.4-0.1,0.8-0.1,1.4c0.4-1,0.8-1.5,1.7-1.8
C375.9,945,376.3,944.9,376.6,944.8z"/>
<path fill="#FFFFFF" d="M380.6,964.8h0.5v-6.1c0-0.6,0-0.8,0-0.8h-0.5h-0.7h-7.7h-0.7H366h-2.1v1.1v5.7h2.1h1.4v-4.1
c0,0,0.1,0.1,0.5,0.1h2.7c0,0,0.2-0.5,0.2-0.1v4h0.8h0.7h7.7H380.6L380.6,964.8z M378.1,962.8c0,0.1,0.3,0.5,0.2,0.5h-2.9
c-0.1,0-0.3-0.4-0.3-0.5v-2.9c0-0.1,0.2,0,0.3,0h2.9c0.1,0-0.2,0-0.2,0V962.8z"/>
<path fill="#FFFFFF" d="M337.9,1009c0-0.3-0.2-0.5-0.5-0.5h-6.8c-0.3,0-0.5,0.2-0.5,0.5c0,0.3,0.2,0.5,0.5,0.5h6.8
C337.7,1009.5,337.9,1009.3,337.9,1009z"/>
<rect x="331.9" y="1007.1" fill="#FFFFFF" width="4.9" height="1.5"/>
<path fill="#FFFFFF" d="M325,892.9c-2.3,0.4-4,2.3-4.2,4.6l4.4-0.2L325,892.9z"/>
<path fill="#FFFFFF" d="M326,898.6l-5.1,0.2c0.4,2.5,2.7,4.3,5.2,4.1c2.8-0.1,4.9-2.5,4.8-5.3c-0.1-2.6-2.2-4.6-4.6-4.8l0.2,5.1
C326.5,898.2,326.2,898.5,326,898.6z"/>
<path fill="#FFFFFF" d="M304.8,912.1c0.2,0,0.4-0.3,0.7-0.3c0.2,0,0.4-0.3,0.6-0.4l2.8-2c0.1-0.1,0.2-0.3,0.2-0.4
c0-0.1-0.1-0.3-0.2-0.4l-2.8-1.9c-0.1-0.1-0.4-0.4-0.6-0.5c-0.2,0-0.5-0.3-0.7-0.3h-8l0.9,6.4H304.8L304.8,912.1z"/>
<path fill="#FFFFFF" d="M285.9,911.7l2.8,1.9c0.1,0.1,0.4,0.2,0.6,0.3c0.2,0,0.5,0.2,0.7,0.2h4.1v10.2c0,0.2,0.3,0.1,0.5,0.1h1
c0.2,0,0.3,0.1,0.3-0.1v-20.2c0-0.2-0.1-0.8-0.3-0.8h-1c-0.2,0-0.5,0.6-0.5,0.8v4.6H290c-0.2,0-0.4,0-0.7,0s-0.4,0.1-0.6,0.2
l-2.8,1.9c-0.1,0.1-0.2,0.2-0.2,0.4C285.7,911.4,285.8,911.5,285.9,911.7z"/>
<path fill="#FFFFFF" d="M301.9,916.3v16.1c0,1.1,1.2,2.4,2.3,2.4h7.8c1.1,0,2.2-1.2,2.2-2.4v-16.1c0-1.1-1-1.7-2.2-1.7h-7.8
C303.1,914.6,301.9,915.2,301.9,916.3z M308.2,933.6c-0.8,0-1.4-0.4-1.4-1c0-0.6,0.6-1,1.4-1s1.4,0.4,1.4,1
C309.6,933.1,308.9,933.6,308.2,933.6z M312.7,917.1v13.3h-8.9v-13.3H312.7z"/>
<path fill="#FFFFFF" d="M347.5,904c0,6.7,7,15.5,7,15.5s7-8.8,7-15.5c0-3.9-3.1-7-7-7C350.7,896.9,347.5,900.1,347.5,904z
M354.5,900.3c2.1,0,3.8,1.7,3.8,3.8c0,2.1-1.7,3.8-3.8,3.8c-2.1,0-3.8-1.7-3.8-3.8C350.7,902,352.5,900.3,354.5,900.3z"/>
<path fill="#FFFFFF" d="M310.3,923c0-1.2-0.9-2.1-2.1-2.1s-2.1,0.9-2.1,2.1c0,2,2.1,4.6,2.1,4.6S310.3,925.1,310.3,923z
M307,923.1c0-0.6,0.5-1.1,1.1-1.1s1.1,0.5,1.1,1.1s-0.5,1.1-1.1,1.1C307.5,924.2,307,923.7,307,923.1z"/>
<path fill="#FFFFFF" d="M355.2,922.1l-1.2,1.1l-1.2-1.1c-1.7-1.6-4.6-1.6-6.3,0c-2,1.8-2,4.7,0,6.5l7.5,6.9l7.5-6.9
c2-1.8,2-4.7,0-6.5C359.7,920.5,356.9,920.5,355.2,922.1z"/>
<path fill="#FFFFFF" d="M385.7,973.9l-1.7,1.4c-0.1,0.1-0.1,0.3,0,0.4l9.6,10.9c0.2,0.2,0.6,0.3,0.9,0l1.1-0.9
c0.2-0.2,0.3-0.6,0-0.9l-9.5-11C386.1,973.7,385.9,973.7,385.7,973.9z"/>
<path fill="#FFFFFF" d="M385.2,966.7c-1.5,0.1-3.4,1.5-4.3,2.2c-1.2,0.8-1.7,1.3-1.8,1.4c-0.3,0.3,0,1-0.7,1.6
c-0.6,0.6-1.1,0.1-1.5,0.5c-0.2,0.1-0.8,0.6-0.9,0.7c-0.1,0.1-0.2,0.3,0,0.5c0,0,1.5,1.6,1.6,1.8c0.1,0.1,0.4,0.2,0.6,0.1
c0.2-0.2,0.8-0.6,0.8-0.8c0.1-0.1,0-1,0.4-1.4c1.1-0.8,2-0.2,3.1,1.1c0.1,0.1,0.3,0,0.4-0.1c0.1-0.1,1.7-1.5,1.8-1.6
c0.1,0,0.1-0.2,0-0.3c-0.1-0.1-0.6-0.8-0.8-1.1c-2.1-2.8,5.7-4.6,4.5-4.6C388,966.6,385.6,966.6,385.2,966.7z"/>
<path fill="#FFFFFF" d="M379.1,985.9l1.1,1.1c0.2,0.2,0.6,0.1,0.9-0.1l5.6-5.6l-1.7-2l-5.9,5.7
C378.9,985.3,378.9,985.7,379.1,985.9z"/>
<path fill="#FFFFFF" d="M391.2,973.2c-0.1,0.1-0.2,0.3-0.3,0.4l-1.6,1.6l1.6,1.8l1.9-1.8c0.1-0.1,0.3-0.2,0.4-0.3c0,0,0,0,0.1,0
c0.1,0,0.3,0,0.4,0.1c0.3,0.2,0.7,0.5,1,0.8c0.2,0.2,0.4,0.2,0.7,0c0.3-0.3,0.6-0.6,0.9-1c0.5-0.5,1-1.1,1.5-1.6
c0.8-0.9,1.2-1.9,1.2-2.9c0-0.4,0-0.8-0.1-1.2c-0.1-1-0.6-1.5-1.7-1.7c-0.2,0-0.5-0.1-0.8,0c-0.3,0-0.6,0-0.9,0
c-0.8,0-1.5,0.2-2.2,0.8c-0.5,0.4-1,0.9-1.5,1.4c-0.5,0.5-1.1,1-1.7,1.6c-0.1,0.1-0.2,0.3,0,0.4c0.3,0.3,0.6,0.8,1,1.1
c0.1,0.1,0.2,0.2,0.1,0.4C391.3,973,391.2,973.1,391.2,973.2z M392.5,972.9l2.4-2.2c0,0,0.2,0,0.2,0c0,0,0,0.1,0,0.2l-2.1,2.6
c0,0-0.1-0.3-0.1,0.1l0,0c0,0-0.1-0.1-0.1-0.1l-0.3-0.3c0,0,0-0.1,0-0.1C392.4,973,392.5,972.9,392.5,972.9z"/>
<path fill="#FFFFFF" d="M386,946.8c0,0.4,0,0.8,0.3,0.8h5.1v1.3c0,0.3-0.2,0.2,0.1,0.2h2c0.3,0,0.3,0.1,0.3-0.2v-1.3h4.9
c0.4,0,0.5-0.4,0.5-0.8v-2.7H386L386,946.8L386,946.8z"/>
<path fill="#FFFFFF" d="M392.9,954.3v-0.9c0-0.1-0.1-0.3-0.2-0.3s-0.2,0.1-0.2,0.3v0.9c-1.5,0.1-2.5,1.3-2.5,2.6
c0,1.5,1.1,2.7,2.6,2.7c1.5,0,2.7-1.2,2.7-2.7C395.2,955.6,394.4,954.4,392.9,954.3z"/>
<path fill="#FFFFFF" d="M398.2,949.5H387c-0.6,0-1,0.5-1.1,1.1l-1.3,11.6c0,0.3,0,0.8,0.3,1c0.2,0.2,0.5,0.5,0.8,0.5h13.9
c0.3,0,0.6-0.2,0.8-0.5c0.2-0.2,0.3-0.6,0.3-0.9l-1.3-11.7C399.2,950.1,398.7,949.5,398.2,949.5z M392.5,961.5
c-2.6,0-4.6-2.1-4.6-4.6s2.1-4.6,4.6-4.6c2.6,0,4.6,2.1,4.6,4.6S395.1,961.5,392.5,961.5z"/>
<path fill="#FFFFFF" d="M343.9,1015.7v0.2h5.7c0.3,0,0.5-0.4,0.5-0.8s-0.2-0.8-0.5-0.8h-5.7h-0.7H342c-1.5,0-2.8,1-3.1,2.5h-4
v1.5h4c0.4,1.5,1.6,2.9,3.1,2.9h1.2l0,0h6.4c0.3,0,0.5-0.4,0.5-0.8s-0.2-0.8-0.5-0.8h-5.7c-0.2,0-0.3,0-0.3-0.2
c0-0.2,0.1-0.2,0.3-0.2h5.7c0.3,0,0.5-0.2,0.5-0.5c0-0.3-0.2-0.5-0.5-0.5h-5.7l0,0c-0.2,0-0.3-0.3-0.3-0.5
c0-0.2,0.1-0.5,0.3-0.5h5.7c0.3,0,0.5-0.2,0.5-0.5c0-0.3-0.2-0.5-0.5-0.5h-5.5v-0.2c-0.5,0-0.5,0-0.5-0.2
C343.7,1015.8,343.7,1015.7,343.9,1015.7z"/>
<path fill="#FFFFFF" d="M318.8,1019.4h13.9c0.6,0,1.7-0.3,1.7-0.8v-1.7c0-0.5-1.1-0.9-1.7-0.9h-13.9c-0.9,0-1.7,0.8-1.7,1.7
C317.1,1018.6,317.9,1019.4,318.8,1019.4z"/>
<path fill="#FFFFFF" d="M349.5,1024.5c0-0.9-0.8-1.7-1.7-1.7h-14.4c-0.6,0-1,0.3-1.5,0.8v1.7c0.5,0.5,0.8,0.9,1.5,0.9h14.4
C348.7,1026.3,349.5,1025.5,349.5,1024.5z"/>
<path fill="#FFFFFF" d="M331.9,1025.3v-1.5h-2H327h-12.8c0,0-1.3,0.6,0.6,1.4c2.9,1.2,5.2,1.4,7.5,1.7c0.8,0.1,3.4,0.7,5-0.8
c0.6-0.5,1.2-0.9,1.7-0.9H331.9z"/>
<path fill="#FFFFFF" d="M351.2,1010.6l4.2-0.4c0-0.4-0.1-0.9-0.1-1.4c0-1.2-0.1-2.4-0.1-3.6c0-0.9,0-1.8,0-2.7
c0-1,0.1-2.1,0.1-3.1c0-0.8,0.1-1.7,0.2-2.6c0.1-1,0.2-2,0.4-3c0.1-0.8,0.2-1.6,0.3-2.4c0-0.2-0.1-0.4-0.3-0.5
c-0.1,0-0.3,0-0.4,0c-2.1,0-4.3,0-6.3,0c0,0,0,0,0,0c-0.5,0-1,0-1.5,0c-0.3,0-0.3,0-0.3,0.3c0,0.4-0.1,0.8-0.1,1.1
c0,0.8,0,1.6,0,2.4c0,0.8,0,1.6,0.1,2.4c0,0.8,0.1,1.6,0.1,2.4c0,0.8,0.1,1.4,0.1,2.2c0,1,0.1,2,0.2,2.9c0,0.8,0.1,1.6,0.2,2.5
c0.1,0.8,0.1,1.6,0.2,2.5c0,0.4,0.1,0.8,0.1,1.1c0,0.1,0,0.2,0.2,0.2c0.2,0,0.5,0,0.8,0c0.4,0,0.8,0,1.2-0.1
C350.9,1010.7,351,1010.6,351.2,1010.6z M354,992.4c0.3,0,0.6,0.2,0.6,0.5c0,0.3-0.2,0.5-0.5,0.5c-0.3,0-0.5-0.2-0.6-0.6
C353.5,992.6,353.7,992.4,354,992.4z"/>
<path fill="#FFFFFF" d="M354.5,1022.3c-0.2,0.8,0.5,1.7,1.3,1.7c0.7,0,1.3-0.5,1.5-1.2c0.1-0.6,0.1-1.3,0-1.9
c-0.2-1.3-0.5-2.7-0.8-3.9c-0.2-1-0.4-2.1-0.6-3.1c-0.1-0.8-0.3-1.6-0.3-2.4v0l-2.7,0.2c0.1,0.5,0.2,1,0.3,1.5
c0.3,1.6,0.5,3.2,0.9,4.8c0.2,1,0.4,2,0.7,3c0,0.2,0,0.4,0,0.6C354.6,1021.8,354.5,1022,354.5,1022.3z"/>
<path fill="#FFFFFF" d="M308.5,990.1c0.7,0,1.3,0,2-0.1c0,0,0,0,0-0.1c0.3-0.6,0-1.5-0.7-1.7c0-0.6,0.1-1.2,0-1.8
c-0.1-0.8-0.1-1.8-0.5-2.4c-1-1.5-2.6-3.2-3.8-4.5c-0.9-1-1.8-1.1-3.1-1.1c-5.1,0-10.2-0.1-15.4-0.1c-1.6,0-2.3,0.6-2.3,2.2
c0,2.5,0,5-0.1,7.7c-0.5,0-0.7,0.2-0.6,0.7c0,0.2,0,0.4,0,0.6c0,0.3,0.1,0.5,0.5,0.5c0.4,0,0.9,0,1.4,0c0.4,0,0.6-0.1,0.8-0.5
c0.4-1.4,1.6-2.3,3-2.3c1.5,0,2.6,0.8,3,2.3c0.1,0.5,0.4,0.6,0.8,0.6c2.5,0,5,0,7.4,0.1c0.5,0,0.8-0.2,0.9-0.6
c0.4-1.4,1.6-2.2,3-2.2c1.4,0,2.5,0.8,3,2.2C308.1,989.7,308.3,990.1,308.5,990.1z M307.2,983.9L307.2,983.9l-4.8,0.2
c-0.3,0-0.6-0.2-0.6-0.5l0-3.5c0-0.3,0.3-0.6,0.7-0.6l1.5,0c0,0,0.1,0,0.2,0c0.2,0,0.3,0.1,3.5,3.7c0.1,0.1,0.2,0,0.2,0.2
C307.8,983.9,307.5,983.9,307.2,983.9z"/>
<path fill="#FFFFFF" d="M289.9,987.5c-1.5,0-2.8,1.2-2.8,2.8s1.2,2.8,2.8,2.8s2.8-1.2,2.8-2.8
C292.6,988.8,291.4,987.6,289.9,987.5z"/>
<path fill="#FFFFFF" d="M305,987.7c-1.5,0-2.8,1.2-2.8,2.8s1.2,2.8,2.8,2.8s2.8-1.2,2.8-2.8C307.8,989,306.6,987.7,305,987.7z"
/>
<path fill="#FFFFFF" d="M391.2,993.8c0-0.4-1.2-0.9-5.2-0.3c0,0,1-0.8,1.4-1c0.4-0.1,2.2-1.2,1.8-2.6c-0.3-1.4-0.8-0.5-1.5,0.5
c-0.6,1.1-1.4,2.1-2.5,2.7c0,0-0.3-2.2-1.6-2.2c-0.4,0-2.1,0-3.9,0.2l-0.3,0c-0.2,0-0.5,0-0.7,0.1c0,0-0.1,0-0.1,0.1v2.3
c0,0.2,0,0.3-0.2,0.3c-0.2,0-0.2-0.1-0.2-0.3v-2.3l0,0c-0.5,0-0.6,0.1-0.9,0.1c0,0-3.6,0.5-6,1.3h0c0,0-0.1,0-0.1,0
c-0.1,0-0.3,0.1-0.4,0.1c-0.1,0-0.2,0-0.3,0.1c0,0,0,0-0.1,0c0,0-0.1,0-0.1,0l0,0c-0.4,0.2-0.8,0.3-1.2,0.5c0,0-0.4,0.2-0.1,0.8
c0.1,0.3,2.2,1.2,6.1,1.8v-1.8c0-0.2,0-0.3,0.2-0.3c0.2,0,0.2,0.1,0.2,0.3v1.9c0.5,0,0.6,0,0.9,0.1l0.4,0
c1.3,0.1,2.6,0.2,5.1,0.3v-1.5c0-0.2,0-0.3,0.2-0.3c0.2,0,0.2,0.1,0.2,0.3v1.5h0.4c0.5,0,0.8,0,1.3,0c0,0,1.3,0.1,1.4-2.3
c0,0,2.2-0.4,2.1,2.2c-0.1,1.9,1.5,1.9,1.5,0.6c0-1.3-0.3-2.8-2.8-3.3c0,0,2,0.2,3.6,0.5C391,994.8,391.2,994.3,391.2,993.8z"/>
</g>
<g>
<polygon fill="#FFFFFF" points="610.4,990.8 610,990.8 596.3,973.1 592.1,973.1 592.1,999.7 598,999.7 598,982 597.7,982
611.5,999.7 615.2,999.7 615.2,974.1 610.4,974.1 "/>
<polygon fill="#FFFFFF" points="624.6,999.7 637.4,999.7 637.4,994.8 629,994.8 629,988.4 637.4,988.4 637.4,983.9 629,983.9
629,977.5 637.4,977.5 637.4,974.1 624.6,974.1 "/>
<polygon fill="#FFFFFF" points="644.3,977.5 649.7,977.5 649.7,999.7 654.1,999.7 654.1,977.5 660.5,977.5 660.5,974.1
644.3,974.1 "/>
<polygon fill="#FFFFFF" points="688.9,991.8 688.9,991.8 683.4,973.1 680.4,973.1 675.2,991.8 675.2,991.8 669.9,974.1
664.5,974.1 672.9,999.7 676.6,999.7 681.5,983.9 681.6,983.9 686.8,999.7 690.5,999.7 699.4,974.1 694,974.1 "/>
<path fill="#FFFFFF" d="M717.6,972.9c-7.8,0-12.9,5.9-12.9,13.7c0,7.7,5,13.8,12.9,13.8c8,0,12.9-6.1,12.9-13.8
C730.5,978.9,725.3,972.9,717.6,972.9z M717.6,995.4c-5.6,0-7.6-5-7.6-9c0-4.2,2.8-8.4,7.6-8.4c4.8,0,7.6,4.3,7.6,8.4
C725.2,990.4,723.2,995.4,717.6,995.4z"/>
<path fill="#FFFFFF" d="M753.8,981.7c0-5.6-3.6-7.6-8.7-7.6h-7.3v25.6h5.9v-10.3h-0.3l6.4,10.3h6.2l-7.4-10.9
C752,988.2,753.8,985,753.8,981.7z M743.9,985.9h-0.2v-8.4h0.3c2.7,0,4.7,0.9,4.7,4.1C748.7,984.8,746.7,985.9,743.9,985.9z"/>
<polygon fill="#FFFFFF" points="782.2,974.1 775.9,974.1 767.8,984.4 767.7,984.4 767.7,974.1 762.3,974.1 762.3,999.7
767.7,999.7 767.7,987.4 767.8,987.4 776.2,999.7 782.7,999.7 772.3,985.9 "/>
<path fill="#FFFFFF" d="M448.7,915.8c-12.8,0-21.2,9.7-21.2,22.4c0,12.6,8.1,22.6,21.2,22.6c13.1,0,21.2-10,21.2-22.6
C469.8,925.6,461.4,915.8,448.7,915.8z M448.7,952.6c-9.2,0-12.5-8.1-12.5-14.7c0-6.9,4.7-13.9,12.5-13.9s12.5,7,12.5,13.9
C461.2,944.5,457.9,952.6,448.7,952.6z"/>
<path fill="#FFFFFF" d="M490.9,917.5h-11.4v42.3h7.9v-16.2h4.7c8.8,0,13.7-4.1,13.7-13.1C505.7,920.8,499.8,917.5,490.9,917.5z
M489.6,937.2h-2.2v-13.3h2c4.7,0,7.8,1,7.8,6.5C497.2,936,494.5,937.2,489.6,937.2z"/>
<polygon fill="#FFFFFF" points="515.4,959.8 537.5,959.8 537.5,952.5 523.7,952.5 523.7,941.2 536.6,941.2 536.6,933.8
523.7,933.8 523.7,923.9 537.5,923.9 537.5,917.5 515.4,917.5 "/>
<polygon fill="#FFFFFF" points="576.9,946.1 577,946.1 554.5,915.6 548.4,915.6 548.4,959.8 557.2,959.8 557.2,930.3 557,930.3
579.5,960.8 585.7,960.8 585.7,917.5 576.9,917.5 "/>
<polygon fill="#FFFFFF" points="619.2,959.8 627.6,959.8 627.6,941.2 639.9,941.2 639.9,933.8 627.6,933.8 627.6,923.9
640.9,923.9 640.9,917.5 619.2,917.5 "/>
<path fill="#FFFFFF" d="M670.3,960.8c13,0,21.2-10,21.2-22.6c0-12.7-8.4-22.4-21.2-22.4c-12.8,0-21.2,9.7-21.2,22.4
C649.2,950.8,657.3,960.8,670.3,960.8z M670.3,924c7.9,0,12.5,7,12.5,13.9c0,6.6-3.3,14.7-12.5,14.7c-9.2,0-12.5-8.1-12.5-14.7
C657.8,931,662.4,924,670.3,924z"/>
<path fill="#FFFFFF" d="M720.3,915.8c-12.8,0-21.2,9.7-21.2,22.4c0,12.6,8.1,22.6,21.2,22.6s21.2-10,21.2-22.6
C741.5,925.6,733.1,915.8,720.3,915.8z M720.3,952.6c-9.2,0-12.5-8.1-12.5-14.7c0-6.9,4.7-13.9,12.5-13.9
c7.9,0,12.5,7,12.5,13.9C732.9,944.5,729.6,952.6,720.3,952.6z"/>
<path fill="#FFFFFF" d="M783.8,938.7c0-12.2-8.3-21.2-20.7-21.2H752v42.3h11.1C775.3,959.8,783.8,950.7,783.8,938.7z
M759.9,952.5v-28.6h1.1c9.4,0,14.2,5,14.2,14.3c0,8.4-4,14.3-14.2,14.3L759.9,952.5L759.9,952.5z"/>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-90.7 -365.5 922 763.1" enable-background="new -90.7 -365.5 922 763.1"><g opacity=".06" fill="#0B8C61"><path d="M774.6 9.5c-31.4 0-56.8 63.7-56.8 142.3 0 78.6 25.4 142.3 56.8 142.3 31.3 0 56.8-63.7 56.8-142.3-.1-78.6-25.5-142.3-56.8-142.3zm1.4 228.7c-19.2 0-34.8-37.5-34.8-83.9s15.6-83.9 34.8-83.9c19.2 0 34.8 37.5 34.8 83.9s-15.6 83.9-34.8 83.9zM710.3 153c0-86.4 27.9-156.5 62.4-156.5 5 0 9.9 1.5 14.6 4.3-25-20.8-83.7-10.8-110.9-6-5.1 7.7-8.5 14.5-10.1 18.2-9.3 21.5-16.8 52.5-16.8 52.5l-28.3-.7L649 197.6h-42.7c6.1 61.8 25.8 102.7 60.4 111.9 0 0 72.9 11.8 109-.2-1 .1-2 .2-3 .2-34.5 0-62.4-70-62.4-156.5zM137.6 196.4c0-111 81.2-201.1 181.4-201.1 4.3 0 8.6.2 12.8.6-13-2.6-26.5-3.9-40.3-3.9C178.3-8.1 86.6 82.7 86.6 194.7c0 112 91.7 202.8 204.9 202.8 4.9 0 9.7-.2 14.5-.6-94.1-7.3-168.4-94.2-168.4-200.5zM275-14.7c105.4-5 160.7 41.5 190.4 81.2l7.2-5.5 10.6-12 67.7 18.6 23.9 124.8h65L611.9 59.6l28.3.7s7.5-30.9 16.9-52.5c4.7-10.9 25.2-49.1 58.4-55.7 33.2-6.6 62.7 36.3 62.7 36.3l-16.3-45.6-61.1-22.6-18.6-100.9 27.9-17.3-2.7-27.9-154-55.8-196.5 46.5v23.9l31.9 8-21.2 61.1s-56.5-7.6-112.2-2.4c-65 6.1-130.5 25.1-130.5 25.1l-17.6 34.4-11.9 158 7.1 1.3L115-67.4l168.1-15.9-8.1 68.6zM141.3-88.3c-8.4 1.3-16.2-3.1-17.2-9.8-1.1-6.8 4.9-13.3 13.4-14.6 8.4-1.3 16.2 3.1 17.2 9.8 1 6.8-5 13.3-13.4 14.6zm99.8-6.8c-11.2 1.8-21.5-4.1-22.9-13.1-1.4-9 6.6-17.7 17.8-19.5 11.2-1.8 21.5 4.1 22.9 13.1 1.4 9.1-6.6 17.8-17.8 19.5zm280.4-14.1h-47.7L381-134.3l18.4-60.2 136.3-24.3-14.2 109.6zM585.9 63l-42.7-1.7 16.7-280.2 72.8 22.6 13.4 117.9L585.9 63zm70.6-142.3l-14.6-114.4 34.3 18.4 16.7 104.7-36.4-8.7zM334.6-152.2v-82.1h-16.3v-37c0-20.4-16.6-37-37-37v15.1c12.1 0 21.9 9.8 22 21.9v37h-15.1v80.4c17.6 0 33.8.8 46.4 1.7zM-70.4 172c0-80 68.3-144.8 152.5-144.8 2.8 0 5.6.1 8.3.2l1-12.7c-5-.4-10-.7-15.1-.7-92.2 0-167 70.6-167 157.7s74.8 157.7 167 157.7c15.7 0 30.9-2.1 45.3-5.9-2.4-3.3-4.7-6.7-7-10.2-10.5 2.2-21.4 3.3-32.5 3.3-84.2.1-152.5-64.7-152.5-144.6zM9.1 168.6c0-43.8 38.7-79.3 86.4-79.3 5.1 0 10 .4 14.8 1.2.5-1 1-2.1 1.6-3.1l-26.1-4.9 3.4-44c-2.6-.1-5.1-.2-7.7-.2-78.5 0-142 60.2-142 134.5s63.6 134.5 142 134.5c10.4 0 20.5-1.1 30.3-3.1-11.2-17.3-19.8-36.3-25.2-56.7-43.5-4.1-77.5-37.9-77.5-78.9zM273-58L117.9-45.8l1.2-16.4L275-75zM271.4-33.6L116.3-21.3l1.3-16.4 155.8-12.8zM270.9-28.2L115-15.5 113.7.9l119.6-9.4c11.6-3.3 23.7-5.6 36-6.7l1.6-13zM113.5 9l-1.3 16.4 59.3-4.7c10.7-7.5 22.2-13.9 34.3-19.3L113.5 9zM158 31l-45.8 3.7-1.2 16.4 28-2.2c5.9-6.4 12.2-12.4 19-17.9zM110 57.3l-1.3 16.4 10.9-.9c4.2-6.1 8.7-11.9 13.5-17.4L110 57.3z"/><circle cx="320.1" cy="201.7" r="47"/><ellipse cx="767.3" cy="151.5" rx="10.7" ry="30.5"/><circle cx="370.6" cy="163.4" r="6.6"/><circle cx="302" cy="144.4" r="6.6"/><circle cx="259.4" cy="200.7" r="6.6"/><circle cx="298.6" cy="263.1" r="6.6"/><circle cx="369.6" cy="240" r="6.6"/><path d="M285.3-355.5c-21.7 0-39.3 17.6-39.3 39.3 0 6.6 1.6 12.8 4.5 18.2-5.1-4.9-8.8-11.2-10.7-18.3-1.3 1.4-2.5 2.9-3.6 4.5-12.1 18-7.4 42.4 10.6 54.6 5.5 3.7 11.5 5.8 17.6 6.5-10.1 2.1-20.9.4-30.2-5.8-18-12.1-22.8-36.6-10.6-54.6 3.9-5.8 9.1-10.1 14.9-13 0-.7-.1-1.4-.1-2.1 0-8.7 2.9-16.8 7.7-23.3-2-.4-4.1-.7-6.3-.7-16.9 0-30.7 13.7-30.7 30.7 0 5.1 1.3 10 3.5 14.2-5.8-5.6-9.4-13.4-9.4-22 0-16.9 13.7-30.7 30.7-30.7 5.8 0 11.1 1.6 15.7 4.4 7.1-7.3 17.1-11.8 28.1-11.8 15.1 0 28.2 8.6 34.8 21.1-7-7-16.6-11.2-27.2-11.2zM433.1 347.4c45.5-36.1 74.6-90.8 74.6-152 0-95.6-70.7-175.3-164.6-193.3-4.2-.3-8.5-.5-12.8-.5C230 1.6 148.8 89.1 148.8 197c0 103.3 74.3 187.8 168.5 194.9 19.1-1.3 37.4-5.1 54.6-11.1l61.2-33.4zM329 311.9c-56.5 0-102.3-48.1-102.3-107.4C226.7 145.1 272.5 97 329 97s102.3 48.1 102.3 107.4c0 59.4-45.8 107.5-102.3 107.5z"/></g></svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View File

@@ -0,0 +1 @@
angular.module("admin.accounts_and_billing_settings", ["admin.utils"])

View File

@@ -0,0 +1,14 @@
angular.module("admin.accounts_and_billing_settings").directive "methodSettingsFor", ->
template: "<div ng-include='include_html'></div>"
restrict: 'A'
scope: {
enterprise_id: '=methodSettingsFor'
}
link: (scope, element, attrs) ->
scope.include_html = ""
scope.$watch "enterprise_id", (newVal, oldVal)->
if !newVal? || newVal == ""
scope.include_html = ""
else
scope.include_html = "/admin/accounts_and_billing_settings/show_methods?enterprise_id=#{newVal};"

View File

@@ -1,3 +1,3 @@
angular.module("ofn.admin", ["ngResource", "ngAnimate", "admin.indexUtils", "admin.dropdown", "admin.products", "admin.taxons", "infinite-scroll"]).config ($httpProvider) ->
angular.module("ofn.admin", ["ngResource", "ngAnimate", "admin.utils", "admin.indexUtils", "admin.dropdown", "admin.products", "admin.taxons", "infinite-scroll"]).config ($httpProvider) ->
$httpProvider.defaults.headers.common["X-CSRF-Token"] = $("meta[name=csrf-token]").attr("content")
$httpProvider.defaults.headers.common["Accept"] = "application/json, text/javascript, */*"

View File

@@ -22,11 +22,16 @@
//= require angular-rails-templates
//= require_tree ../templates/admin
//= require ./admin
//= require ./accounts_and_billing_settings/accounts_and_billing_settings
//= require ./business_model_configuration/business_model_configuration
//= require ./customers/customers
//= require ./dropdown/dropdown
//= require ./enterprises/enterprises
//= require ./enterprise_groups/enterprise_groups
//= require ./index_utils/index_utils
//= require ./line_items/line_items
//= require ./orders/orders
//= require ./order_cycles/order_cycles
//= require ./payment_methods/payment_methods
//= require ./products/products
//= require ./shipping_methods/shipping_methods

View File

@@ -11,7 +11,6 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
$scope.confirmDelete = true
$scope.startDate = formatDate start
$scope.endDate = formatDate end
$scope.pendingChanges = pendingChanges
$scope.quickSearch = ""
$scope.bulkActions = [ { name: "Delete Selected", callback: $scope.deleteLineItems } ]
$scope.selectedBulkAction = $scope.bulkActions[0]
@@ -30,7 +29,7 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
variant: { name: "Variant", visible: true }
quantity: { name: "Quantity", visible: true }
max: { name: "Max", visible: true }
unit_value: { name: "Weight/Volume", visible: false }
final_weight_volume: { name: "Weight/Volume", visible: false }
price: { name: "Price", visible: false }
$scope.initialise = ->
$scope.initialiseVariables()
@@ -77,6 +76,10 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
line_item.checked = false
line_item.supplier = $scope.matchObject $scope.suppliers, line_item.supplier, null
line_item.order = orderWithoutLineItems
line_item.original_final_weight_volume = line_item.final_weight_volume
line_item.original_quantity = line_item.quantity
line_item.original_price = line_item.price
lineItems.concat order.line_items
, []
@@ -107,6 +110,12 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
$scope.deleteLineItem lineItem for lineItem in lineItems when lineItem.checked
$scope.confirmDelete = existingState
$scope.submit = ->
if $scope.bulk_order_form.$valid
pendingChanges.submitAll()
else
alert "Some errors must be resolved be before you can update orders.\nAny fields with red borders contain errors."
$scope.allBoxesChecked = ->
checkedCount = $scope.filteredLineItems.reduce (count,lineItem) ->
count + (if lineItem.checked then 1 else 0 )
@@ -123,17 +132,17 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
$scope.sumUnitValues = ->
sum = $scope.filteredLineItems.reduce (sum,lineItem) ->
sum = sum + lineItem.quantity * lineItem.units_variant.unit_value
sum = sum + lineItem.final_weight_volume
, 0
$scope.sumMaxUnitValues = ->
sum = $scope.filteredLineItems.reduce (sum,lineItem) ->
sum = sum + Math.max(lineItem.max_quantity,lineItem.quantity) * lineItem.units_variant.unit_value
sum = sum + Math.max(lineItem.max_quantity,lineItem.original_quantity) * lineItem.units_variant.unit_value
, 0
$scope.allUnitValuesPresent = ->
$scope.allFinalWeightVolumesPresent = ->
for i,lineItem of $scope.filteredLineItems
return false if !lineItem.units_variant.hasOwnProperty('unit_value') || !(lineItem.units_variant.unit_value > 0)
return false if !lineItem.hasOwnProperty('final_weight_volume') || !(lineItem.final_weight_volume > 0)
true
# How is this different to OptionValueNamer#name?
@@ -164,13 +173,11 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
$scope.orderCycleFilter = $scope.orderCycles[0].id
$scope.quickSearch = ""
$scope.weightAdjustedPrice = (lineItem, oldValue) ->
if oldValue <= 0
oldValue = lineItem.units_variant.unit_value
if lineItem.unit_value <= 0
lineItem.unit_value = lineItem.units_variant.unit_value
lineItem.price = lineItem.price * lineItem.unit_value / oldValue
#$scope.bulk_order_form.line_item.price.$setViewValue($scope.bulk_order_form.line_item.price.$viewValue)
$scope.weightAdjustedPrice = (lineItem) ->
if lineItem.final_weight_volume > 0
unit_value = lineItem.final_weight_volume / lineItem.quantity
original_unit_value = lineItem.original_final_weight_volume / lineItem.original_quantity
lineItem.price = lineItem.original_price * (unit_value / original_unit_value)
$scope.unitValueLessThanZero = (lineItem) ->
if lineItem.units_variant.unit_value <= 0
@@ -178,6 +185,11 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
else
false
$scope.updateOnQuantity = (lineItem) ->
if lineItem.quantity > 0
lineItem.final_weight_volume = lineItem.original_final_weight_volume * lineItem.quantity / lineItem.original_quantity
$scope.weightAdjustedPrice(lineItem)
$scope.$watch "orderCycleFilter", (newVal, oldVal) ->
unless $scope.orderCycleFilter == "0" || angular.equals(newVal, oldVal)
$scope.startDate = $scope.orderCyclesByID[$scope.orderCycleFilter].first_order

View File

@@ -0,0 +1 @@
angular.module("admin.businessModelConfiguration", ["admin.utils"])

View File

@@ -0,0 +1,21 @@
angular.module("admin.businessModelConfiguration").controller "BusinessModelConfigCtrl", ($scope, $filter) ->
$scope.turnover = 1000
$scope.bill = ->
return $filter('currency')(0) unless $scope.fixed || $scope.rate
Number($scope.fixed) + Number($scope.turnover) * Number($scope.rate)
$scope.cappedBill = ->
return $scope.bill() if !$scope.cap? || Number($scope.cap) == 0
Math.min($scope.bill(), Number($scope.cap))
$scope.capReached = ->
return "No" if !$scope.cap? || Number($scope.cap) == 0
if $scope.bill() >= Number($scope.cap) then "Yes" else "No"
$scope.includedTax = ->
return 0 if !$scope.taxRate? || Number($scope.taxRate) == 0
($scope.cappedBill() * Number($scope.taxRate))
$scope.total = ->
$scope.cappedBill() + $scope.includedTax()

View File

@@ -1,7 +0,0 @@
angular.module("ofn.admin").directive "ofnConfirmLinkPath", (ofnConfirmHandler) ->
restrict: "A"
scope:
path: "@ofnConfirmLinkPath"
link: (scope, element, attrs) ->
element.click ofnConfirmHandler scope, ->
window.location = scope.path

View File

@@ -1,6 +0,0 @@
angular.module("ofn.admin").directive "ofnConfirmModelChange", (ofnConfirmHandler,$timeout) ->
restrict: "A"
link: (scope, element, attrs) ->
handler = ofnConfirmHandler scope, -> scope.fetchOrders()
scope.$watch attrs.ngModel, (oldValue,newValue) ->
handler() unless oldValue == undefined || newValue == oldValue

View File

@@ -0,0 +1,5 @@
angular.module("admin.dropdown").directive "linksDropdown", ($window)->
restrict: "C"
scope:
links: "="
templateUrl: "admin/links_dropdown.html"

View File

@@ -1 +1 @@
angular.module("admin.dropdown", [])
angular.module("admin.dropdown", ['templates'])

View File

@@ -1,9 +1,9 @@
angular.module("admin.enterprises").controller 'enterprisesCtrl', ($scope, Enterprises, Columns) ->
Enterprises.loaded = false
$scope.allEnterprises = Enterprises.index()
angular.module("admin.enterprises").controller 'enterprisesCtrl', ($scope, $q, Enterprises, Columns) ->
requests = []
requests.push ($scope.allEnterprises = Enterprises.index(ams_prefix: "index")).$promise
$scope.loaded = ->
Enterprises.loaded
$q.all(requests).then ->
$scope.loaded = true
$scope.columns = Columns.setColumns
name: { name: "Name", visible: true }

View File

@@ -0,0 +1,8 @@
angular.module("admin.enterprises").directive "monthlyPricingDescription", (monthlyBillDescription) ->
restrict: 'E'
scope:
joiner: "@"
template: "<span ng-bind-html='billDescription'></span>"
link: (scope, element, attrs) ->
joiners = { comma: ", ", newline: "<br>" }
scope.billDescription = monthlyBillDescription.replace("{joiner}", joiners[scope.joiner])

View File

@@ -1,5 +1,5 @@
angular.module("admin.enterprises").factory 'EnterpriseResource', ($resource) ->
$resource('/admin/enterprises/:id.json', {}, {
$resource('/admin/enterprises/:id/:action.json', {}, {
'index':
method: 'GET'
isArray: true

View File

@@ -1,26 +1,27 @@
angular.module("admin.enterprises").factory 'Enterprises', ($q, EnterpriseResource) ->
angular.module("admin.enterprises").factory 'Enterprises', ($q, EnterpriseResource, blankOption) ->
new class Enterprises
enterprises: []
enterprises_by_id: {}
pristine_by_id: {}
loaded: false
enterprisesByID: {}
pristineByID: {}
index: (params={}, callback=null) ->
EnterpriseResource.index params, (data) =>
includeBlank = !!params['includeBlank']
delete params['includeBlank']
EnterpriseResource.index(params, (data) =>
for enterprise in data
@enterprises.push enterprise
@pristine_by_id[enterprise.id] = angular.copy(enterprise)
@enterprisesByID[enterprise.id] = enterprise
@pristineByID[enterprise.id] = angular.copy(enterprise)
@loaded = true
(callback || angular.noop)(@enterprises)
(callback || angular.noop)(data)
@enterprises
data.unshift(blankOption()) if includeBlank
data
)
save: (enterprise) ->
deferred = $q.defer()
enterprise.$update({id: enterprise.permalink})
.then( (data) =>
@pristine_by_id[enterprise.id] = angular.copy(enterprise)
@pristineByID[enterprise.id] = angular.copy(enterprise)
deferred.resolve(data)
).catch (response) ->
deferred.reject(response)
@@ -31,9 +32,9 @@ angular.module("admin.enterprises").factory 'Enterprises', ($q, EnterpriseResour
diff: (enterprise) ->
changed = []
for attr, value of enterprise when not angular.equals(value, @pristine_by_id[enterprise.id][attr])
for attr, value of enterprise when not angular.equals(value, @pristineByID[enterprise.id][attr])
changed.push attr unless attr is "$$hashKey"
changed
resetAttribute: (enterprise, attribute) ->
enterprise[attribute] = @pristine_by_id[enterprise.id][attribute]
enterprise[attribute] = @pristineByID[enterprise.id][attribute]

View File

@@ -2,6 +2,7 @@ angular.module("admin.enterprises").factory 'PermalinkChecker', ($q, $http) ->
new class PermalinkChecker
deferredRequest: null
deferredAbort: null
MAX_PERMALINK_LENGTH: 255
check: (permalink) =>
@abort(@deferredAbort) if @deferredRequest && @deferredRequest.promise
@@ -15,9 +16,14 @@ angular.module("admin.enterprises").factory 'PermalinkChecker', ($q, $http) ->
timeout: deferredAbort.promise
)
.success( (data) =>
deferredRequest.resolve
permalink: data
available: "Available"
if data.length > @MAX_PERMALINK_LENGTH || !data.match(/^[\w-]+$/)
deferredRequest.resolve
permalink: permalink
available: "Error"
else
deferredRequest.resolve
permalink: data
available: "Available"
).error (data,status) =>
if status == 409
deferredRequest.resolve

View File

@@ -1,7 +0,0 @@
angular.module("ofn.admin").filter "selectFilter", (blankOption) ->
return (lineItems,selectedSupplier,selectedDistributor,selectedOrderCycle) ->
filtered = []
filtered.push lineItem for lineItem in lineItems when (angular.equals(selectedSupplier,"0") || lineItem.supplier.id == selectedSupplier) &&
(angular.equals(selectedDistributor,"0") || lineItem.order.distributor.id == selectedDistributor) &&
(angular.equals(selectedOrderCycle,"0") || lineItem.order.order_cycle.id == selectedOrderCycle)
filtered

View File

@@ -0,0 +1,9 @@
angular.module("admin.indexUtils").directive "datepicker", ->
require: "ngModel"
link: (scope, element, attrs, ngModel) ->
element.datepicker
dateFormat: "yy-mm-dd"
onSelect: (dateText, inst) ->
scope.$apply (scope) ->
# Fires ngModel.$parsers
ngModel.$setViewValue dateText

View File

@@ -0,0 +1,6 @@
angular.module("admin.indexUtils").directive "ignoreDirty", ->
restrict: 'A'
require: 'ngModel'
link: (scope, element, attrs, ngModel) ->
#TODO: This is broken, requires AngularJS > 1.3
ngModel.$setDirty = angular.noop

View File

@@ -0,0 +1,7 @@
angular.module("admin.indexUtils").directive "saveBar", ->
restrict: "E"
scope:
save: "&"
saving: "&"
dirty: "&"
templateUrl: "admin/save_bar.html"

View File

@@ -0,0 +1,9 @@
angular.module("admin.indexUtils").directive "select2MinSearch", ($timeout) ->
require: 'ngModel'
link: (scope, element, attrs, ngModel) ->
element.select2
minimumResultsForSearch: attrs.select2MinSearch
ngModel.$formatters.push (value) ->
element.select2('val', value)
value

View File

@@ -0,0 +1,11 @@
angular.module("admin.indexUtils").factory 'Dereferencer', ->
new class Dereferencer
dereference: (array, data)->
if array
for object, i in array
array[i] = data[object.id]
dereferenceAttr: (array, attr, data)->
if array
for object in array
object[attr] = data[object[attr].id] unless object[attr] == null

View File

@@ -0,0 +1,11 @@
angular.module("admin.indexUtils").factory 'RequestMonitor', ($q) ->
new class RequestMonitor
loadQueue: $q.when([])
loadId: 0
loading: false
load: (promise) ->
loadId = (@loadId += 1)
@loading = true
@loadQueue = $q.all([@loadQueue, promise]).then =>
@loading = false if @loadId == loadId

View File

@@ -0,0 +1,181 @@
angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $http, $q, Columns, Dereferencer, Orders, LineItems, Enterprises, OrderCycles, blankOption, VariantUnitManager, RequestMonitor) ->
$scope.initialized = false
$scope.RequestMonitor = RequestMonitor
$scope.saving = false
$scope.filteredLineItems = []
$scope.confirmDelete = true
$scope.startDate = formatDate daysFromToday -7
$scope.endDate = formatDate daysFromToday 1
$scope.bulkActions = [ { name: "Delete Selected", callback: 'deleteLineItems' } ]
$scope.selectedUnitsProduct = {};
$scope.selectedUnitsVariant = {};
$scope.sharedResource = false
$scope.columns = Columns.setColumns
order_no: { name: "Order No.", visible: false }
full_name: { name: "Name", visible: true }
email: { name: "Email", visible: false }
phone: { name: "Phone", visible: false }
order_date: { name: "Order Date", visible: true }
producer: { name: "Producer", visible: true }
order_cycle: { name: "Order Cycle", visible: false }
hub: { name: "Hub", visible: false }
variant: { name: "Variant", visible: true }
quantity: { name: "Quantity", visible: true }
max: { name: "Max", visible: true }
final_weight_volume: { name: "Weight/Volume", visible: false }
price: { name: "Price", visible: false }
$scope.confirmRefresh = ->
LineItems.allSaved() || confirm("Unsaved changes exist and will be lost if you continue.")
$scope.resetSelectFilters = ->
$scope.distributorFilter = blankOption().id
$scope.supplierFilter = blankOption().id
$scope.orderCycleFilter = blankOption().id
$scope.quickSearch = ""
$scope.refreshData = ->
unless !$scope.orderCycleFilter? || $scope.orderCycleFilter == "0"
$scope.startDate = OrderCycles.orderCyclesByID[$scope.orderCycleFilter].first_order
$scope.endDate = OrderCycles.orderCyclesByID[$scope.orderCycleFilter].last_order
RequestMonitor.load $scope.orders = Orders.index("q[state_not_eq]": "canceled", "q[completed_at_not_null]": "true", "q[completed_at_gt]": "#{parseDate($scope.startDate)}", "q[completed_at_lt]": "#{parseDate($scope.endDate)}")
RequestMonitor.load $scope.lineItems = LineItems.index("q[order][state_not_eq]": "canceled", "q[order][completed_at_not_null]": "true", "q[order][completed_at_gt]": "#{parseDate($scope.startDate)}", "q[order][completed_at_lt]": "#{parseDate($scope.endDate)}")
unless $scope.initialized
RequestMonitor.load $scope.distributors = Enterprises.index(includeBlank: true, action: "for_line_items", ams_prefix: "basic", "q[sells_in][]": ["own", "any"])
RequestMonitor.load $scope.orderCycles = OrderCycles.index(includeBlank: true, ams_prefix: "basic", as: "distributor", "q[orders_close_at_gt]": "#{daysFromToday(-90)}")
RequestMonitor.load $scope.suppliers = Enterprises.index(includeBlank: true, action: "for_line_items", ams_prefix: "basic", "q[is_primary_producer_eq]": "true")
RequestMonitor.load $q.all([$scope.orders.$promise, $scope.distributors.$promise, $scope.orderCycles.$promise]).then ->
Dereferencer.dereferenceAttr $scope.orders, "distributor", Enterprises.enterprisesByID
Dereferencer.dereferenceAttr $scope.orders, "order_cycle", OrderCycles.orderCyclesByID
RequestMonitor.load $q.all([$scope.orders.$promise, $scope.suppliers.$promise, $scope.lineItems.$promise]).then ->
Dereferencer.dereferenceAttr $scope.lineItems, "supplier", Enterprises.enterprisesByID
Dereferencer.dereferenceAttr $scope.lineItems, "order", Orders.ordersByID
$scope.bulk_order_form.$setPristine()
unless $scope.initialized
$scope.initialized = true
$timeout ->
$scope.resetSelectFilters()
$scope.refreshData()
$scope.submit = =>
if $scope.bulk_order_form.$valid
$scope.saving = true
$q.all(LineItems.saveAll()).then(->
$scope.bulk_order_form.$setPristine()
$scope.saving = false
).catch ->
alert "Some errors must be resolved be before you can update orders.\nAny fields with red borders contain errors."
else
alert "Some errors must be resolved be before you can update orders.\nAny fields with red borders contain errors."
$scope.deleteLineItem = (lineItem) ->
if ($scope.confirmDelete && confirm("Are you sure?")) || !$scope.confirmDelete
LineItems.delete lineItem, =>
$scope.lineItems.splice $scope.lineItems.indexOf(lineItem), 1
$scope.deleteLineItems = (lineItems) ->
existingState = $scope.confirmDelete
$scope.confirmDelete = false
$scope.deleteLineItem lineItem for lineItem in lineItems when lineItem.checked
$scope.confirmDelete = existingState
$scope.allBoxesChecked = ->
checkedCount = $scope.filteredLineItems.reduce (count,lineItem) ->
count + (if lineItem.checked then 1 else 0 )
, 0
checkedCount == $scope.filteredLineItems.length
$scope.toggleAllCheckboxes = ->
changeTo = !$scope.allBoxesChecked()
lineItem.checked = changeTo for lineItem in $scope.filteredLineItems
$scope.setSelectedUnitsVariant = (unitsProduct,unitsVariant) ->
$scope.selectedUnitsProduct = unitsProduct
$scope.selectedUnitsVariant = unitsVariant
$scope.sumUnitValues = ->
sum = $scope.filteredLineItems.reduce (sum,lineItem) ->
sum + lineItem.final_weight_volume
, 0
$scope.sumMaxUnitValues = ->
sum = $scope.filteredLineItems.reduce (sum,lineItem) ->
sum + lineItem.max_quantity * lineItem.units_variant.unit_value
, 0
$scope.allFinalWeightVolumesPresent = ->
for i,lineItem of $scope.filteredLineItems
return false if !lineItem.hasOwnProperty('final_weight_volume') || !(lineItem.final_weight_volume > 0)
true
# How is this different to OptionValueNamer#name?
# Should it be extracted to that class or VariantUnitManager?
$scope.formattedValueWithUnitName = (value, unitsProduct, unitsVariant) ->
# A Units Variant is an API object which holds unit properies of a variant
if unitsProduct.hasOwnProperty("variant_unit") && (unitsProduct.variant_unit == "weight" || unitsProduct.variant_unit == "volume") && value > 0
scale = VariantUnitManager.getScale(value, unitsProduct.variant_unit)
Math.round(value/scale * 1000)/1000 + " " + VariantUnitManager.getUnitName(scale, unitsProduct.variant_unit)
else
''
$scope.fulfilled = (sumOfUnitValues) ->
# A Units Variant is an API object which holds unit properies of a variant
if $scope.selectedUnitsProduct.hasOwnProperty("group_buy_unit_size") && $scope.selectedUnitsProduct.group_buy_unit_size > 0 &&
$scope.selectedUnitsProduct.hasOwnProperty("variant_unit") &&
( $scope.selectedUnitsProduct.variant_unit == "weight" || $scope.selectedUnitsProduct.variant_unit == "volume" )
Math.round( sumOfUnitValues / $scope.selectedUnitsProduct.group_buy_unit_size * 1000)/1000
else
''
$scope.unitsVariantSelected = ->
!angular.equals($scope.selectedUnitsVariant,{})
$scope.weightAdjustedPrice = (lineItem) ->
if lineItem.final_weight_volume > 0
unit_value = lineItem.final_weight_volume / lineItem.quantity
pristine_unit_value = LineItems.pristineByID[lineItem.id].final_weight_volume / LineItems.pristineByID[lineItem.id].quantity
lineItem.price = LineItems.pristineByID[lineItem.id].price * (unit_value / pristine_unit_value)
$scope.unitValueLessThanZero = (lineItem) ->
if lineItem.units_variant.unit_value <= 0
true
else
false
$scope.updateOnQuantity = (lineItem) ->
if lineItem.quantity > 0
lineItem.final_weight_volume = LineItems.pristineByID[lineItem.id].final_weight_volume * lineItem.quantity / LineItems.pristineByID[lineItem.id].quantity
$scope.weightAdjustedPrice(lineItem)
daysFromToday = (days) ->
now = new Date
now.setHours(0)
now.setMinutes(0)
now.setSeconds(0)
now.setDate( now.getDate() + days )
now
formatDate = (date) ->
year = date.getFullYear()
month = twoDigitNumber date.getMonth() + 1
day = twoDigitNumber date.getDate()
return year + "-" + month + "-" + day
formatTime = (date) ->
hours = twoDigitNumber date.getHours()
mins = twoDigitNumber date.getMinutes()
secs = twoDigitNumber date.getSeconds()
return hours + ":" + mins + ":" + secs
parseDate = (dateString) ->
new Date(Date.parse(dateString))
twoDigitNumber = (number) ->
twoDigits = "" + number
twoDigits = ("0" + number) if number < 10
twoDigits

View File

@@ -0,0 +1,19 @@
# Used with the ngChange directive to prevent updates to the relevant model unless a callback returns true
angular.module("admin.lineItems").directive "confirmChange", ->
restrict: "A"
require: 'ngModel'
scope:
confirmChange: "&"
link: (scope, element, attrs, ngModel) ->
valid = null
ngModel.$parsers.push (val) =>
return val if val == valid
if scope.confirmChange()
# ngModel is changed, triggers ngChange callback
return valid = val
else
valid = ngModel.$modelValue
ngModel.$setViewValue(valid)
ngModel.$render()
return valid

View File

@@ -0,0 +1,9 @@
# Used on a link to prevent link clicks unless a callback returns true (probably asking for user confirmation)
angular.module("admin.lineItems").directive "confirmLinkClick", ->
restrict: "A"
scope:
confirmLinkClick: "&"
link: (scope, element, attrs) ->
element.bind "click", (event) ->
unless scope.confirmLinkClick()
event.preventDefault()

View File

@@ -0,0 +1,8 @@
angular.module("admin.lineItems").filter "selectFilter", (blankOption, RequestMonitor) ->
return (lineItems,selectedSupplier,selectedDistributor,selectedOrderCycle) ->
filtered = []
unless RequestMonitor.loading
filtered.push lineItem for lineItem in lineItems when (angular.equals(selectedSupplier,"0") || lineItem.supplier.id == selectedSupplier) &&
(angular.equals(selectedDistributor,"0") || lineItem.order.distributor.id == selectedDistributor) &&
(angular.equals(selectedOrderCycle,"0") || lineItem.order.order_cycle.id == selectedOrderCycle)
filtered

View File

@@ -1,6 +1,6 @@
angular.module("ofn.admin").filter "variantFilter", ->
angular.module("admin.lineItems").filter "variantFilter", ->
return (lineItems,selectedUnitsProduct,selectedUnitsVariant,sharedResource) ->
filtered = []
filtered.push lineItem for lineItem in lineItems when (angular.equals(selectedUnitsProduct,{}) ||
(lineItem.units_product.id == selectedUnitsProduct.id && (sharedResource || lineItem.units_variant.id == selectedUnitsVariant.id ) ) )
filtered
filtered

View File

@@ -0,0 +1 @@
angular.module("admin.lineItems", ["admin.indexUtils", "admin.products", "admin.orders", "admin.enterprises", "admin.orderCycles"])

View File

@@ -0,0 +1,12 @@
angular.module("admin.lineItems").factory 'LineItemResource', ($resource) ->
$resource('/admin/:orders/:order_number/line_items/:id.json', {}, {
'index':
method: 'GET'
isArray: true
'update':
method: 'PUT'
transformRequest: (data, headersGetter) =>
line_item = {}
line_item[attr] = data[attr] for attr in ["price", "quantity", "final_weight_volume"]
angular.toJson(line_item: line_item)
})

View File

@@ -0,0 +1,63 @@
angular.module("admin.lineItems").factory 'LineItems', ($q, LineItemResource) ->
new class LineItems
lineItemsByID: {}
pristineByID: {}
index: (params={}, callback=null) ->
LineItemResource.index params, (data) =>
@resetData()
for lineItem in data
@lineItemsByID[lineItem.id] = lineItem
@pristineByID[lineItem.id] = angular.copy(lineItem)
(callback || angular.noop)(data)
resetData: ->
@lineItemsByID = {}
@pristineByID = {}
saveAll: ->
for id, lineItem of @lineItemsByID
lineItem.errors = {} # removes errors when line_item has been returned to original state
@save(lineItem) if !@isSaved(lineItem)
save: (lineItem) ->
deferred = $q.defer()
lineItem.errors = {}
lineItem.$update({id: lineItem.id, orders: "orders", order_number: lineItem.order.number})
.then( (data) =>
@pristineByID[lineItem.id] = angular.copy(lineItem)
deferred.resolve(data)
).catch (response) ->
lineItem.errors = response.data.errors if response.data.errors?
deferred.reject(response)
deferred.promise
allSaved: ->
for id, lineItem of @lineItemsByID
return false unless @isSaved(lineItem)
true
isSaved: (lineItem) ->
@diff(lineItem).length == 0
diff: (lineItem) ->
changed = []
for attr, value of lineItem when not angular.equals(value, @pristineByID[lineItem.id][attr])
changed.push attr if attr in ["price", "quantity", "final_weight_volume"]
changed
resetAttribute: (lineItem, attribute) ->
lineItem[attribute] = @pristineByID[lineItem.id][attribute]
delete: (lineItem, callback=null) ->
deferred = $q.defer()
lineItem.$delete({id: lineItem.id, orders: "orders", order_number: lineItem.order.number})
.then( (data) =>
delete @lineItemsByID[lineItem.id]
delete @pristineByID[lineItem.id]
(callback || angular.noop)(data)
deferred.resolve(data)
).catch (response) ->
deferred.reject(response)
deferred.promise

View File

@@ -1,11 +1,16 @@
angular.module('admin.order_cycles', ['ngResource'])
.controller('AdminCreateOrderCycleCtrl', ['$scope', '$filter', 'OrderCycle', 'Enterprise', 'EnterpriseFee', 'ocInstance', ($scope, $filter, OrderCycle, Enterprise, EnterpriseFee, ocInstance) ->
angular.module('admin.orderCycles', ['ngResource', 'admin.utils'])
.controller('AdminCreateOrderCycleCtrl', ['$scope', '$filter', 'OrderCycle', 'Enterprise', 'EnterpriseFee', 'ocInstance', 'StatusMessage', ($scope, $filter, OrderCycle, Enterprise, EnterpriseFee, ocInstance, StatusMessage) ->
$scope.enterprises = Enterprise.index(coordinator_id: ocInstance.coordinator_id)
$scope.supplier_enterprises = Enterprise.producer_enterprises
$scope.distributor_enterprises = Enterprise.hub_enterprises
$scope.supplied_products = Enterprise.supplied_products
$scope.enterprise_fees = EnterpriseFee.index(coordinator_id: ocInstance.coordinator_id)
$scope.OrderCycle = OrderCycle
$scope.order_cycle = OrderCycle.new({ coordinator_id: ocInstance.coordinator_id})
$scope.StatusMessage = StatusMessage
$scope.loaded = ->
Enterprise.loaded && EnterpriseFee.loaded
@@ -74,19 +79,23 @@ angular.module('admin.order_cycles', ['ngResource'])
$scope.removeDistributionOfVariant = (variant_id) ->
OrderCycle.removeDistributionOfVariant(variant_id)
$scope.submit = (event) ->
event.preventDefault()
OrderCycle.create()
$scope.submit = (destination) ->
OrderCycle.create(destination)
])
.controller('AdminEditOrderCycleCtrl', ['$scope', '$filter', '$location', 'OrderCycle', 'Enterprise', 'EnterpriseFee', ($scope, $filter, $location, OrderCycle, Enterprise, EnterpriseFee) ->
.controller('AdminEditOrderCycleCtrl', ['$scope', '$filter', '$location', 'OrderCycle', 'Enterprise', 'EnterpriseFee', 'StatusMessage', ($scope, $filter, $location, OrderCycle, Enterprise, EnterpriseFee, StatusMessage) ->
order_cycle_id = $location.absUrl().match(/\/admin\/order_cycles\/(\d+)/)[1]
$scope.enterprises = Enterprise.index(order_cycle_id: order_cycle_id)
$scope.supplier_enterprises = Enterprise.producer_enterprises
$scope.distributor_enterprises = Enterprise.hub_enterprises
$scope.supplied_products = Enterprise.supplied_products
$scope.enterprise_fees = EnterpriseFee.index(order_cycle_id: order_cycle_id)
$scope.OrderCycle = OrderCycle
$scope.order_cycle = OrderCycle.load(order_cycle_id)
$scope.StatusMessage = StatusMessage
$scope.loaded = ->
Enterprise.loaded && EnterpriseFee.loaded && OrderCycle.loaded
@@ -155,9 +164,8 @@ angular.module('admin.order_cycles', ['ngResource'])
$scope.removeDistributionOfVariant = (variant_id) ->
OrderCycle.removeDistributionOfVariant(variant_id)
$scope.submit = (event) ->
event.preventDefault()
OrderCycle.update()
$scope.submit = (destination) ->
OrderCycle.update(destination)
])
.config(['$httpProvider', ($httpProvider) ->

Some files were not shown because too many files have changed in this diff Show More