Skip to content

Commit

Permalink
Merge pull request #131 from woothemes/release-1-4-1
Browse files Browse the repository at this point in the history
Release 1 4 1
  • Loading branch information
jeffikus committed Oct 10, 2013
2 parents 682c98e + a591cda commit 387fff1
Show file tree
Hide file tree
Showing 15 changed files with 383 additions and 295 deletions.
2 changes: 1 addition & 1 deletion assets/css/frontend.css

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions assets/css/frontend.less
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,12 @@ License: GPL version 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2
}
}

.single-lesson {
.lesson_button_form {
display: inline;
}
}

div.course-container div.course { display: block; padding: 5px; }
section.entry span.course-lesson-count { padding-left: 10px; }
section.entry span.course-category { padding-left: 10px; }
Expand Down
14 changes: 14 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
*** Sensei Changelog ***

2013.10.10 - version 1.4.1
* /templates/single-course/course-lessons.php - Fixing typo in lessons template
* /assets/css/frontend.less,
/assets/css/frontend.css - Updating layout of lesson buttons
* /classes/class-woothemes-sensei-frontend.php - Ensuring 'complete lesson' and 'take quiz' buttons display correctly
* /classes/class-woothemes-sensei-lesson.php - Fixing adding of multiple choice questions
* /classes/class-woothemes-sensei-course.php - Changing 'chapters' to 'lessons' for consistency
* /classes/class-woothemes-sensei-list-table.php - fixes user query and pagination for scaling
* /classes/class-woothemes-sensei-analysis-overview.php,
/classes/class-woothemes-sensei-analysis-course.php,
/classes/class-woothemes-sensei-analysis-lesson.php,
/classes/class-woothemes-sensei-grading.php,
/classes/class-woothemes-sensei-grading-main.php - fixes user query for scaling

