Merge remote-tracking branch 'github/master'

# Conflicts:
#	composer.lock
This commit is contained in:
Dave 2016-03-20 16:07:16 +00:00
commit 588f5012d6
8 changed files with 322 additions and 17 deletions

View File

@ -311,7 +311,7 @@ Route::group(['middleware' => ['auth', 'first.run']], function () {
});
/*
* Upoad event images
* Upload event images
*/
Route::post('/upload_image', [
'as' => 'postUploadEventImage',

View File

@ -29,7 +29,8 @@
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1"
"phpspec/phpspec": "~2.1",
"fzaninotto/faker": "^1.5"
},
"autoload": {

View File

@ -0,0 +1,290 @@
<?php
/*
|--------------------------------------------------------------------------
| Model Factories
|--------------------------------------------------------------------------
|
| Here you may define all of your model factories. Model factories give
| you a convenient way to create models for testing and seeding your
| database. Just tell the factory how a default model should look.
|
*/
use Carbon\Carbon;
$factory->define(App\Models\OrderStatus::class, function (Faker\Generator $faker) {
return [
'name' => $faker->text,
];
});
$factory->define(App\Models\TicketStatus::class, function (Faker\Generator $faker) {
return [
'name' => $faker->text,
];
});
$factory->define(App\Models\ReservedTickets::class, function (Faker\Generator $faker) {
return [
'ticket_id' => factory(App\Models\Ticket::class)->create()->id,
'event_id' => factory(App\Models\Event::class)->create()->id,
'quantity_reserved' => 50,
'expires' => Carbon::now()->addDays(2),
'session_id' => $faker->randomNumber
];
});
$factory->define(App\Models\Timezone::class, function (Faker\Generator $faker) {
return [
'name' => 'America/New_York',
'location' => 'New York'
];
});
$factory->define(App\Models\Timezone::class, function (Faker\Generator $faker) {
return [
'format' => "Y-m-d",
'picker_format' => "Y-m-d",
'label' => "utc date",
];
});
$factory->define(App\Models\DateTimeFormat::class, function (Faker\Generator $faker) {
return [
'format' => "Y-m-d H:i:s",
'label' => "utc",
];
});
$factory->define(App\Models\Currency::class, function (Faker\Generator $faker) {
return [
'title' => "Dollar",
'symbol_left' => "$",
'symbol_right' => "",
'code' => 'USD',
'decimal_place' => 2,
'value' => 100.00,
'decimal_point' => '.',
'thousand_point' => ',',
'status' => 1
];
});
//TODO create country class so country_id can be populated
$factory->define(App\Models\Account::class, function (Faker\Generator $faker) {
return [
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'email' => $faker->email,
'timezone_id' => factory(App\Models\Timezone::class)->create()->id,
'date_format_id' => factory(App\Models\Timezone::class)->create()->id,
'datetime_format_id' => factory(App\Models\DateTimeFormat::class)->create()->id,
'currency_id' => factory()->create()->id,
'name' => $faker->name,
'last_ip' => "127.0.0.1",
'last_login_date' => Carbon::now()->subDays(2),
'address1' => $faker->address,
'address2' => "",
'city' => $faker->city,
'state' => $faker->stateAbbr,
'postal_code' => $faker->postcode,
'country_id' => factory(App\Models\Country::class)->create()->id,
'email_footer' => 'Email footer text',
'is_active' => false,
'is_banned' => false,
'is_beta' => false,
'stripe_access_token' => str_random(10),
'stripe_refresh_token' => str_random(10),
'stripe_secret_key' => str_random(10),
'stripe_publishable_key' => str_random(10),
'stripe_raw_data' => $faker->text,
];
});
$factory->define(App\Models\User::class, function (Faker\Generator $faker) {
return [
'account_id' => $faker->randomDigit,
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'phone' => $faker->phoneNumber,
'email' => $faker->email,
'password' => $faker->password,
'confirmation_code' => $faker->randomNumber,
'is_registered' => false,
'is_confirmed' => false,
'is_parent' => false,
'remember_token' => $faker->randomNumber
];
});
$factory->define(App\Models\Organiser::class, function (Faker\Generator $faker) {
return [
'account_id' => factory(App\Models\Account::class)->create()->id,
'name' => $faker->name,
'about' => $faker->text,
'email' => $faker->email,
'phone' => $faker->phoneNumber,
'facebook' => 'https://facebook.com/organizer-profile',
'twitter' => 'https://twitter.com/organizer-profile',
'logo_path' => 'path/to/logo',
'is_email_confirmed' => 0,
];
});
$factory->define(App\Models\Event::class, function (Faker\Generator $faker) {
return [
'title' => $faker->title,
'location' => $faker->text,
'bg_type' => 'color',
'bg_color' => config('attendize.event_default_bg_color'),
'bg_image_path' => $faker->imageUrl,
'description' => $faker->text,
'start_date' => Carbon::now(),
'end_date' => Carbon::now()->addDay(),
'on_sale_date' => Carbon::now()->subDays(20),
'account_id' => factory(App\Models\Account::class)->create()->id,
'user_id' => factory(App\Models\User::class)->create()->id,
'currency_id' => factory(App\Models\Currency::class)->create()->id,
'sales_volume' => 0,
'organiser_fees_volume' => 0,
'organiser_fee_fixed' => 0,
'organiser_fee_percentage' => 0,
'organiser_id' => factory(App\Models\Organiser::class)->create()->id,
'venue_name' => $faker->name,
'venue_name_full' => $faker->name,
'location_address' => $faker->address,
'location_address_line_1' => $faker->streetAddress,
'location_address_line_2' => $faker->secondaryAddress,
'location_country' => $faker->country,
'location_country_code' => $faker->countryCode,
'location_state' => $faker->state,
'location_post_code' => $faker->postcode,
'location_street_number' => $faker->buildingNumber,
'location_lat' => $faker->latitude,
'location_long' => $faker->longitude,
'location_google_place_id' => $faker->randomDigit,
'ask_for_all_attendees_info' => 0,
'pre_order_display_message' => $faker->text,
'post_order_display_message' => $faker->text,
'social_share_text' => 'Check Out [event_title] - [event_url]',
'social_show_facebook' => true,
'social_show_linkedin' => true,
'social_show_twitter' => true,
'social_show_email' => true,
'social_show_googleplus' => true,
'location_is_manual' => 0,
'is_live' => false
];
});
$factory->define(App\Models\Order::class, function (Faker\Generator $faker) {
return [
'account_id' => factory(App\Models\Account::class)->create()->id,
'order_status_id' => factory(App\Models\OrderStatus::class)->create()->id,
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'email' => $faker->email,
'ticket_pdf_path' => '/ticket/pdf/path',
'order_reference' => $faker->text,
'transaction_id' => $faker->text,
'discount' => .20,
'booking_fee' => .10,
'organiser_booking_fee' => .10,
'order_date' => Carbon::now(),
'notes' => $faker->text,
'is_deleted' => 0,
'is_cancelled' => 0,
'is_partially_refunded' => 0,
'is_refunded' => 0,
'amount' => 20.00,
'amount_refunded' => 0,
'event_id' => factory(App\Models\Event::class)->create()->id
];
});
$factory->define(App\Models\Ticket::class, function (Faker\Generator $faker) {
return [
'edited_by_user_id' => factory(App\Models\User::class)->create()->id,
'account_id' => factory(App\Models\Account::class)->create()->id,
'order_id' => factory(App\Models\OrderStatus::class)->create()->id,
'event_id' => factory(App\Models\Event::class)->create()->id,
'title' => $faker->name,
'description' => $faker->text,
'price' => 50.00,
'max_per_person' => 4,
'min_per_person' => 1,
'quantity_available' => 50,
'quantity_sold' => 0,
'start_sale_date' => Carbon::now(),
'end_sale_date' => Carbon::now()->addDays(20),
'sales_volume' => 0,
'organizer_fees_volume' => 0,
'is_paused' => 0
];
});
$factory->define(App\Models\OrderItem::class, function (Faker\Generator $faker) {
return [
'title' => $faker->title,
'quantity' => 5,
'unit_price' => 20.00,
'unit_booking_fee' => 2.00,
'order_id' => factory(App\Models\Order::class)->create()->id
];
});
$factory->define(App\Models\EventStats::class, function (Faker\Generator $faker) {
return [
'date' => Carbon::now(),
'views' => 0,
'unique_views' => 0,
'tickets_sold' => 0,
'sales_volumne' => 0,
'organiser_fees_volume' => 0,
'event_id' => factory(App\Models\Event::class)->create()->id,
];
});
$factory->define(App\Models\Attendee::class, function (Faker\Generator $faker) {
return [
'order_id' => factory(App\Models\Order::class)->create()->id,
'event_id' => factory(App\Models\Event::class)->create()->id,
'ticket_id' => factory(App\Models\Ticket::class)->create()->id,
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'email' => $faker->email,
'reference' => $faker->text(20),
'private_reference_number' => 1,
'is_cancelled' => false,
'has_arrived' => false,
'arrival_time' => Carbon::now(),
'account_id' => factory(App\Models\Account::class)->create()->id,
];
});
$faker->define(App\Models\Message::class, function (Faker\Generator $faker) {
return [
'message' => $faker->text,
'subject' => $faker->text,
'recipients' => 0,
];
});
$faker->define(App\Models\EventImage::class, function (Faker\Generator $faker) {
return [
'image_path' => $faker->imageUrl(),
'event_id' => factory(App\Models\Event::class)->create()->id,
'account_id' => factory(App\Models\Account::class)->create()->id,
'user_id' => factory(App\Models\User::class)->create()->id
];
});

View File

@ -65,7 +65,7 @@
</head>
<body class="attendize">
<div id="event_page_wrap">
<div id="event_page_wrap" vocab="http://schema.org/" typeof="Event">
@yield('content')
</div>

View File

@ -7,18 +7,18 @@
<div class="row">
@if($event->images->count())
<div class="col-md-7">
<div class="content event_details">
<div class="content event_details" property="description">
{!! Markdown::parse($event->description) !!}
</div>
</div>
<div class="col-md-5">
<div class="content event_poster">
<img alt="{{$event->title}}" src="{{config('attendize.cdn_url_user_assets').'/'.$event->images->first()['image_path']}}" />
<img alt="{{$event->title}}" src="{{config('attendize.cdn_url_user_assets').'/'.$event->images->first()['image_path']}}" property="image">
</div>
</div>
@else
<div class="col-md-12">
<div class="content event_details">
<div class="content event_details" property="description">
{!! Markdown::parse($event->description) !!}
</div>
</div>

View File

@ -32,9 +32,20 @@
<section id="intro" class="container">
<div class="row">
<div class="col-md-12">
<h1>{{$event->title}}</h1>
<div class="event_venue">{{ $event->start_date->toDayDateTimeString() }}
- {{ $event->end_date->format('H:i A') }} @ <b> {{$event->venue_name}}</b>
<h1 property="name">{{$event->title}}</h1>
<div class="event_venue">
<span property="startDate" content="{{ $event->start_date->toIso8601String() }}">
{{ $event->start_date->toDayDateTimeString() }}
</span>
-
<span property="endDate" content="{{ $event->end_date->toIso8601String() }}">
{{ $event->end_date->format('H:i A') }}
</span>
@
<span property="location" typeof="Place">
<b property="name">{{$event->venue_name}}</b>
<meta property="address" content="{{{ urldecode($event->venue_name) }}}">
</span>
</div>
<div class="event_buttons">

View File

@ -1,15 +1,15 @@
<section id="organiser" class="container">
<div class="row">
<div class="col-md-12">
<div class="event_organiser_details">
<div class="event_organiser_details" property="organizer" typeof="Organization">
<div class="logo">
<img alt="{{$event->organiser->name}}" src="{{asset($event->organiser->full_logo_path)}}"/>
<img alt="{{$event->organiser->name}}" src="{{asset($event->organiser->full_logo_path)}}" property="logo">
</div>
<h3>
<h3 property="name">
{{$event->organiser->name}}
</h3>
<p>
<p property="description">
{{nl2br($event->organiser->about)}}
</p>
<p>

View File

@ -20,12 +20,12 @@
<div class="tickets_table_wrap">
<table class="table">
@foreach($tickets as $ticket)
<tr class="ticket">
<tr class="ticket" property="offers" typeof="Offer">
<td>
<span class="ticket-title semibold">
<span class="ticket-title semibold" property="name">
{{{$ticket->title}}}
</span>
<p class="ticket-descripton mb0 text-muted">
<p class="ticket-descripton mb0 text-muted" property="description">
{{{$ticket->description}}}
</p>
</td>
@ -35,6 +35,8 @@
FREE
@else
<span title='{{{money($ticket->price, $event->currency->code)}}} Ticket Price + {{money($ticket->total_booking_fee, $event->currency->code)}} Booking Fees'>{{{money($ticket->total_price, $event->currency->code)}}} </span>
<meta property="priceCurrency" content="{{{ $event->currency->code }}}">
<meta property="price" content="{{{ number_format($ticket->price, 2, '.', '') }}}">
@endif
</div>
</td>
@ -48,7 +50,7 @@
@else
@if($ticket->sale_status === config('attendize.ticket_status_sold_out'))
<span class="text-danger">
<span class="text-danger" property="availability" content="http://schema.org/SoldOut">
Sold Out
</span>
@elseif($ticket->sale_status === config('attendize.ticket_status_before_sale_date'))
@ -61,6 +63,7 @@
</span>
@else
{!! Form::hidden('tickets[]', $ticket->id) !!}
<meta property="availability" content="http://schema.org/InStock">
<select name="ticket_{{$ticket->id}}" class="form-control" style="text-align: center">
<option value="0">0</option>
@for($i=$ticket->min_per_person; $i<=$ticket->max_per_person; $i++)