mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
gather more statistics (EDU-1033)
This commit is contained in:
+2
@@ -14,6 +14,7 @@ import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
|
||||
import com.jetbrains.edu.learning.courseFormat.Course;
|
||||
import com.jetbrains.edu.learning.courseFormat.TaskFile;
|
||||
import com.jetbrains.edu.learning.editor.StudyEditor;
|
||||
import com.jetbrains.edu.learning.statistics.EduUsagesCollector;
|
||||
|
||||
public class StudyFillPlaceholdersAction extends AnAction {
|
||||
@Override
|
||||
@@ -34,6 +35,7 @@ public class StudyFillPlaceholdersAction extends AnAction {
|
||||
}
|
||||
EduUtils.replaceAnswerPlaceholder(document, placeholder, placeholder.getRealLength(), answer);
|
||||
}
|
||||
EduUsagesCollector.placeholdersFilled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -31,6 +31,7 @@ import com.jetbrains.edu.learning.courseFormat.tasks.*;
|
||||
import com.jetbrains.edu.learning.editor.StudyChoiceVariantsPanel;
|
||||
import com.jetbrains.edu.learning.editor.StudyEditor;
|
||||
import com.jetbrains.edu.learning.navigation.StudyNavigator;
|
||||
import com.jetbrains.edu.learning.statistics.EduUsagesCollector;
|
||||
import com.jetbrains.edu.learning.ui.StudyToolWindow;
|
||||
import icons.EducationalCoreIcons;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -58,6 +59,7 @@ public class StudyRefreshTaskFileAction extends StudyActionWithShortcut {
|
||||
return;
|
||||
}
|
||||
refreshFile(studyState, project);
|
||||
EduUsagesCollector.fileRefreshed();
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -33,6 +33,7 @@ import com.jetbrains.edu.learning.courseFormat.Course;
|
||||
import com.jetbrains.edu.learning.courseFormat.RemoteCourse;
|
||||
import com.jetbrains.edu.learning.courseGeneration.StudyProjectGenerator;
|
||||
import com.jetbrains.edu.learning.newproject.EduCourseProjectGenerator;
|
||||
import com.jetbrains.edu.learning.statistics.EduUsagesCollector;
|
||||
import com.jetbrains.edu.learning.stepic.EduStepicConnector;
|
||||
import com.jetbrains.edu.learning.stepic.StepicUser;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -158,6 +159,7 @@ public class EduCoursesPanel extends JPanel {
|
||||
if (course != null) {
|
||||
myCourses.add(course);
|
||||
updateModel(myCourses, course.getName());
|
||||
EduUsagesCollector.localCourseAdded();
|
||||
} else {
|
||||
Messages.showErrorDialog("Selected archive doesn't contain a valid course", "Failed to Add Local Course");
|
||||
}
|
||||
|
||||
+24
@@ -28,6 +28,30 @@ import java.util.Set;
|
||||
public class EduUsagesCollector extends UsagesCollector {
|
||||
private static final String GROUP_ID = "educational";
|
||||
|
||||
public static void coursePreviewed() {
|
||||
advanceKey("coursePreview");
|
||||
}
|
||||
|
||||
public static void stepikAuthorization() {
|
||||
advanceKey("stepikAuthorization");
|
||||
}
|
||||
|
||||
public static void localCourseAdded() {
|
||||
advanceKey("localCourseAdded");
|
||||
}
|
||||
|
||||
public static void fileRefreshed() {
|
||||
advanceKey("refreshFile");
|
||||
}
|
||||
|
||||
public static void placeholdersFilled() {
|
||||
advanceKey("fillPlaceholders");
|
||||
}
|
||||
|
||||
public static void stepThroughInvoked() {
|
||||
advanceKey("stepThroughCode");
|
||||
}
|
||||
|
||||
public static void projectTypeCreated(@NotNull String projectTypeId) {
|
||||
advanceKey("project.created." + projectTypeId);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.jetbrains.edu.learning.courseFormat.*;
|
||||
import com.jetbrains.edu.learning.courseFormat.tasks.PyCharmTask;
|
||||
import com.jetbrains.edu.learning.courseFormat.tasks.Task;
|
||||
import com.jetbrains.edu.learning.courseFormat.tasks.TaskWithSubtasks;
|
||||
import com.jetbrains.edu.learning.statistics.EduUsagesCollector;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.apache.http.StatusLine;
|
||||
@@ -468,6 +469,7 @@ public class EduStepicConnector {
|
||||
}
|
||||
|
||||
public static void doAuthorize(@NotNull Runnable externalRedirectUrlHandler) {
|
||||
EduUsagesCollector.stepikAuthorization();
|
||||
String redirectUrl = getOAuthRedirectUrl();
|
||||
String link = createOAuthLink(redirectUrl);
|
||||
BrowserUtil.browse(link);
|
||||
|
||||
+2
@@ -5,6 +5,7 @@ import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.DumbAwareAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.jetbrains.edu.learning.statistics.EduUsagesCollector;
|
||||
|
||||
public class PyCCCreateProjectFromArchive extends DumbAwareAction {
|
||||
public PyCCCreateProjectFromArchive() {
|
||||
@@ -19,6 +20,7 @@ public class PyCCCreateProjectFromArchive extends DumbAwareAction {
|
||||
return;
|
||||
}
|
||||
|
||||
EduUsagesCollector.coursePreviewed();
|
||||
AbstractNewProjectDialog dialog = new AbstractNewProjectDialog() {
|
||||
@Override
|
||||
protected DefaultActionGroup createRootStep() {
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.intellij.xdebugger.XDebuggerBundle;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.actions.XDebuggerActions;
|
||||
import com.intellij.xdebugger.impl.ui.XDebugSessionTab;
|
||||
import com.jetbrains.edu.learning.statistics.EduUsagesCollector;
|
||||
import com.jetbrains.python.console.PythonDebugLanguageConsoleView;
|
||||
import com.jetbrains.python.debugger.PyDebugProcess;
|
||||
import com.jetbrains.python.debugger.PyDebugRunner;
|
||||
@@ -62,6 +63,7 @@ public class PyEduDebugRunner extends PyDebugRunner {
|
||||
if (file != null) {
|
||||
int line = getBreakpointLineNumber(file, session.getProject());
|
||||
if (line != NO_LINE) {
|
||||
EduUsagesCollector.stepThroughInvoked();
|
||||
return new PyEduDebugProcess(session, serverSocket,
|
||||
executionConsole, processHandler,
|
||||
isMultiProcess, scriptName, line + 1);
|
||||
|
||||
Reference in New Issue
Block a user