2013.9.24 - version 1.4.0
* /templates/learner-profile.php,
/templates/learner-profile/learner-info.php - Adding new templates to display learner profiles
Expand Down
6 changes: 5 additions & 1 deletion classes/class-woothemes-sensei-analysis-course.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,11 @@ public function build_data_array() {
if ( '' !== $args_array['search'] ) {
$args_array['search'] = '*' . $args_array['search'] . '*';
} // End If Statement
$users = get_users( $args_array );

// Get Users
$users = $this->user_query_results( $args_array );

// Users Loop
foreach ( $users as $user_key => $user_item ) {
// Get Courses Started Date
$course_start_date = WooThemes_Sensei_Utils::sensei_get_activity_value( array( 'post_id' => $this->course_id, 'user_id' => $user_item->ID, 'type' => 'sensei_course_start', 'field' => 'comment_date' ) );
Expand Down
7 changes: 6 additions & 1 deletion classes/class-woothemes-sensei-analysis-lesson.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,18 @@ public function build_data_array() {
if ( '' !== $args_array['search'] ) {
$args_array['search'] = '*' . $args_array['search'] . '*';
} // End If Statement
$users = get_users( $args_array );

// Get Users
$users = $this->user_query_results( $args_array );

$output_counter = 0;
$lesson_quizzes = $woothemes_sensei->post_types->lesson->lesson_quizzes( $this->lesson_id );
// Get Quiz ID
foreach ($lesson_quizzes as $quiz_item) {
$lesson_quiz_id = $quiz_item->ID;
} // End For Loop

// Users Loop
foreach ( $users as $user_key => $user_item ) {
// Check if Lesson has started
$lesson_start_date = WooThemes_Sensei_Utils::sensei_get_activity_value( array( 'post_id' => $this->lesson_id, 'user_id' => $user_item->ID, 'type' => 'sensei_lesson_start', 'field' => 'comment_date' ) );
Expand Down
7 changes: 5 additions & 2 deletions classes/class-woothemes-sensei-analysis-overview.php
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,11 @@ public function overview_users( $args_array ) {
if ( '' !== $args_array['search'] ) {
$args_array['search'] = '*' . $args_array['search'] . '*';
} // End If Statement
$users = get_users( $args_array );
$this->total_items = count( $users );

// Get Users
$users = $this->user_query_results( $args_array );

// User Loop
foreach ( $users as $user_key => $user_item ) {
// Get Started Courses
$user_courses_started = WooThemes_Sensei_Utils::sensei_check_for_activity( array( 'user_id' => $user_item->ID, 'type' => 'sensei_course_start' ), true );
Expand Down
2 changes: 1 addition & 1 deletion classes/class-woothemes-sensei-course.php
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,7 @@ public function load_user_courses_content( $user = false, $manage = false ) {
if ( '' != $category_output ) {
$active_html .= '<span class="course-category">' . sprintf( __( 'in %s', 'woothemes-sensei' ), $category_output ) . '</span>';
} // End If Statement
$active_html .= '<span class="course-lesson-progress">' . sprintf( __( '%1$d of %2$d Chapters completed', 'woothemes-sensei' ) , $lessons_completed, $lesson_count ) . '</span>';
$active_html .= '<span class="course-lesson-progress">' . sprintf( __( '%1$d of %2$d lessons completed', 'woothemes-sensei' ) , $lessons_completed, $lesson_count ) . '</span>';

$active_html .= '</p>';

Expand Down
16 changes: 9 additions & 7 deletions classes/class-woothemes-sensei-frontend.php
Original file line number Diff line number Diff line change
Expand Up @@ -1083,7 +1083,7 @@ public function sensei_complete_lesson_button() {
global $woothemes_sensei;
if ( isset( $woothemes_sensei->settings->settings[ 'lesson_complete_button' ] ) && $woothemes_sensei->settings->settings[ 'lesson_complete_button' ] ) {
?>
<form method="POST" action="<?php echo esc_url( get_permalink() ); ?>">
<form class="lesson_button_form" method="POST" action="<?php echo esc_url( get_permalink() ); ?>">
<input type="hidden" name="<?php echo esc_attr( 'woothemes_sensei_complete_lesson_noonce' ); ?>" id="<?php echo esc_attr( 'woothemes_sensei_complete_lesson_noonce' ); ?>" value="<?php echo esc_attr( wp_create_nonce( 'woothemes_sensei_complete_lesson_noonce' ) ); ?>" />
<span><input type="submit" name="quiz_complete" class="quiz-submit complete" value="<?php echo apply_filters( 'sensei_complete_lesson_text', __( 'Complete Lesson', 'woothemes-sensei' ) ); ?>"/></span>
</form>
Expand All @@ -1098,23 +1098,25 @@ public function sensei_lesson_quiz_meta( $post_id = 0, $user_id = 0 ) {
$lesson_course_id = get_post_meta( $post_id, '_lesson_course', true );
// Lesson Quiz Meta
$lesson_quizzes = $woothemes_sensei->frontend->lesson->lesson_quizzes( $post_id );
?><header><?php
if ( 0 < count($lesson_quizzes) && is_user_logged_in() && sensei_has_user_started_course( $lesson_course_id, $user_id ) ) { ?>
<header>
<?php $no_quiz_count = 0; ?>
<?php foreach ($lesson_quizzes as $quiz_item){
// Display lesson quiz status message
$status = WooThemes_Sensei_Utils::sensei_user_quiz_status_message( $post_id, $user_id, true );
echo '<div class="woo-sc-box ' . $status['box_class'] . '">' . $status['message'] . '</div>';
echo $status['extra'];
} // End For Loop ?>
</header>
<?php } elseif( 0 < count($lesson_quizzes) && $woothemes_sensei->access_settings() ) { ?>
<header>
<?php foreach ($lesson_quizzes as $quiz_item){ ?>
<a class="button" href="<?php echo esc_url( get_permalink( $quiz_item->ID ) ); ?>" title="<?php echo esc_attr( apply_filters( 'sensei_view_lesson_quiz_text', __( 'View the Lesson Quiz', 'woothemes-sensei' ) ) ); ?>"><?php _e( 'View the Lesson Quiz', 'woothemes-sensei' ); ?></a>
<?php foreach ($lesson_quizzes as $quiz_item){
$quiz_questions = $woothemes_sensei->frontend->lesson->lesson_quiz_questions( $post_id );
if( 0 < count( $quiz_questions ) ) { ?>
<a class="button" href="<?php echo esc_url( get_permalink( $quiz_item->ID ) ); ?>" title="<?php echo esc_attr( apply_filters( 'sensei_view_lesson_quiz_text', __( 'View the Lesson Quiz', 'woothemes-sensei' ) ) ); ?>"><?php echo apply_filters( 'sensei_view_lesson_quiz_text', __( 'View the Lesson Quiz', 'woothemes-sensei' ) ); ?></a>
<?php } ?>
<?php } // End For Loop ?>
</header>
<?php } // End If Statement
sensei_complete_lesson_button();
?></header><?php
} // End sensei_lesson_quiz_meta()

public function sensei_course_archive_meta() {
Expand Down
25 changes: 23 additions & 2 deletions classes/class-woothemes-sensei-grading-main.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,29 @@ public function build_data_array() {
$args_array['search'] = '*' . $args_array['search'] . '*';
} // End If Statement
// Get Users data
$users = get_users( $args_array );
$this->total_items = count( $users );

if ( isset( $this->lesson_id ) && 0 < intval( $this->lesson_id ) ) {
$this->user_ids = WooThemes_Sensei_Utils::sensei_activity_ids( array( 'post_id' => intval( $this->lesson_id ), 'type' => 'sensei_lesson_start', 'field' => 'user_id' ) );
} // End If Statement

$offset = '';
if ( isset($_GET['paged']) && 0 < intval($_GET['paged']) ) {
$offset = $this->per_page * ( $_GET['paged'] - 1 );
} // End If Statement
$usersearch = isset( $_REQUEST['s'] ) ? trim( $_REQUEST['s'] ) : '';
$role = isset( $_REQUEST['role'] ) ? $_REQUEST['role'] : '';

$args_array = array(
'number' => $this->per_page,
'include' => $this->user_ids,
'offset' => $offset,
'role' => $role,
'search' => $usersearch,
'fields' => 'all_with_meta'
);

$users = $this->user_query_results( $args_array );

$lesson_id = $this->lesson_id;
$output_counter = 0;
$lesson_quizzes = $woothemes_sensei->post_types->lesson->lesson_quizzes( $lesson_id );
Expand Down
4 changes: 3 additions & 1 deletion classes/class-woothemes-sensei-grading.php
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,9 @@ public function get_lessons_html() {

$args_array = array();
// Get the data required
$users = get_users( $args_array );
$wp_user_search = new WP_User_Query( $args_array );
$users = $wp_user_search->get_results();

$output_counter = 0;
$lesson_quizzes = $woothemes_sensei->post_types->lesson->lesson_quizzes( $lesson_id );
// Get Quiz ID
Expand Down
12 changes: 9 additions & 3 deletions classes/class-woothemes-sensei-lesson.php
Original file line number Diff line number Diff line change
Expand Up @@ -1064,11 +1064,11 @@ private function lesson_save_question( $data = array() ) {
$question_wrong_answers = $data[ 'question_wrong_answers' ];
} // End If Statement
// Handle Boolean Fields - Edit
if ( isset( $data[ 'question_' . $question_id . '_right_answer_boolean' ] ) && ( '' != $data[ 'question_' . $question_id . '_right_answer_boolean' ] ) ) {
if ( isset( $data[ 'question_' . $question_id . '_right_answer_boolean' ] ) && ( '' != $data[ 'question_' . $question_id . '_right_answer_boolean' ] ) && 'boolean' == $question_type ) {
$question_right_answer = $data[ 'question_' . $question_id . '_right_answer_boolean' ];
} // End If Statement
// Handle Boolean Fields - Add
if ( isset( $data[ 'question_right_answer_boolean' ] ) && ( '' != $data[ 'question_right_answer_boolean' ] ) ) {
if ( isset( $data[ 'question_right_answer_boolean' ] ) && ( '' != $data[ 'question_right_answer_boolean' ] ) && 'boolean' == $question_type ) {
$question_right_answer = $data[ 'question_right_answer_boolean' ];
} // End If Statement
// Handle Gap Fill Fields
Expand Down Expand Up @@ -1108,8 +1108,14 @@ private function lesson_save_question( $data = array() ) {
);
// Remove empty values and reindex the array
if ( is_array( $question_wrong_answers ) ) {
$question_wrong_answers = array_values( array_filter( $question_wrong_answers, 'strlen' ) );
$question_wrong_answers_array = array_values( array_filter( $question_wrong_answers, 'strlen' ) );
$question_wrong_answers = array();
} // End If Statement
foreach( $question_wrong_answers_array as $answer ) {
if( ! in_array( $answer, $question_wrong_answers ) ) {
$question_wrong_answers[] = $answer;
}
}
// Only save if there is a valid title
if ( $post_title != '' ) {
// Get Quiz ID for the question
Expand Down
24 changes: 20 additions & 4 deletions classes/class-woothemes-sensei-list-table.php
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,11 @@ public function prepare_items() {
$total_items = count( $this->items );
// Subset for pagination
$this->items = array_slice($this->items,(($current_page-1)*$per_page),$per_page);
$this->set_pagination_args( array(
'total_items' => $total_items,
'per_page' => $per_page,
) );
} // End If Statement
$this->set_pagination_args( array(
'total_items' => $total_items,
'per_page' => $per_page
) );
} // End prepare_items()

/**
Expand Down Expand Up @@ -293,5 +293,21 @@ public function bulk_actions() {
// This will be output Above the table headers on the left
} // End bulk_actions()

/**
* user_query_results wrapper for user query
* @since 1.4.1
* @return array
*/
public function user_query_results( $args_array ) {
// User Query
$wp_user_search = new WP_User_Query( $args_array );
$users = $wp_user_search->get_results();
$this->set_pagination_args( array(
'total_items' => $wp_user_search->get_total(),
'per_page' => $this->per_page,
) );
return $users;
} // End user_query_results()

} // End Class
?>
Loading

0 comments on commit 387fff1

Please sign in to comment.