finished
This commit is contained in:
29
cs2610hw5/.idea/cs2610hw5.iml
generated
Normal file
29
cs2610hw5/.idea/cs2610hw5.iml
generated
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="django" name="Django">
|
||||
<configuration>
|
||||
<option name="rootFolder" value="$MODULE_DIR$" />
|
||||
<option name="settingsModule" value="cs2610hw5/settings.py" />
|
||||
<option name="manageScript" value="manage.py" />
|
||||
<option name="environment" value="<map/>" />
|
||||
</configuration>
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="TemplatesService">
|
||||
<option name="TEMPLATE_CONFIGURATION" value="Django" />
|
||||
<option name="TEMPLATE_FOLDERS">
|
||||
<list>
|
||||
<option value="$MODULE_DIR$/Blog/templates" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="TestRunnerService">
|
||||
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
|
||||
</component>
|
||||
</module>
|
||||
7
cs2610hw5/.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
7
cs2610hw5/.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="useProjectProfile" value="false" />
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
||||
4
cs2610hw5/.idea/misc.xml
generated
Normal file
4
cs2610hw5/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.10 (/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7)" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
8
cs2610hw5/.idea/modules.xml
generated
Normal file
8
cs2610hw5/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/cs2610hw5.iml" filepath="$PROJECT_DIR$/.idea/cs2610hw5.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
553
cs2610hw5/.idea/workspace.xml
generated
Normal file
553
cs2610hw5/.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,553 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="61d1b8ed-0853-40ca-b796-2833f247ace5" name="Default" comment="" />
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<file leaf-file-name="views.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/views.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="104">
|
||||
<caret line="119" column="0" lean-forward="true" selection-start-line="119" selection-start-column="0" selection-end-line="119" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="e#0#35#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="detail.html" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/detail.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="201">
|
||||
<caret line="35" column="49" lean-forward="false" selection-start-line="35" selection-start-column="49" selection-end-line="35" selection-end-column="49" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="index.html" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="336">
|
||||
<caret line="36" column="127" lean-forward="false" selection-start-line="36" selection-start-column="24" selection-end-line="36" selection-end-column="127" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="techTips.html" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/techTips.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-185">
|
||||
<caret line="18" column="71" lean-forward="false" selection-start-line="18" selection-start-column="71" selection-end-line="18" selection-end-column="71" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="archive.html" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/archive.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="354">
|
||||
<caret line="31" column="46" lean-forward="false" selection-start-line="31" selection-start-column="36" selection-end-line="31" selection-end-column="46" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="bio.html" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/bio.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="255">
|
||||
<caret line="17" column="71" lean-forward="false" selection-start-line="17" selection-start-column="71" selection-end-line="17" selection-end-column="71" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="models.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/models.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="e#0#15#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="urls.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/urls.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="150">
|
||||
<caret line="10" column="39" lean-forward="false" selection-start-line="10" selection-start-column="33" selection-end-line="10" selection-end-column="39" />
|
||||
<folding>
|
||||
<element signature="e#0#28#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="HTML File" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>blogA</find>
|
||||
<find>i.</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/Blog/urls.py" />
|
||||
<option value="$PROJECT_DIR$/Blog/templates/Blog/techTips.html" />
|
||||
<option value="$PROJECT_DIR$/Blog/templates/Blog/bio.html" />
|
||||
<option value="$PROJECT_DIR$/Blog/templates/Blog/index.html" />
|
||||
<option value="$PROJECT_DIR$/Blog/templates/Blog/archive.html" />
|
||||
<option value="$PROJECT_DIR$/Blog/views.py" />
|
||||
<option value="$PROJECT_DIR$/Blog/templates/Blog/detail.html" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||
<component name="JsGulpfileManager">
|
||||
<detection-done>true</detection-done>
|
||||
<sorting>DEFINITION_ORDER</sorting>
|
||||
</component>
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="width" value="1280" />
|
||||
<option name="height" value="800" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||
<flattenPackages />
|
||||
<showMembers />
|
||||
<showModules />
|
||||
<showLibraryContents />
|
||||
<hideEmptyPackages />
|
||||
<abbreviatePackageNames />
|
||||
<autoscrollToSource />
|
||||
<autoscrollFromSource />
|
||||
<sortByType />
|
||||
<manualOrder />
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Blog" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="cs2610hw5" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Blog" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="templates" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="Blog" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scratches" />
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||
<property name="DefaultHtmlFileTemplate" value="HTML File" />
|
||||
<property name="run.code.analysis.last.selected.profile" value="aDefault" />
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
<option name="ruleStates">
|
||||
<list>
|
||||
<RuleState>
|
||||
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
<RuleState>
|
||||
<option name="name" value="StatusDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="RunManager" selected="Django server.cs2610hw5">
|
||||
<configuration default="true" type="DjangoTestsConfigurationType" factoryName="Django tests">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<module name="cs2610hw5" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||
<option name="TARGET" value="" />
|
||||
<option name="SETTINGS_FILE" value="" />
|
||||
<option name="CUSTOM_SETTINGS" value="false" />
|
||||
<option name="USE_OPTIONS" value="false" />
|
||||
<option name="OPTIONS" value="" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="JavaScriptTestRunnerJest" factoryName="Jest">
|
||||
<node-interpreter value="project" />
|
||||
<working-dir value="" />
|
||||
<envs />
|
||||
<scope-kind value="ALL" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
|
||||
<config-file value="" />
|
||||
<node-interpreter value="project" />
|
||||
<envs />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="PyBehaveRunConfigurationType" factoryName="Behave">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<module name="cs2610hw5" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||
<option name="ADDITIONAL_ARGS" value="" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="PyLettuceRunConfigurationType" factoryName="Lettuce">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<module name="cs2610hw5" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||
<option name="ADDITIONAL_ARGS" value="" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="Python.DjangoServer" factoryName="Django server">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<module name="cs2610hw5" />
|
||||
<option name="launchJavascriptDebuger" value="false" />
|
||||
<option name="port" value="8000" />
|
||||
<option name="host" value="" />
|
||||
<option name="additionalOptions" value="" />
|
||||
<option name="browserUrl" value="" />
|
||||
<option name="runTestServer" value="false" />
|
||||
<option name="runNoReload" value="false" />
|
||||
<option name="useCustomRunCommand" value="false" />
|
||||
<option name="customRunCommand" value="" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="PythonConfigurationType" factoryName="Python">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<module name="cs2610hw5" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||
<option name="SCRIPT_NAME" value="" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="Tox" factoryName="Tox">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||
<module name="cs2610hw5" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
|
||||
<command value="run" />
|
||||
<scripts />
|
||||
<node-interpreter value="project" />
|
||||
<envs />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="tests" factoryName="Doctests">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<module name="cs2610hw5" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||
<option name="SCRIPT_NAME" value="" />
|
||||
<option name="CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="FOLDER_NAME" value="" />
|
||||
<option name="TEST_TYPE" value="TEST_SCRIPT" />
|
||||
<option name="PATTERN" value="" />
|
||||
<option name="USE_PATTERN" value="false" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="tests" factoryName="Unittests">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<module name="cs2610hw5" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
|
||||
<option name="_new_additionalArguments" value="""" />
|
||||
<option name="_new_target" value=""."" />
|
||||
<option name="_new_targetType" value=""PATH"" />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="false" name="cs2610hw5" type="Python.DjangoServer" factoryName="Django server">
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<module name="cs2610hw5" />
|
||||
<option name="launchJavascriptDebuger" value="false" />
|
||||
<option name="port" value="8000" />
|
||||
<option name="host" value="" />
|
||||
<option name="additionalOptions" value="" />
|
||||
<option name="browserUrl" value="" />
|
||||
<option name="runTestServer" value="false" />
|
||||
<option name="runNoReload" value="false" />
|
||||
<option name="useCustomRunCommand" value="false" />
|
||||
<option name="customRunCommand" value="" />
|
||||
<method />
|
||||
</configuration>
|
||||
<list size="1">
|
||||
<item index="0" class="java.lang.String" itemvalue="Django server.cs2610hw5" />
|
||||
</list>
|
||||
</component>
|
||||
<component name="ShelveChangesManager" show_recycled="false">
|
||||
<option name="remove_strategy" value="false" />
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="61d1b8ed-0853-40ca-b796-2833f247ace5" name="Default" comment="" />
|
||||
<created>1522290774101</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1522290774101</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="0" y="0" width="1280" height="800" extended-state="0" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24959612" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
</layout>
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="processedProjectFiles" value="true" />
|
||||
</component>
|
||||
<component name="VcsContentAnnotationSettings">
|
||||
<option name="myLimit" value="2678400000" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager />
|
||||
<watches-manager />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/techTips.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-185">
|
||||
<caret line="18" column="71" lean-forward="false" selection-start-line="18" selection-start-column="71" selection-end-line="18" selection-end-column="71" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Blog/urls.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="150">
|
||||
<caret line="10" column="39" lean-forward="false" selection-start-line="10" selection-start-column="33" selection-end-line="10" selection-end-column="39" />
|
||||
<folding>
|
||||
<element signature="e#0#28#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Blog/models.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="e#0#15#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/bio.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="255">
|
||||
<caret line="17" column="71" lean-forward="false" selection-start-line="17" selection-start-column="71" selection-end-line="17" selection-end-column="71" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/archive.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="354">
|
||||
<caret line="31" column="46" lean-forward="false" selection-start-line="31" selection-start-column="36" selection-end-line="31" selection-end-column="46" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="336">
|
||||
<caret line="36" column="127" lean-forward="false" selection-start-line="36" selection-start-column="24" selection-end-line="36" selection-end-column="127" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Blog/views.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="104">
|
||||
<caret line="119" column="0" lean-forward="true" selection-start-line="119" selection-start-column="0" selection-end-line="119" selection-end-column="0" />
|
||||
<folding>
|
||||
<element signature="e#0#35#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Blog/templates/Blog/detail.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="201">
|
||||
<caret line="35" column="49" lean-forward="false" selection-start-line="35" selection-start-column="49" selection-end-line="35" selection-end-column="49" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,3 +1,7 @@
|
||||
from django.contrib import admin
|
||||
from .models import Posts, Comments
|
||||
|
||||
# Register your models here.
|
||||
|
||||
admin.site.register(Posts)
|
||||
admin.site.register(Comments)
|
||||
|
||||
40
cs2610hw5/Blog/migrations/0001_initial.py
Normal file
40
cs2610hw5/Blog/migrations/0001_initial.py
Normal file
@@ -0,0 +1,40 @@
|
||||
# Generated by Django 2.0.2 on 2018-03-29 02:39
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Comments',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('user_nickname', models.CharField(max_length=18)),
|
||||
('user_email', models.EmailField(max_length=100)),
|
||||
('date_time', models.DateTimeField(verbose_name='Date published')),
|
||||
('post_text', models.TextField()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Posts',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title_input', models.CharField(max_length=25)),
|
||||
('user_name', models.CharField(max_length=18)),
|
||||
('date_time', models.DateTimeField(auto_now_add=True, verbose_name='Date published')),
|
||||
('post_text', models.TextField()),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='comments',
|
||||
name='post',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Blog.Posts'),
|
||||
),
|
||||
]
|
||||
Binary file not shown.
@@ -1,3 +1,23 @@
|
||||
import datetime
|
||||
from django.utils import timezone
|
||||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
|
||||
class Posts(models.Model):
|
||||
title_input = models.CharField(max_length=25)
|
||||
user_name = models.CharField(max_length=18)
|
||||
date_time = models.DateTimeField('Date published', auto_now_add=True)
|
||||
post_text = models.TextField()
|
||||
def __str__(self):
|
||||
return self.title_input
|
||||
|
||||
class Comments(models.Model):
|
||||
post = models.ForeignKey(Posts, on_delete=models.CASCADE)
|
||||
user_nickname = models.CharField(max_length=18)
|
||||
user_email = models.EmailField(max_length=100)
|
||||
date_time = models.DateTimeField('Date published')
|
||||
post_text = models.TextField()
|
||||
def __str__(self):
|
||||
return self.user_nickname
|
||||
|
||||
|
||||
48
cs2610hw5/Blog/templates/Blog/archive.html
Normal file
48
cs2610hw5/Blog/templates/Blog/archive.html
Normal file
@@ -0,0 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% load static %}
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href= "{% static "Blog/style.css" %}">
|
||||
<title>Welcome</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h1>Crucio Assignment</h1>
|
||||
</div>
|
||||
<div>
|
||||
<nav>
|
||||
<a class="NavLinks" href= "{% url 'bio' %}"><h2>BIO</h2></a>
|
||||
<a class="NavLinks" href="{% url 'techTips' %}"><h2>Tech Tips</h2></a>
|
||||
<a class="NavLinks" href="{% url 'index' %}"><h2>Home</h2></a>
|
||||
<a class="NavLinks" href= "{% url 'archive' %}"><h2>Archive</h2></a>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<main class="mainSet">
|
||||
{% if blogs %}
|
||||
{% for i in blogs %}
|
||||
<article class="blogA">
|
||||
|
||||
<div class="blogPosts">
|
||||
|
||||
<h5><a href="{% url 'detail' i.id %}">{{i.title_input}}</a></h5>
|
||||
<p>
|
||||
{{i.posts_text|truncatewords:200}}
|
||||
</p>
|
||||
<h5 class="dateSett">{{i.date_time}} | {{i.comments_set.count}} Comments</h5>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
<footer>This is my footer and its super duper awesome. See! {% now "jS F Y H:i" %}</footer>
|
||||
</html>
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% load static %}
|
||||
<meta charset="utf-8">
|
||||
@@ -15,6 +15,7 @@
|
||||
<a class="NavLinks" href= "{% url 'bio' %}"><h2>BIO</h2></a>
|
||||
<a class="NavLinks" href="{% url 'techTips' %}"><h2>Tech Tips</h2></a>
|
||||
<a class="NavLinks" href="{% url 'index' %}"><h2>Home</h2></a>
|
||||
<a class="NavLinks" href= "{% url 'archive' %}"><h2>Archive</h2></a>
|
||||
</nav>
|
||||
</div>
|
||||
<main class="bioMainBody">
|
||||
|
||||
56
cs2610hw5/Blog/templates/Blog/detail.html
Normal file
56
cs2610hw5/Blog/templates/Blog/detail.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% load static %}
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href= "{% static "Blog/style.css" %}">
|
||||
<title>Welcome</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h1>Crucio Assignment</h1>
|
||||
</div>
|
||||
<div>
|
||||
<nav>
|
||||
<a class="NavLinks" href= "{% url 'bio' %}"><h2>BIO</h2></a>
|
||||
<a class="NavLinks" href="{% url 'techTips' %}"><h2>Tech Tips</h2></a>
|
||||
<a class="NavLinks" href="{% url 'index' %}"><h2>Home</h2></a>
|
||||
<a class="NavLinks" href= "{% url 'archive' %}"><h2>Archive</h2></a>
|
||||
</nav>
|
||||
</div>
|
||||
<main class="mainBody">
|
||||
<article class="blogA">
|
||||
{% if current_blog %}
|
||||
<div class="blogPosts">
|
||||
<header class="blogHeader"><h1><a href="{% url 'detail' current_blog.id %}"> {{ current_blog.title_input }}</a></h1></header>
|
||||
<p>
|
||||
{{ current_blog.post_text|truncatewords:200 }}
|
||||
</p>
|
||||
<h5>
|
||||
{{ current_blog.date_time }} |
|
||||
{{ current_blog.comments_set.count }} | By
|
||||
{{ current_blog.user_name }}
|
||||
</h5>
|
||||
{% for comment in current_blog.comments_set.all %}
|
||||
<h4>{{comment.user_nickname}} || {{comment.pub_date}}</h4>
|
||||
<p>{{comment.post_text}}</p>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
<form method="post" action="{% url 'comment' current_blog.id %}">
|
||||
{% csrf_token %}
|
||||
<input type="text" name="user_nickname" placeholder="Nickname:"/>
|
||||
<input type="email" name="user_email" placeholder="Email:"/>
|
||||
<input type="text" name="post_text"/>
|
||||
<input type="submit" value="Submit">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
</article>
|
||||
</main>
|
||||
|
||||
|
||||
<footer>This is my footer and its super duper awesome. See! {% now "jS F Y H:i" %}</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% load static %}
|
||||
<meta charset="utf-8">
|
||||
@@ -15,6 +15,7 @@
|
||||
<a class="NavLinks" href= "{% url 'bio' %}"><h2>BIO</h2></a>
|
||||
<a class="NavLinks" href="{% url 'techTips' %}"><h2>Tech Tips</h2></a>
|
||||
<a class="NavLinks" href="{% url 'index' %}"><h2>Home</h2></a>
|
||||
<a class="NavLinks" href= "{% url 'archive' %}"><h2>Archive</h2></a>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
@@ -30,25 +31,21 @@
|
||||
</aside>
|
||||
|
||||
<article class="blogA">
|
||||
<div class="blogPosts">
|
||||
<header class="blogHeader"><h1>Lorem Ipsum Dolor</h1></header>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec venenatis ullamcorper dui fringilla lacinia. Aenean nec felis mauris. Curabitur volutpat diam risus, vel placerat diam aliquam pretium. Suspendisse condimentum leo mauris, vel pulvinar ex efficitur quis. Duis convallis purus tellus, non fermentum quam ultricies sit amet. Quisque convallis, nunc eget hendrerit pharetra, mauris leo venenatis eros, nec pulvinar ipsum lectus eget nisl. In eu posuere tortor, eu dignissim ipsum. In id feugiat sem. Etiam feugiat maximus pretium. Quisque sed nisi sed lacus faucibus tristique. Ut eu ultrices felis. In dui ante, fringilla at augue id, porta finibus est. Vestibulum consectetur vel lacus nec blandit. Vivamus non lacus eros. Nunc commodo commodo ullamcorper. Vestibulum sed erat in justo ultrices fermentum in feugiat orci.
|
||||
Cras at maximus enim. Etiam eu felis vel nisi hendrerit hendrerit. Mauris fermentum, urna et accumsan tincidunt, purus tellus fermentum libero, id laoreet est magna sed felis. Nam fermentum interdum nunc vel tristique. Integer accumsan ipsum quis est convallis dapibus. Curabitur varius bibendum diam quis eleifend. Vestibulum quis semper erat. Duis vel maximus tortor. Sed vehicula ullamcorper libero, quis rhoncus erat condimentum sit amet. Etiam quispurus quam.
|
||||
</p>
|
||||
</div>
|
||||
<div class="blogPosts">
|
||||
<header class="blogHeader"><h1>Vestibulum Ante Ipsum</h1></header>
|
||||
<p>
|
||||
Etiam ac leo nec risus mattis finibus non in dolor. Vivamus aliquam scelerisque risus, a convallis diam mattis id. Mauris sit amet erat ipsum. Vestibulum auctor, ex id vehicula accumsan, magna eros volutpat neque, id iaculis enimdolor eu dui. In hac habitasse platea dictumst. Cras rutrum enim at tellus blandit euismod. Praesent cursus liberodiam, in tempor lectus bibendum quis. Vestibulum interdum convallis tortor, ullamcorper ullamcorper augue feugiatvel. Sed sollicitudin nulla est, eget consequat quam molestie in. Nunc augue neque, rhoncus vitae ullamcorper tristique, bibendum nec dolor. Mauris faucibus aliquam magna eget commodo.
|
||||
</p>
|
||||
</div>
|
||||
<div class="blogPosts">
|
||||
<header class="blogHeader"><h1>In Varius Leo Vel Velit</h1></header>
|
||||
<p>
|
||||
Maecenas suscipit tempus neque non dapibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In hachabitasse platea dictumst. Maecenas vehicula consectetur dignissim. Suspendisse egestas maximus turpis quiseuismod. Morbi pulvinar metus justo, quis aliquam leo pellentesque sed. Morbi sagittis laoreet orci, in pharetra tortor faucibus id.
|
||||
</p>
|
||||
</div>
|
||||
{% if recent_blog %}
|
||||
{% for i in recent_blog %}
|
||||
<div class="blogPosts">
|
||||
<header class="blogHeader"><h1><a href="{% url 'detail' i.id %}"> {{ i.title_input }}</a></h1></header>
|
||||
<p>
|
||||
{{ i.post_text|truncatewords:200 }}
|
||||
</p>
|
||||
<h5>
|
||||
{{ i.date_time }} |
|
||||
{{ i.comments_set.count }} | By
|
||||
{{ i.user_name }}
|
||||
</h5>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</article>
|
||||
</main>
|
||||
<footer>This is my footer and its super duper awesome. See! {% now "jS F Y H:i" %}</footer>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="en">
|
||||
<!-- A00987897 Brady Bodily -->
|
||||
<head>
|
||||
{% load static %}
|
||||
@@ -16,6 +16,7 @@
|
||||
<a class="NavLinks" href= "{% url 'bio' %}"><h2>BIO</h2></a>
|
||||
<a class="NavLinks" href="{% url 'techTips' %}"><h2>Tech Tips</h2></a>
|
||||
<a class="NavLinks" href="{% url 'index' %}"><h2>Home</h2></a>
|
||||
<a class="NavLinks" href= "{% url 'archive' %}"><h2>Archive</h2></a>
|
||||
</nav>
|
||||
</div>
|
||||
<main class="mainBody">
|
||||
|
||||
@@ -5,5 +5,9 @@ from . import views
|
||||
urlpatterns = [
|
||||
path('', views.index, name='index'),
|
||||
path('bio/', views.bio, name='bio'),
|
||||
path('techTips/', views.techTips, name='techTips')
|
||||
path('techTips/', views.techTips, name='techTips'),
|
||||
path('archive/', views.archive, name='archive'),
|
||||
path('<int:post_id>/comment/', views.comment, name='comment'),
|
||||
path('<int:post_id>/', views.detail, name='detail'),
|
||||
path('init', views.delete_db, name='delete_db')
|
||||
]
|
||||
|
||||
@@ -1,12 +1,142 @@
|
||||
from django.shortcuts import render
|
||||
from django.http import HttpResponse
|
||||
from django.template import loader
|
||||
from django.utils import timezone
|
||||
from django.urls import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from random import randint
|
||||
from .models import Posts, Comments
|
||||
|
||||
# Create your views here.
|
||||
LOREM_IPSUM = """
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur hendrerit tincidunt tincidunt. Fusce malesuada aliquam tortor in scelerisque. Fusce tempor auctor volutpat. Curabitur pellentesque ante mi, at eleifend ex sagittis congue. Curabitur feugiat, sem et imperdiet blandit, lacus metus tristique metus, eget porta nibh dolor quis sem. Curabitur lectus dui, auctor vel eleifend et, congue ac diam. Donec pretium, massa non posuere porttitor, nulla elit fringilla mauris, sed eleifend arcu velit sed magna. Pellentesque elementum, quam pellentesque pretium dignissim, ex ex sodales massa, non volutpat ligula dolor ac nunc. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Pellentesque dictum justo at felis rhoncus gravida.
|
||||
|
||||
Curabitur sit amet malesuada est. Aenean faucibus nisi eget mi accumsan, non lacinia dui commodo. Nam pretium efficitur ipsum. Curabitur placerat viverra porta. Praesent laoreet ex ultrices mauris commodo tristique. Donec pulvinar quam in mollis lacinia. Nunc id nulla urna. Suspendisse sodales volutpat ultrices. Suspendisse ornare pellentesque turpis, ut mattis libero dapibus a. Sed maximus convallis iaculis. Vivamus elementum sem varius, sodales est nec, lobortis nisl.
|
||||
|
||||
Nullam aliquet varius nisl eu lobortis. Pellentesque porta sapien libero, tincidunt viverra leo suscipit efficitur. Aliquam erat volutpat. Morbi dui massa, iaculis eu mattis ac, aliquam non eros. In id ligula vestibulum leo elementum consequat a vitae dui. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis id lectus justo. Aliquam congue velit sit amet interdum facilisis. Etiam varius massa id sapien vestibulum faucibus.
|
||||
|
||||
Pellentesque faucibus ornare massa, a rhoncus lacus maximus a. Ut nec eros volutpat arcu hendrerit cursus. Aenean luctus placerat tellus eget convallis. Nam aliquam eget justo non dapibus. Phasellus finibus ex ac laoreet consectetur. Nam tincidunt mattis condimentum. Vivamus non sapien interdum velit ornare tincidunt. Sed pharetra, purus dapibus bibendum fermentum, dolor est efficitur lacus, vel pharetra nisi lorem ut risus.
|
||||
|
||||
Nam in diam lobortis, porttitor libero quis, consequat lorem. Vivamus sagittis, mauris sit amet accumsan scelerisque, lectus orci malesuada nisi, eget commodo felis justo a leo. Vivamus ligula dolor, rhoncus ac ullamcorper ac, aliquet nec velit. Duis at nisl interdum diam gravida hendrerit semper auctor erat. Sed blandit sollicitudin leo, varius cursus lacus vehicula et. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer suscipit lacus sit amet nulla lobortis pellentesque.
|
||||
|
||||
Nullam pulvinar blandit est, in viverra ipsum aliquam nec. Morbi eget volutpat leo, quis sollicitudin nisl. Nam elit neque, sodales id hendrerit non, bibendum at elit. Integer dapibus risus quis malesuada iaculis. Sed in urna dictum, ornare tellus non, blandit orci. Integer risus elit, mollis pulvinar urna sit amet, interdum pharetra odio. Quisque nec mauris sit amet urna mattis lacinia. Donec at bibendum urna. Vestibulum mi leo, porta nec mauris non, dapibus rhoncus dui. Aliquam vitae ligula purus. Phasellus egestas lorem et pharetra fringilla. Cras luctus, elit sit amet ultrices aliquam, nisi urna dignissim neque, id viverra magna magna in lorem. Pellentesque dignissim malesuada leo non pretium. In hac habitasse platea dictumst. Suspendisse molestie, erat id fermentum maximus, neque sem maximus nisl, et tempus tellus nisl eget ligula. Praesent at tempus mauris.
|
||||
|
||||
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer eleifend tincidunt iaculis. Phasellus erat nunc, dictum vitae orci nec, venenatis pharetra ipsum. Cras pulvinar lectus in consectetur semper. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam eleifend libero et gravida euismod. Aliquam commodo orci et metus cursus, et volutpat risus ornare.
|
||||
|
||||
In nisi ante, blandit eu rutrum ac, interdum maximus turpis. Donec mollis neque eu sodales sollicitudin. Vestibulum vulputate rutrum mi nec vulputate. Suspendisse efficitur nulla imperdiet nunc venenatis condimentum. Sed sit amet ipsum erat. Cras ultrices orci sit amet ante semper, varius rutrum erat cursus. Quisque pretium tempus risus, et sagittis elit lobortis sit amet. In fringilla convallis tortor ut vehicula. Proin aliquet lectus eget massa eleifend sodales. Praesent ut metus convallis, viverra lacus sed, scelerisque sapien.
|
||||
|
||||
Etiam molestie ac nunc in aliquam. Mauris vulputate ligula sed arcu mollis faucibus. Curabitur sit amet nisl venenatis, commodo mi ac, luctus ex. Donec porttitor eget metus non tempus. Cras bibendum justo nec lectus rhoncus suscipit. Curabitur quis accumsan eros. Fusce id dui ut risus accumsan dapibus. Duis pharetra sem dictum dapibus ullamcorper.
|
||||
|
||||
Integer maximus congue ipsum, convallis lacinia augue interdum nec. Aenean maximus lacus felis, et aliquam lectus varius in. Etiam condimentum, enim eu consectetur gravida, nisi urna rhoncus odio, et sodales lectus est non massa. Duis eget ex et orci volutpat luctus. Sed porta dignissim sagittis. Nullam vel tempor ante. Ut ac magna eget sapien fermentum pretium vitae ut ex. Pellentesque vehicula nulla arcu, et vestibulum tellus cursus a. Praesent arcu neque, accumsan sit amet ultrices at, euismod id arcu. Ut quis dignissim elit. Ut et quam eu mauris hendrerit suscipit sed vel eros. Curabitur molestie ultricies massa, rhoncus interdum mi dignissim id. Vivamus consequat sapien quis enim facilisis consequat.
|
||||
|
||||
Mauris dapibus lacus arcu, ut luctus ex ullamcorper ac. Phasellus aliquet vitae lectus eget gravida. Duis bibendum eros nec eros interdum egestas. Vivamus vitae neque tellus. Maecenas rutrum ut lorem sed suscipit. Cras porta id augue a rhoncus. Pellentesque luctus eros quis risus molestie, at euismod dui elementum. Proin consectetur semper rutrum. Proin laoreet magna at dapibus consectetur. Quisque eu nunc at ipsum vulputate consequat.
|
||||
|
||||
Sed eleifend nec ipsum ac imperdiet. Nam scelerisque diam in est tristique, quis bibendum lacus laoreet. Ut varius pretium leo, a ornare turpis aliquet nec. Donec a leo ornare, porta tortor dictum, cursus urna. Aliquam et bibendum quam. Sed lobortis nisl nec magna malesuada finibus. Curabitur id nisi neque. Vestibulum mi lacus, semper quis molestie id, gravida id augue. Nam vel arcu sed tortor pharetra sollicitudin nec vel magna. Praesent vel nulla elementum, suscipit dolor a, accumsan turpis. Nullam ut turpis a nisi tristique porta. Duis sed sodales eros.
|
||||
|
||||
Proin faucibus eget risus ac varius. Suspendisse pellentesque tortor in tincidunt suscipit. Vivamus sit amet molestie dui, sagittis varius nisl. Pellentesque semper bibendum rutrum. Curabitur sollicitudin ac quam elementum blandit. Aliquam sagittis tristique dui quis pretium. Quisque vel metus neque. Nam non ex quam.
|
||||
|
||||
Aliquam sed accumsan tortor. Etiam varius augue in quam ultrices, sed tempor purus fringilla. In sit amet odio a ipsum viverra ornare. Pellentesque dignissim eros non felis ultricies euismod. Mauris elementum, lorem at dapibus imperdiet, nulla nisl laoreet lectus, et lacinia ligula enim ac nisl. Nullam non molestie libero, ut commodo urna. Suspendisse lorem elit, lacinia in tristique vitae, dapibus at erat.
|
||||
|
||||
Nam ligula tortor, consequat ac semper et, porta in diam. Integer mauris sem, suscipit vel tincidunt sed, egestas quis ligula. Praesent imperdiet, diam et mattis congue, quam turpis porta nulla, sed fringilla turpis sem ac nisl. Nam at purus turpis. Etiam nibh magna, congue vel metus et, suscipit placerat ligula. Praesent eget rutrum orci. Nulla facilisi. Ut pretium tellus quis nunc porttitor pharetra. Praesent ultrices hendrerit urna a tincidunt. Nam sed ullamcorper tortor. Aliquam eros erat, volutpat ut magna a, porttitor aliquet nisl.
|
||||
|
||||
Aliquam erat volutpat. Nam tincidunt ligula et sollicitudin commodo. Proin viverra pretium finibus. Proin tristique ipsum at ligula elementum eleifend. Praesent sem ipsum, venenatis eget est eu, eleifend interdum nisl. Duis lorem libero, imperdiet sed leo sit amet, cursus pharetra metus. Nunc varius nisl at enim interdum iaculis. Mauris quis velit lectus. Suspendisse nec lectus sit amet felis ultricies vestibulum id et enim. Vivamus congue massa a lacus ullamcorper auctor. Quisque at varius tellus. Maecenas sollicitudin est vitae odio aliquet, eget condimentum ante aliquam.
|
||||
|
||||
Nullam id placerat ex. Fusce volutpat suscipit nisl faucibus interdum. Nam a neque lacus. Quisque et placerat felis, quis porta ligula. Nunc vitae velit eget turpis condimentum blandit at sit amet urna. Nulla at sodales neque, vel condimentum felis. Proin dignissim est eget mattis condimentum. Duis tincidunt sem arcu, et aliquam tellus vestibulum at. Maecenas nec libero et turpis convallis accumsan eu vitae dui.
|
||||
|
||||
Morbi imperdiet pellentesque laoreet. Aliquam eu ex ut purus pretium fringilla sed vitae nisi. Donec sapien quam, ultricies at dignissim ut, suscipit non mauris. Mauris vitae lobortis velit. Phasellus justo ante, tempus id hendrerit quis, pulvinar sed eros. Morbi et justo vel nunc rhoncus feugiat ac vel sem. Mauris ac sollicitudin elit. Aenean finibus, enim quis venenatis condimentum, mi purus pulvinar urna, in dignissim est ligula at augue. Etiam eros lectus, efficitur eu tincidunt id, dignissim a enim. Quisque tempor nec ligula nec placerat.
|
||||
|
||||
Aenean eu imperdiet neque. Nam sagittis erat ex, quis consequat tortor malesuada et. Maecenas laoreet auctor euismod. Donec nec nunc ut nulla porta facilisis at ut odio. Phasellus mattis rutrum ex vitae dignissim. Nulla quis tempus enim. Duis nulla sem, interdum ac erat scelerisque, luctus eleifend justo. Etiam quis justo vitae ante dapibus euismod. Duis rutrum faucibus tellus nec finibus. Pellentesque quam neque, efficitur eget aliquet in, rhoncus id ipsum. Fusce euismod neque erat, interdum iaculis lorem venenatis nec. Proin pretium enim sed ipsum vestibulum lobortis. Aliquam id vehicula lacus.
|
||||
|
||||
Maecenas malesuada enim eu sapien semper, ac viverra magna lobortis. Morbi eleifend massa hendrerit ipsum cursus tempus. Nam tempus sem ac dui mollis, nec molestie leo imperdiet. Sed nibh est, aliquet ut tempus eu, finibus vitae ante. Pellentesque vestibulum posuere mauris non sodales. Aenean elit augue, cursus ac dapibus nec, accumsan sit amet dolor. Nunc magna odio, pulvinar id imperdiet id, congue non est. Suspendisse potenti. Aenean vulputate felis enim, sit amet mattis est imperdiet in. Quisque et nisl sem. Cras pretium felis faucibus ante ornare dapibus. Donec tincidunt quis lorem facilisis gravida.
|
||||
|
||||
Nunc tempor fringilla justo, vitae fermentum justo vulputate lacinia. Suspendisse feugiat gravida quam sit amet bibendum. Phasellus aliquam, est quis sodales laoreet, tellus massa lobortis urna, sit amet suscipit arcu risus eu ligula. Pellentesque in eros lorem. In hac habitasse platea dictumst. Suspendisse dignissim justo at ante tincidunt tincidunt. Nulla eget efficitur odio, sed ullamcorper sapien. Suspendisse nulla nisl, tincidunt vitae laoreet vel, fringilla sed velit. Quisque sagittis nisl sit amet semper lobortis. Mauris a semper eros, nec finibus neque. Nulla luctus dui urna.
|
||||
|
||||
Pellentesque sit amet tortor in massa blandit faucibus et in ligula. Vestibulum porta justo luctus condimentum posuere. Nulla aliquam hendrerit dui, consectetur finibus felis dignissim vitae. Vivamus aliquet pharetra lectus eu maximus. Fusce condimentum sapien vitae ullamcorper suscipit. Suspendisse vehicula ante in dapibus cursus. Praesent vitae quam elit. Integer non lorem ut tortor ultricies tincidunt. Vivamus vitae neque at leo mollis suscipit. Nulla sem diam, laoreet in leo sed, rutrum vulputate orci. Proin pharetra tempor nisi ut faucibus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse tincidunt massa a justo interdum, ut varius tellus volutpat.
|
||||
|
||||
Vestibulum tempor et tellus elementum semper. Curabitur mollis leo id nibh semper, vitae interdum sapien lacinia. Etiam cursus molestie sapien, quis molestie neque gravida sed. Quisque dictum ullamcorper aliquet. Praesent ac blandit enim. Donec ipsum turpis, mollis eget nibh eget, sodales euismod nulla. Nulla et dui nunc. Aliquam viverra velit in sapien commodo, ut dapibus metus commodo. Quisque vel velit accumsan, fringilla massa quis, suscipit mauris. Vivamus rhoncus sit amet orci sed volutpat. Curabitur ac quam non ante vehicula sodales. Suspendisse nec elit sed tortor tincidunt efficitur. Vestibulum tristique ultricies risus id finibus. Maecenas vehicula mattis dignissim. Duis ullamcorper non tellus sed varius. Nam lobortis ex et ultrices viverra.
|
||||
|
||||
Nam ornare nisi lorem, pellentesque lobortis leo facilisis ac. Praesent justo ante, aliquam non aliquam eu, gravida rutrum dolor. Fusce sagittis neque eget posuere egestas. Mauris volutpat accumsan maximus. In facilisis eleifend lectus at facilisis. Duis nec rutrum risus, at faucibus nisi. Suspendisse sem eros, tincidunt a nunc sed, semper fermentum sem. Praesent maximus, nulla et tincidunt maximus, nisi risus lobortis metus, et facilisis libero ex a est. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam lacinia lectus vel congue sodales. Cras gravida lobortis porttitor. Aliquam sit amet orci blandit, tempor velit ac, pretium sem. Phasellus vulputate lacinia est. Phasellus eu elit ante. Vivamus vestibulum congue quam, in scelerisque dolor vulputate quis.
|
||||
|
||||
Aliquam vitae fermentum urna, vel semper urna. Etiam ipsum sem, tristique lacinia eros ac, volutpat pellentesque lorem. Vestibulum suscipit viverra tortor et consectetur. Proin condimentum et leo a lacinia. Ut vestibulum mollis nibh, non facilisis arcu. Sed bibendum justo mauris, sed scelerisque est hendrerit nec. Sed vitae congue dui, nec mollis velit.
|
||||
|
||||
Nam tellus velit, blandit eget elementum eget, luctus ac purus. Quisque vitae facilisis risus. Mauris volutpat, quam sed congue egestas, enim lacus ultrices urna, et blandit velit nibh id felis. Vivamus suscipit sem nec ex iaculis tempus. Quisque a est lectus. Etiam orci sem, tempor sed aliquam id, sollicitudin facilisis libero. Sed aliquet laoreet enim id posuere. Mauris non velit sed lacus tempor eleifend non ac diam.
|
||||
|
||||
Aliquam sed euismod leo, nec malesuada lectus. Aenean aliquam, urna vitae ornare vehicula, massa lectus congue tortor, eget rhoncus lectus nibh ac magna. Donec porta vitae dolor eu egestas. Nunc aliquam malesuada dapibus. Ut pellentesque faucibus tellus, et sollicitudin ligula venenatis ac. Vivamus tellus libero, vulputate a lorem sed, placerat varius urna. Pellentesque ac imperdiet mi, pharetra luctus arcu. Aliquam erat volutpat.
|
||||
|
||||
Fusce semper luctus dictum. Vestibulum eu elit leo. Aliquam cursus ullamcorper sem id auctor. Mauris efficitur diam justo, sit amet egestas ligula fermentum eu. Proin luctus lectus at odio consectetur sodales. Suspendisse posuere ligula eros, vitae malesuada velit viverra vitae. Donec euismod libero vitae mauris viverra, id convallis urna vestibulum. In hac habitasse platea dictumst. Suspendisse malesuada porttitor ante, nec lobortis nibh efficitur ac. Cras quis vulputate ipsum. Nullam diam quam, hendrerit eu mi sit amet, pharetra condimentum odio. Quisque ac consequat ipsum. Proin id velit convallis, pellentesque ligula ut, varius massa.
|
||||
|
||||
Maecenas commodo consequat tortor, bibendum aliquet turpis rhoncus et. Nunc ultricies eu leo nec feugiat. Praesent nec tellus nec nisl maximus cursus facilisis ut lorem. Cras rhoncus auctor lectus sed condimentum. In ullamcorper tellus nec enim congue, in pretium risus feugiat. Etiam tortor lectus, aliquet sit amet arcu vel, commodo eleifend mi. Nulla malesuada turpis vel dolor dapibus porttitor. Maecenas porta urna non nunc maximus, ut convallis nisi interdum. Quisque lectus urna, feugiat rhoncus commodo sodales, euismod at urna. Ut odio lectus, venenatis eget urna a, porta maximus tellus. Donec in iaculis mi. Quisque vestibulum magna nisi, nec tincidunt justo elementum sed. Aenean in diam orci.
|
||||
|
||||
Ut placerat mollis justo, id ornare enim ultrices a. Morbi imperdiet vitae mi vitae sodales. Suspendisse potenti. Vivamus ac scelerisque ipsum. Aenean vitae dictum felis, vitae facilisis libero. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vestibulum at porttitor ex, quis vestibulum ante. Praesent gravida nunc at tempus tristique.
|
||||
|
||||
Vivamus rutrum tincidunt elit, et feugiat neque tincidunt sit amet. Donec in dui at odio viverra efficitur. Sed at diam molestie, lobortis nisi ut, sodales lectus. Duis lorem erat, fringilla a ipsum non, finibus mollis eros. Quisque tempor erat sed iaculis imperdiet. Morbi ornare tellus a finibus mattis. Nulla id leo suscipit, feugiat nunc id, posuere erat. Aenean mollis semper ipsum vitae gravida. In facilisis magna enim, eget vestibulum erat consequat id. Praesent non rutrum nisi.
|
||||
|
||||
Nulla blandit metus ut ante volutpat dignissim. Proin est nunc, faucibus vel magna vitae, maximus auctor nisl. Sed quis mauris leo. Cras sed risus ipsum. Praesent tempus mauris ut quam dictum elementum. Ut vitae aliquam nisi, ut bibendum metus. Phasellus ullamcorper arcu commodo lacus consectetur, aliquam pellentesque nibh gravida. Etiam vel rutrum elit. Donec massa lacus, pellentesque ut facilisis non, malesuada eu enim. Donec commodo malesuada rhoncus. Integer rutrum nibh sed lacinia euismod. Cras fermentum nec felis ac scelerisque. Nam accumsan tristique pellentesque. Duis et venenatis purus. Vestibulum rutrum massa id mauris tincidunt, dignissim efficitur libero auctor. Donec pellentesque ornare blandit.
|
||||
|
||||
Donec vulputate viverra mi vel hendrerit. Nam mattis sed est id gravida. Aliquam condimentum porta tellus ut semper. Vivamus vitae velit laoreet, lacinia leo in, rhoncus leo. Nunc a turpis consequat, iaculis neque non, tristique nulla. Sed et fermentum magna. Nulla id cursus dolor. Integer in ligula vitae nunc posuere tempor et vitae ligula. Proin vel nibh vel ex facilisis convallis. Nullam blandit arcu ac mi dictum, at mollis turpis dictum. Praesent non eleifend magna. Etiam lacinia, est nec hendrerit tincidunt, est nulla maximus tortor, malesuada tempus dui orci ac ante. Curabitur dolor quam, viverra nec ipsum id, pulvinar suscipit arcu.
|
||||
|
||||
Nunc posuere id est at congue. Donec id bibendum augue. Nam fermentum tempus tincidunt. Maecenas egestas magna vel ligula pellentesque laoreet. Praesent finibus neque eros, in ultricies odio tempus vel. Sed facilisis mauris massa, id tempor metus vulputate eu. Vivamus tincidunt scelerisque viverra. Praesent fermentum felis eu dapibus suscipit. Sed aliquet mauris ac libero egestas rhoncus.
|
||||
|
||||
In et leo efficitur, porta arcu sed, pellentesque nunc. Aliquam ullamcorper ullamcorper mi. Quisque id ante ac nulla bibendum cursus. Fusce eu malesuada erat. Fusce in sollicitudin libero. Donec enim diam, varius vitae odio vitae, accumsan finibus ligula. Nullam finibus luctus mi, ut fringilla enim luctus sed. Etiam iaculis egestas rhoncus. Donec lectus dui, consectetur ac felis vel, aliquam sodales odio. Nullam vitae tincidunt est, sit amet maximus urna.
|
||||
|
||||
Morbi sodales molestie ultrices. Suspendisse potenti. Nullam eu sapien lectus. Nam eget sollicitudin augue, vel dictum neque. Nulla vel nisi eget elit sodales eleifend. Phasellus pharetra gravida libero, iaculis tempus ipsum faucibus in. Vestibulum quis bibendum mi. Duis eget blandit augue. Quisque condimentum iaculis metus, quis gravida lectus tempor sit amet. Vivamus at lorem augue. Fusce sit amet mauris maximus, consequat tortor condimentum, egestas ante.
|
||||
|
||||
Ut tincidunt elit eget lectus tincidunt consequat id nec nisi. Vivamus feugiat, dui eu semper luctus, nibh lacus dictum lacus, in tristique purus nisl id mi. Duis non elementum nisi. Pellentesque quis quam id leo viverra luctus. Mauris eu vehicula ex. In vel fermentum odio, sit amet mollis justo. Pellentesque sit amet ligula vitae dolor tempor lobortis eget eget odio. Nunc id ultricies mi. Cras at sagittis lacus. Ut vehicula pellentesque dapibus. Mauris finibus augue sed mauris placerat, ultricies finibus tortor pretium. Maecenas a enim vel mi faucibus accumsan vel in dolor. Donec hendrerit, augue vel suscipit lacinia, nisi arcu auctor dolor, nec interdum lectus orci at.
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def index(request):
|
||||
return render(request, 'Blog/index.html', {})
|
||||
recent_blog = Posts.objects.order_by('date_time')[:3]
|
||||
template = loader.get_template('Blog/index.html')
|
||||
context = {
|
||||
'recent_blog': recent_blog
|
||||
}
|
||||
return HttpResponse(template.render(context, request))
|
||||
|
||||
def techTips(request):
|
||||
return render(request, 'Blog/techTips.html', {})
|
||||
|
||||
def bio(request):
|
||||
return render(request, 'Blog/bio.html', {})
|
||||
|
||||
def archive(request):
|
||||
blogs = Posts.objects.order_by('date_time')
|
||||
template = loader.get_template('Blog/archive.html')
|
||||
context = {
|
||||
'blogs': blogs,
|
||||
}
|
||||
return HttpResponse(template.render(context, request))
|
||||
|
||||
def detail(request, post_id):
|
||||
current_blog = Posts.objects.get(id=post_id)
|
||||
template = loader.get_template('Blog/detail.html')
|
||||
context = {
|
||||
'current_blog': current_blog,
|
||||
}
|
||||
return HttpResponse(template.render(context, request))
|
||||
|
||||
def comment(request, post_id):
|
||||
current_blog = Posts.objects.get(pk=post_id)
|
||||
current_comment = Comments()
|
||||
current_comment.date_time = timezone.now()
|
||||
current_comment.post_text = request.POST['post_text']
|
||||
current_comment.user_nickname = request.POST['user_nickname']
|
||||
current_comment.user_email = request.POST['user_email']
|
||||
current_comment.post = current_blog
|
||||
current_comment.save()
|
||||
return HttpResponseRedirect(reverse('detail', args=(current_blog.id,)))
|
||||
|
||||
def delete_db(request):
|
||||
Posts.objects.all().delete()
|
||||
for b in range(6):
|
||||
sb = str(b)
|
||||
blog = Posts(title_input = "Post #" + sb, user_name = "Russian Bot #" + sb, post_text = LOREM_IPSUM[:randint(300, len(LOREM_IPSUM))], date_time = timezone.now())
|
||||
blog.save()
|
||||
for c in range(b+1):
|
||||
sc = str(c)
|
||||
blog.comments_set.create(user_nickname = "Anonymous #" + sc, user_email = "r2d2" + sc + "r2d2" + sc +
|
||||
"@nothing.com", post_text = "We are legion.We don't forgive.We don't forget.Expect us", date_time = timezone.now())
|
||||
return HttpResponseRedirect(reverse('index', args=()))
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user