final version proposal
This commit is contained in:
parent
acfe61f169
commit
24895441b9
152 changed files with 4169 additions and 717 deletions
0
articles/__init__.py
Normal file
0
articles/__init__.py
Normal file
4
articles/apps.py
Normal file
4
articles/apps.py
Normal file
|
@ -0,0 +1,4 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
class ArticlesConfig(AppConfig):
|
||||
name = 'articles'
|
7
articles/forms.py
Normal file
7
articles/forms.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
from articles.models import *
|
||||
from django import forms
|
||||
|
||||
class ArticleForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Article
|
||||
fields = ['title', 'subtitle', 'thumbnail', 'text']
|
24
articles/models.py
Normal file
24
articles/models.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
# Create your models here.
|
||||
class Article(models.Model):
|
||||
owner = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
date_added = models.DateTimeField(auto_now_add=True)
|
||||
date_updated = models.DateField(null=True, blank=True)
|
||||
date_published = models.DateField(null=True, blank=True)
|
||||
author = models.CharField(max_length=50)
|
||||
status = models.CharField(max_length=20)
|
||||
review = models.TextField(null=True, blank=True)
|
||||
url = models.CharField(max_length=200)
|
||||
#formular
|
||||
title = models.CharField(max_length=150)
|
||||
subtitle = models.CharField(max_length=100)
|
||||
thumbnail = models.CharField(max_length=100)
|
||||
text = models.TextField()
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = 'articles'
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
115
articles/templates/articles/article.html
Normal file
115
articles/templates/articles/article.html
Normal file
|
@ -0,0 +1,115 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>{{ article.title }}</title>
|
||||
|
||||
<style>
|
||||
/*--------------------------------------------------------------
|
||||
# Hero Section
|
||||
--------------------------------------------------------------*/
|
||||
#hero {
|
||||
width: 100%;
|
||||
height: 30vh;
|
||||
background: url("../../../static/img/articles/{{ article.thumbnail | safe }}") center center;
|
||||
background-size: cover;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: 0;
|
||||
margin-bottom: -200px;
|
||||
}
|
||||
</style>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
{% load static %}
|
||||
|
||||
<!-- ======= Hero Section ======= -->
|
||||
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
|
||||
</section>
|
||||
<!-- End Hero -->
|
||||
|
||||
<!-- ======= News Section ======= -->
|
||||
<section id="news" class="news">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xl-1 col-lg-6 icon-boxes">
|
||||
</div>
|
||||
<div class="col-xl-10 col-lg-6 icon-boxes">
|
||||
{% if article.status == 'Pending approval' %}
|
||||
<div class="alert alert-warning">
|
||||
<strong><center>Pending approval</center></strong>
|
||||
</div>
|
||||
{% elif article.status == 'Reviewed' %}
|
||||
<div class="alert alert-warning">
|
||||
<strong><center>Reviewed: {{ article.review }}</center></strong>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="icon-box">
|
||||
{% if article.status == 'Published' %}
|
||||
<h4>Published by {{ article.owner }}, {{ article.date_published }}</h4>
|
||||
{% else %}
|
||||
<h4>
|
||||
Created {{ article.date_added }}<br>
|
||||
Updated {{ article.date_updated }}<br>
|
||||
<a href="{% url 'articles:edit_article' article.id %}">Edit</a> -
|
||||
<a data-toggle="modal" href="#" data-target="#id_Modal_delete{{ article.id }}">Delete</a>
|
||||
</h4>
|
||||
{% endif %}
|
||||
<h3>{{ article.title }}</h3>
|
||||
<h4>{{ article.subtitle }}</h4>
|
||||
<div>
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https://moneroj.net/article/{{ article.url }}" target="_blank">
|
||||
<i class="bx bxl-facebook-circle" style="color: #3b5998; font-size: 30px;"></i>
|
||||
</a>
|
||||
<a href="https://twitter.com/share?title={{ article.title }}&url=https://moneroj.net/article/{{ article.url }}" target="_blank">
|
||||
<i class="bx bxl-twitter" style="color: #00acee; font-size: 30px;"></i>
|
||||
</a>
|
||||
<a href="https://reddit.com/submit?title={{ article.title }}&url=https://moneroj.net/article/{{ article.url }}" target="_blank">
|
||||
<i class="bx bxl-reddit" style="color:#ee4056; font-size: 30px;"></i>
|
||||
</a>
|
||||
<a href="https://web.whatsapp.com/send?text=https://moneroj.net/article/{{ article.url }}" target="_blank">
|
||||
<i class="bx bxl-whatsapp" style="color:#007d17; font-size: 30px;"></i>
|
||||
</a>
|
||||
<a href="mailto:?subject={{ article.title }}&body=https://moneroj.net/article/{{ article.url }}" target="_blank">
|
||||
<i class="bx bx-mail-send" style="color:#303030; font-size: 30px;"></i>
|
||||
</a>
|
||||
</div><br>
|
||||
<p>{{ article.text | safe}}</p>
|
||||
<br>
|
||||
<!-- Basic Share Links -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-1 col-lg-6 icon-boxes">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<!-- End News Section -->
|
||||
</main>
|
||||
<br>
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="id_Modal_delete{{ article.id }}" tabindex="-1" role="dialog" aria-labelledby="Modal_delete{{ article.id }}" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="Modal_delete{{ article.id }}">Delete article</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Cencel">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Are you sure you want to block and delete this article?<br>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
||||
<a class="btn btn-danger" href="{% url 'articles:delete_article' article.id %}" role="button">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Fim do Modal -->
|
||||
{% endblock content %}
|
248
articles/templates/articles/articles.html
Normal file
248
articles/templates/articles/articles.html
Normal file
|
@ -0,0 +1,248 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>Moneroj.net - Articles</title>
|
||||
|
||||
<style>
|
||||
.login_page {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: #313030;
|
||||
max-width: 100%;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 20px
|
||||
}
|
||||
|
||||
.form input {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
margin: 0 0 10px;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
border-radius: 5px
|
||||
}
|
||||
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.form button:hover,
|
||||
.form button:active {
|
||||
background: #db3b13
|
||||
}
|
||||
|
||||
.form .message {
|
||||
margin: 10px 0 0;
|
||||
color: rgb(255, 255, 255);
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.form .message a {
|
||||
color: #ff4d21;
|
||||
text-decoration: none
|
||||
}
|
||||
.link-grey a {
|
||||
color: #313030;
|
||||
text-decoration: none
|
||||
}
|
||||
.link-grey a:hover {
|
||||
color: #4f4f4f;
|
||||
text-decoration: none
|
||||
}
|
||||
.link-white a {
|
||||
color: #ffffff;
|
||||
text-decoration: none
|
||||
}
|
||||
.link-white a:hover {
|
||||
color: #ececec;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.form .register_form {
|
||||
display: none
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------
|
||||
# Hero Section
|
||||
--------------------------------------------------------------*/
|
||||
#hero {
|
||||
width: 100%;
|
||||
height: 50vh;
|
||||
background: url("../../../static/img/articles/{{ thumbnail | safe }}") center center;
|
||||
background-size: cover;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: 0;
|
||||
margin-bottom: -100px;
|
||||
}
|
||||
</style>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
{% load static %}
|
||||
|
||||
<!-- ======= Hero Section ======= -->
|
||||
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
|
||||
</section>
|
||||
<!-- End Hero -->
|
||||
|
||||
<main id="main">
|
||||
|
||||
<!-- ======= Articles Section ======= -->
|
||||
<section id="articles" class="articles">
|
||||
<div class="container">
|
||||
{% for article in articles %}
|
||||
|
||||
{% if article.count == 0 %}
|
||||
<div class="row">
|
||||
<div class="col-xl-8 col-lg-5">
|
||||
<div class="content">
|
||||
<h3 class="link-white"><a href="../article/{{ article.url }}">{{ article.title }}</a></h3>
|
||||
<p class="link-white" style="text-align: justify;">
|
||||
<b><a href="../article/{{ article.url }}">Article by {{ article.owner.username }}, {{ article.date_published }}</a></b><br><br>{{ article.text | safe }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-4 d-flex flex-column justify-content-center">
|
||||
<form class="needs-validation" action="{% url 'articles:articles' %}" method='POST' novalidate>
|
||||
{% csrf_token %}
|
||||
{% if message %}
|
||||
{% if message == 'Subscription successful!' %}
|
||||
<div class="alert alert-success">
|
||||
<strong><center>{{ message }}</center></strong>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-danger">
|
||||
<strong><center>{{ message }}</center></strong>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div class="form">
|
||||
<h1><i class="bx bx-mail-send" style="color: #ffffff"></i></h1>
|
||||
<h3 style="color: #ffffff">Subscribe</h3><br>
|
||||
<input type="text" name="email" placeholder="E-mail">
|
||||
<div class="invalid-tooltip">
|
||||
This field must be filled
|
||||
</div>
|
||||
<button type="submit">Subscribe</button>
|
||||
<input type="hidden" name="next" value="{% url 'articles:articles' %}">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
|
||||
{% elif article.count < 7 %}
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<a href="../article/{{ article.url }}"><img class="card-img-top" src="{% static article.thumbnail %}"></a>
|
||||
<div class="card-body">
|
||||
<h5><a href="../article/{{ article.url }}">{{ article.title }}</a></h5>
|
||||
<p>{{ article.text | safe }}</p>
|
||||
<h6><b>Article by {{ article.owner.username }}, {{ article.date_published }}</b></h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% elif article.count == 7 %}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xl-4 d-flex flex-column justify-content-center">
|
||||
<form class="needs-validation" action="{% url 'articles:articles' %}" method='POST' novalidate>
|
||||
{% csrf_token %}
|
||||
{% if message %}
|
||||
{% if message == 'Subscription successful!' %}
|
||||
<div class="alert alert-success">
|
||||
<strong><center>{{ message }}</center></strong>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-danger">
|
||||
<strong><center>{{ message }}</center></strong>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div class="form">
|
||||
<h1><i class="bx bx-mail-send" style="color: #ffffff"></i></h1>
|
||||
<h3 style="color: #ffffff">Subscribe</h3><br>
|
||||
<input type="text" name="email" placeholder="E-mail">
|
||||
<div class="invalid-tooltip">
|
||||
This field must be filled
|
||||
</div>
|
||||
<button type="submit">Subscribe</button>
|
||||
<input type="hidden" name="next" value="{% url 'articles:articles' %}">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-xl-8 col-lg-5">
|
||||
<div class="content">
|
||||
<h3 class="link-white"><a href="../article/{{ article.url }}">{{ article.title }}</a></h3>
|
||||
<p class="link-white" style="text-align: justify;">
|
||||
<b><a href="../article/{{ article.url }}">Article by {{ article.owner.username }}, {{ article.date_published }}</a></b><br><br>{{ article.text | safe }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
|
||||
{% elif article.count > 7 %}
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<a href="../article/{{ article.url }}"><img class="card-img-top" src="{% static article.thumbnail %}"></a>
|
||||
<div class="card-body">
|
||||
<h5><a href="../article/{{ article.url }}">{{ article.title }}</a></h5>
|
||||
<p>{{ article.text | safe }}</p>
|
||||
<h6><b>Article by {{ article.owner.username }}, {{ article.date_published }}</b></h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="icon-boxes col-xl-12">
|
||||
<div class="card"><br>
|
||||
<p>Images were taken from <a href="https://monero.graphics/" target="_blank">https://monero.graphics/</a> under <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0</a> license, check their work and donate them some Moneroj.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- End Articles Section -->
|
||||
|
||||
</main>
|
||||
<!-- End #main -->
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
166
articles/templates/articles/edit_article.html
Normal file
166
articles/templates/articles/edit_article.html
Normal file
|
@ -0,0 +1,166 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>Moneroj.net - Edit Article</title>
|
||||
|
||||
<style>
|
||||
.login_page {
|
||||
margin: 0 auto 25px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: #313030;
|
||||
max-width: 100%;
|
||||
margin: 0 auto 25px;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 20px
|
||||
}
|
||||
|
||||
.form input {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
margin: 0 0 10px;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
border-radius: 5px
|
||||
}
|
||||
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.form button:hover,
|
||||
.form button:active {
|
||||
background: #db3b13
|
||||
}
|
||||
|
||||
.form .message {
|
||||
margin: 10px 0 0;
|
||||
color: rgb(255, 255, 255);
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.form .message a {
|
||||
color: #ff4d21;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.form .register_form {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
<br><br><br>
|
||||
<div class="container">
|
||||
|
||||
<h2>Write a new article:</h2><br>
|
||||
<form class="needs-validation" action="{% url 'articles:edit_article' article.id %}" method='POST' novalidate>
|
||||
{% csrf_token %}
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label for="title">Title:</label>
|
||||
<input type="text" class="form-control" name="title" id="id_title" value="{{ article.title }}" required>
|
||||
<div class="valid-tooltip">
|
||||
OK
|
||||
</div>
|
||||
<div class="invalid-tooltip">
|
||||
This field is required
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label for="subtitle">Subtitle (up to five keywords):</label>
|
||||
<input type="text" class="form-control" name="subtitle" id="id_subtitle" value="{{ article.subtitle }}" required>
|
||||
<div class="valid-tooltip">
|
||||
OK
|
||||
</div>
|
||||
<div class="invalid-tooltip">
|
||||
This field is required
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label for="thumbnail">Thumbnail image <a href="{% url 'articles:images' %}" target="_blank">(check it out)</a></label>
|
||||
<select class="browser-default custom-select" name="thumbnail" id="id_thumbnail" required>
|
||||
<option value="{{ article.thumbnail }}" selected>{{ article.thumbnail }}</option>
|
||||
<option value="price-action-400x300.png">price-action</option>
|
||||
<option value="stats-400x300.png">stats</option>
|
||||
<option value="monero-cat-untraceable-400x300.png">monero-cat-untraceable</option>
|
||||
<option value="monero-geometric-logo-400x300.png">monero-geometric-logo</option>
|
||||
<option value="monero-is-the-best-regardless-sticker-400x300.png">monero-is-the-best-regardless-sticker</option>
|
||||
<option value="monero-mining-4-privacy-400x300.png">monero-mining-4-privacy</option>
|
||||
<option value="monero-support-your-local-cypherpunk-400x300.png">monero-support-your-local-cypherpunk</option>
|
||||
<option value="monero-the-corrupt-fear-us-400x300.png">monero-the-corrupt-fear-us</option>
|
||||
<option value="monero-trace-400x300.png">monero-trace</option>
|
||||
<option value="monero-will-survive-tyranny-sticker-400x300.png">monero-will-survive-tyranny-sticker</option>
|
||||
<option value="monero-you-need-no-portfolio-400x300.png">monero-you-need-no-portfolio</option>
|
||||
<option value="private-by-default-400x300.png">private-by-default</option>
|
||||
<option value="private-electronic-money-400x300.png">private-electronic-money</option>
|
||||
<option value="ussse-monero-400x300.png">ussse-monero</option>
|
||||
<option value="why-speculate-400x300.png">why-speculate</option>
|
||||
</select>
|
||||
<div class="valid-tooltip">
|
||||
OK
|
||||
</div>
|
||||
<div class="invalid-tooltip">
|
||||
Preencha esse campo
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label for="text">Article:</label>
|
||||
<textarea type="text" rows="10" cols="50" class="form-control" name="text" id="id_text" required>{{ article.text }}</textarea>
|
||||
<div class="valid-tooltip">
|
||||
OK
|
||||
</div>
|
||||
<div class="invalid-tooltip">
|
||||
This field is required
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-md-2 mb-3">
|
||||
<label for="text">Save:</label>
|
||||
<button class="btn btn-primary" type="submit">Submit for approval</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<br><br><br>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
162
articles/templates/articles/images.html
Normal file
162
articles/templates/articles/images.html
Normal file
|
@ -0,0 +1,162 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>Moneroj.net - Choose your image</title>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
|
||||
{% load static %}
|
||||
<!-- ======= Articles Section ======= -->
|
||||
<section id="articles" class="articles">
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-cat-untraceable-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-cat-untraceable</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-geometric-logo-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-geometric-logo</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-is-the-best-regardless-sticker-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-is-the-best-regardless-sticker</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-mining-4-privacy-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-mining-4-privacy</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-support-your-local-cypherpunk-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-support-your-local-cypherpunk</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-the-corrupt-fear-us-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-the-corrupt-fear-us</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-trace-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-trace</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-will-survive-tyranny-sticker-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-will-survive-tyranny-sticker</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/monero-you-need-no-portfolio-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>monero-you-need-no-portfolio</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/price-action-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>price-action</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/private-by-default-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>private-by-default</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/private-electronic-money-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>private-electronic-money</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/stats-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>stats</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/ussse-monero-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>ussse-monero</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icon-boxes col-xl-4">
|
||||
<div class="card">
|
||||
<img class="card-img-top" src="{% static 'img/articles/why-speculate-400x300.png' %}">
|
||||
<div class="card-body">
|
||||
<p>why-speculate</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
141
articles/templates/articles/new_article.html
Normal file
141
articles/templates/articles/new_article.html
Normal file
|
@ -0,0 +1,141 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>Moneroj.net - New Article</title>
|
||||
|
||||
<style>
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
.form button:hover {
|
||||
background: #d53b14;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
<br><br><br>
|
||||
<div class="container">
|
||||
|
||||
<h2>Write a new article:</h2><br>
|
||||
<form class="needs-validation form" action="{% url 'articles:new_article' %}" method='POST' novalidate>
|
||||
{% csrf_token %}
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label for="title">Title:</label>
|
||||
<input type="text" class="form-control" name="title" id="id_title" placeholder="Example: Check out new Monero usage and stats" required>
|
||||
<div class="valid-tooltip">
|
||||
OK
|
||||
</div>
|
||||
<div class="invalid-tooltip">
|
||||
This field is required
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label for="subtitle">Subtitle (up to five keywords):</label>
|
||||
<input type="text" class="form-control" name="subtitle" id="id_subtitle" placeholder="Example: Why privacy matters" required>
|
||||
<div class="valid-tooltip">
|
||||
OK
|
||||
</div>
|
||||
<div class="invalid-tooltip">
|
||||
This field is required
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label for="thumbnail">Thumbnail image <a href="{% url 'articles:images' %}" target="_blank">(check it out)</a></label>
|
||||
<select class="browser-default custom-select" name="thumbnail" id="id_thumbnail" required>
|
||||
<option selected>Select one thumbnail option</option>
|
||||
<option value="price-action-400x300.png">price-action</option>
|
||||
<option value="stats-400x300.png">stats</option>
|
||||
<option value="monero-cat-untraceable-400x300.png">monero-cat-untraceable</option>
|
||||
<option value="monero-geometric-logo-400x300.png">monero-geometric-logo</option>
|
||||
<option value="monero-is-the-best-regardless-sticker-400x300.png">monero-is-the-best-regardless-sticker</option>
|
||||
<option value="monero-mining-4-privacy-400x300.png">monero-mining-4-privacy</option>
|
||||
<option value="monero-support-your-local-cypherpunk-400x300.png">monero-support-your-local-cypherpunk</option>
|
||||
<option value="monero-the-corrupt-fear-us-400x300.png">monero-the-corrupt-fear-us</option>
|
||||
<option value="monero-trace-400x300.png">monero-trace</option>
|
||||
<option value="monero-will-survive-tyranny-sticker-400x300.png">monero-will-survive-tyranny-sticker</option>
|
||||
<option value="monero-you-need-no-portfolio-400x300.png">monero-you-need-no-portfolio</option>
|
||||
<option value="private-by-default-400x300.png">private-by-default</option>
|
||||
<option value="private-electronic-money-400x300.png">private-electronic-money</option>
|
||||
<option value="ussse-monero-400x300.png">ussse-monero</option>
|
||||
<option value="why-speculate-400x300.png">why-speculate</option>
|
||||
</select>
|
||||
<div class="valid-tooltip">
|
||||
OK
|
||||
</div>
|
||||
<div class="invalid-tooltip">
|
||||
Preencha esse campo
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label for="text">Article:</label>
|
||||
<textarea type="text" rows="10" cols="50" class="form-control" name="text" id="id_text" placeholder="Write here the article, the system accepts HTML formatting such as <p></p> for paragraphs, <br> for line breaks, and so on." required></textarea>
|
||||
<div class="valid-tooltip">
|
||||
OK
|
||||
</div>
|
||||
<div class="invalid-tooltip">
|
||||
This field is required
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-md-2 mb-3">
|
||||
<label for="text">Save:</label>
|
||||
<button class="" type="submit">Submit for approval</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br><br>
|
||||
<h2>Tips for a better article:</h2><br>
|
||||
<p>All fields are required. Write on a notepad and save locally your article before submitting, otherwise you might
|
||||
lose all your work. Use simple sentences for the Subtitle, five words at maximum. Select any thumbnail image,
|
||||
this serves only as a decoration for the article, it doesn't have to be related to the article.
|
||||
You can use HTML tags to format the article:
|
||||
<ul>
|
||||
<li>For paragraphs <b><p style='font-size: 20px;'></p></b> </li>
|
||||
<li>For external images <b><image src='ADDRESS' width='100%'></b> </li>
|
||||
<li>To centralize text and images <b><center></center></b> </li>
|
||||
<li>For bold text <b><b></b></b> </li>
|
||||
<li>Line break <b><br></b> </li>
|
||||
<li>External links <b><a href='ADDRESS' target='_blank'></a></b> </li>
|
||||
<li>Title and headers <b><h1></h1> to <h6></h6></b> </li>
|
||||
<li>Always use single quotes <b>'</b> instead of double quotes <b>"</b> inside HTML tags.</li>
|
||||
<li>Images must always have <b>width='100%'</b>, or the design will break.</li>
|
||||
<li>Try not to use images in the middle of the first paragraph of the article. Use them either at the beginning or after the first paragraph.</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<br><br><br>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
364
articles/templates/articles/write.html
Normal file
364
articles/templates/articles/write.html
Normal file
|
@ -0,0 +1,364 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>Moneroj.net - Profile</title>
|
||||
|
||||
<style>
|
||||
.login_page {
|
||||
margin: 0 auto 25px;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: #313030;
|
||||
max-width: 100%;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 20px
|
||||
}
|
||||
|
||||
.form input {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
margin: 0 0 10px;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
border-radius: 5px
|
||||
}
|
||||
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.form button:hover,
|
||||
.form button:active {
|
||||
background: #db3b13
|
||||
}
|
||||
|
||||
.form .message {
|
||||
margin: 10px 0 0;
|
||||
color: rgb(255, 255, 255);
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.form .message a {
|
||||
color: #ff4d21;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.form .register_form {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
<!-- ======= Subscribe Section ======= -->
|
||||
<section id="Subscribe" class="section-bg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xl-6 d-flex flex-column justify-content-center">
|
||||
<h1>Start writing great articles!</h1>
|
||||
<h3>Write and submit your articles for approval.</h3>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-3 d-flex flex-column justify-content-center">
|
||||
<div class="col-md-12 form">
|
||||
<h1><i class="bx bx-user" style="color: #ffffff"></i></h1>
|
||||
<p class="message">You are currently:
|
||||
<br>
|
||||
<br>
|
||||
{% if request.user.profile.type == 'user' %}
|
||||
User / writer
|
||||
{% elif request.user.profile.type == 'editor' %}
|
||||
Editor and writer
|
||||
{% elif request.user.profile.type == 'admin' %}
|
||||
Administrator
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-3 d-flex flex-column justify-content-center">
|
||||
<div class="col-md-12 form">
|
||||
<h1><i class="bx bx-pen" style="color: #ffffff"></i></h1>
|
||||
<p class="message">Write new article:</p><br>
|
||||
<a href="{% url 'articles:new_article' %}"><button type="submit">Write</button></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- End Subscribe Section -->
|
||||
|
||||
<div class="container">
|
||||
|
||||
<br><br>
|
||||
<div class="section-title">
|
||||
<h2>My Articles</h2>
|
||||
</div>
|
||||
<table class="table table-sm table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="col">Title</th>
|
||||
<th scope="col">Created</th>
|
||||
<th scope="col">Updated</th>
|
||||
<th scope="col">Published</th>
|
||||
<th scope="col">Status</th>
|
||||
<th scope="col" class="table-info"><div style="float:right">View</div></th>
|
||||
<th scope="col" class="table-warning"><div style="float:right">Edit</div></th>
|
||||
<th scope="col" class="table-danger"><div style="float:right">Delete</div></th>
|
||||
</tr>
|
||||
{% for article in articles %}
|
||||
<tr>
|
||||
<td>{{ article.title }}</td>
|
||||
<td>{{ article.date_added }}</td>
|
||||
<td>{{ article.date_updated }}</td>
|
||||
<td>{{ article.date_published }}</td>
|
||||
<td>{{ article.status }}</td>
|
||||
<td class="table-info">
|
||||
<div style="float:right">
|
||||
<a href="../article/{{ article.url }}">X</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-warning">
|
||||
<div style="float:right">
|
||||
<a href="{% url 'articles:edit_article' article.id %}">X</a>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="table-danger">
|
||||
<div style="float:right">
|
||||
<a data-toggle="modal" href="#" data-target="#id_Modal_delete{{ article.id }}">X</a>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="id_Modal_delete{{ article.id }}" tabindex="-1" role="dialog" aria-labelledby="Modal_delete{{ article.id }}" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="Modal_delete{{ article.id }}">Delete article</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Cencel">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Are you sure you want to block and delete this article?<br>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
||||
<a class="btn btn-danger" href="{% url 'articles:delete_article' article.id %}" role="button">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Fim do Modal -->
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% if request.user.profile.type == 'editor' %}
|
||||
<br><br>
|
||||
<div class="section-title">
|
||||
<h2>Review Articles</h2>
|
||||
</div>
|
||||
<table class="table table-sm table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="col">Title</th>
|
||||
<th scope="col">Created</th>
|
||||
<th scope="col">Updated</th>
|
||||
<th scope="col">Published</th>
|
||||
<th scope="col">Status</th>
|
||||
<th scope="col" class="table-info"><div style="float:right">View</div></th>
|
||||
<th scope="col" class="table-success"><div style="float:right">Publish</div></th>
|
||||
<th scope="col" class="table-warning"><div style="float:right">Review</div></th>
|
||||
</tr>
|
||||
{% for review in reviews %}
|
||||
<tr>
|
||||
<td>{{ review.title }}</td>
|
||||
<td>{{ review.date_added }}</td>
|
||||
<td>{{ review.date_updated }}</td>
|
||||
<td>{{ review.date_published }}</td>
|
||||
<td>{{ review.status }}</td>
|
||||
<td class="table-info">
|
||||
<div style="float:right">
|
||||
<a href="../article/{{ review.url }}">X</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-success">
|
||||
<div style="float:right">
|
||||
<a href="{% url 'articles:publish_article' review.id %}">X</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-warning">
|
||||
<div style="float:right">
|
||||
<a href="{% url 'articles:edit_article' review.id %}">X</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% elif request.user.profile.type == 'admin' %}
|
||||
<br><br>
|
||||
<div class="section-title">
|
||||
<h2>Review Articles</h2>
|
||||
</div>
|
||||
<table class="table table-sm table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="col">Title</th>
|
||||
<th scope="col">Writer</th>
|
||||
<th scope="col">Created</th>
|
||||
<th scope="col">Updated</th>
|
||||
<th scope="col">Status</th>
|
||||
<th scope="col" class="table-info"><div style="float:right">View</div></th>
|
||||
<th scope="col" class="table-success"><div style="float:right">Publish</div></th>
|
||||
<th scope="col" class="table-warning"><div style="float:right">Review</div></th>
|
||||
<th scope="col" class="table-danger"><div style="float:right">Delete</div></th>
|
||||
</tr>
|
||||
{% for review in reviews %}
|
||||
<tr>
|
||||
<td>{{ review.title }}</td>
|
||||
<td>{{ review.owner.username }}</td>
|
||||
<td>{{ review.date_added }}</td>
|
||||
<td>{{ review.date_updated }}</td>
|
||||
<td>{{ review.status }}</td>
|
||||
<td class="table-info">
|
||||
<div style="float:right">
|
||||
<a href="../article/{{ review.url }}">X</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-success">
|
||||
<div style="float:right">
|
||||
<a href="{% url 'articles:publish_article' review.id %}">X</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="table-warning">
|
||||
<div style="float:right">
|
||||
<a href="{% url 'articles:edit_article' review.id %}">X</a>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="table-danger">
|
||||
<div style="float:right">
|
||||
<a data-toggle="modal" href="#" data-target="#id_Modal_delete_review{{ review.id }}">X</a>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="id_Modal_delete_review{{ review.id }}" tabindex="-1" role="dialog" aria-labelledby="Modal_delete_review{{ review.id }}" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="Modal_delete_review{{ review.id }}">Delete article</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Cencel">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Are you sure you want to block and delete this article?<br>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
||||
<a class="btn btn-danger" href="{% url 'articles:delete_article' review.id %}" role="button">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Fim do Modal -->
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br><br>
|
||||
<div class="section-title">
|
||||
<h2>Published Articles</h2>
|
||||
</div>
|
||||
<table class="table table-sm table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="col">Title</th>
|
||||
<th scope="col">Writer</th>
|
||||
<th scope="col">Created</th>
|
||||
<th scope="col">Updated</th>
|
||||
<th scope="col">Status</th>
|
||||
<th scope="col" class="table-info"><div style="float:right">View</div></th>
|
||||
<th scope="col" class="table-danger"><div style="float:right">Delete</div></th>
|
||||
</tr>
|
||||
{% for publish in published %}
|
||||
<tr>
|
||||
<td>{{ publish.title }}</td>
|
||||
<td>{{ publish.owner.username }}</td>
|
||||
<td>{{ publish.date_added }}</td>
|
||||
<td>{{ publish.date_updated }}</td>
|
||||
<td>{{ publish.status }}</td>
|
||||
<td class="table-info">
|
||||
<div style="float:right">
|
||||
<a href="../article/{{ publish.url }}">X</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="table-danger">
|
||||
<div style="float:right">
|
||||
<a data-toggle="modal" href="#" data-target="#id_Modal_delete_published{{ publish.id }}">X</a>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="id_Modal_delete_published{{ publish.id }}" tabindex="-1" role="dialog" aria-labelledby="Modal_delete_published{{ publish.id }}" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="Modal_delete_published{{ publish.id }}">Delete article</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Cencel">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Are you sure you want to block and delete this article?<br>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
||||
<a class="btn btn-danger" href="{% url 'articles:delete_article' publish.id %}" role="button">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Fim do Modal -->
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
<br><br><br>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
21
articles/urls.py
Normal file
21
articles/urls.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
from django.urls import path
|
||||
from django.contrib.auth import views as auth_views
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
# Pages URLs
|
||||
# Everyone can use these
|
||||
path('articles/', views.articles, name="articles"),
|
||||
path('article/<str:identification>/', views.article, name="article"),
|
||||
|
||||
# URLs to articles writing and edit, etc
|
||||
# Only registered users can use these
|
||||
path('write/', views.write, name="write"),
|
||||
path('new_article/', views.new_article, name="new_article"),
|
||||
path('images/', views.images, name="images"),
|
||||
path('edit_article/<str:identification>/', views.edit_article, name="edit_article"),
|
||||
path('publish_article/<str:identification>/', views.publish_article, name="publish_article"),
|
||||
path('delete_article/<str:identification>/', views.delete_article, name="delete_article"),
|
||||
|
||||
]
|
244
articles/views.py
Normal file
244
articles/views.py
Normal file
|
@ -0,0 +1,244 @@
|
|||
from django.shortcuts import render
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.urls import reverse
|
||||
from .models import *
|
||||
from .forms import *
|
||||
from users.models import *
|
||||
from users.forms import *
|
||||
from users.views import update_visitors
|
||||
from django.contrib.auth import logout, login, authenticate
|
||||
from django.contrib.auth.forms import UserCreationForm
|
||||
from django.contrib.auth.decorators import login_required
|
||||
import datetime
|
||||
from datetime import date, timedelta
|
||||
|
||||
###########################################
|
||||
# General visitors' pages
|
||||
###########################################
|
||||
|
||||
def articles(request):
|
||||
update_visitors(False)
|
||||
articles = Article.objects.filter(status="Published").order_by('-id')
|
||||
first = True
|
||||
thumbnail = ''
|
||||
count = 0
|
||||
for article in articles:
|
||||
if first:
|
||||
thumbnail = article.thumbnail
|
||||
thumbnail = thumbnail.replace('400x300', '1920x1080')
|
||||
first = False
|
||||
article.thumbnail = 'img/articles/' + article.thumbnail
|
||||
if len(article.title) > 100:
|
||||
article.title = article.title[:100] + '...'
|
||||
article.count = count
|
||||
if count != 5 and count != 0:
|
||||
article.text = article.text[:400] + '...'
|
||||
else:
|
||||
article.text = article.text[:600] + '...'
|
||||
count += 1
|
||||
|
||||
if request.method != 'POST':
|
||||
#no data, go back to articles section
|
||||
form = SubscriberForm()
|
||||
message = False
|
||||
else:
|
||||
#e-mail submitted
|
||||
form = SubscriberForm(data=request.POST)
|
||||
if form.is_valid():
|
||||
new_subscriber = form.save(commit=False)
|
||||
new_subscriber.save()
|
||||
message = 'Subscription successful!'
|
||||
else:
|
||||
message = 'Something went wrong!'
|
||||
|
||||
print(thumbnail)
|
||||
|
||||
context = {'page': 'article', 'articles': articles, 'form': form, 'message': message, 'thumbnail': thumbnail}
|
||||
return render(request, 'articles/articles.html', context)
|
||||
|
||||
def article(request, identification):
|
||||
update_visitors(False)
|
||||
try:
|
||||
article = Article.objects.get(id=identification)
|
||||
except:
|
||||
try:
|
||||
identification = identification.replace('-', ' ')
|
||||
article = Article.objects.get(title=identification)
|
||||
except:
|
||||
return render(request, 'users/error.html')
|
||||
|
||||
article.thumbnail = article.thumbnail.replace('400x300', '1920x1080')
|
||||
|
||||
if article.status == 'Published':
|
||||
context = {'page': 'article', 'article': article}
|
||||
return render(request, 'articles/article.html', context)
|
||||
else:
|
||||
if request.user.username != "Administrador" and request.user.username != "Morpheus" and request.user != article.owner and request.user.profile.type != 'editor':
|
||||
return render(request, 'users/error.html')
|
||||
else:
|
||||
context = {'page': 'article', 'article': article}
|
||||
return render(request, 'articles/article.html', context)
|
||||
|
||||
###########################################
|
||||
# Required login - Users
|
||||
###########################################
|
||||
|
||||
@login_required
|
||||
def images(request):
|
||||
update_visitors(False)
|
||||
context = {'page': 'article'}
|
||||
return render(request, 'articles/images.html', context)
|
||||
|
||||
@login_required
|
||||
def write(request):
|
||||
update_visitors(False)
|
||||
articles = Article.objects.filter(author=request.user).order_by('-id')
|
||||
for article in articles:
|
||||
try:
|
||||
article.date_added = datetime.datetime.strftime(article.date_added, '%d/%m/%Y')
|
||||
article.date_updated = datetime.datetime.strftime(article.date_updated, '%d/%m/%Y')
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
article.date_published = datetime.datetime.strftime(article.date_published, '%d/%m/%Y')
|
||||
except:
|
||||
pass
|
||||
article.title = article.title[:50] + '...'
|
||||
|
||||
if request.user.profile.type == 'editor':
|
||||
reviews = Article.objects.filter(status="Pending approval").exclude(author=request.user)
|
||||
for review in reviews:
|
||||
try:
|
||||
review.date_added = datetime.datetime.strftime(review.date_added, '%d/%m/%Y')
|
||||
review.date_updated = datetime.datetime.strftime(review.date_updated, '%d/%m/%Y')
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
review.date_published = datetime.datetime.strftime(review.date_published, '%d/%m/%Y')
|
||||
except:
|
||||
pass
|
||||
review.title = review.title[:50] + '...'
|
||||
|
||||
context = {'page': 'article', 'articles': articles, 'reviews': reviews}
|
||||
|
||||
if request.user.profile.type == "admin":
|
||||
reviews = Article.objects.filter(status="Pending approval")
|
||||
for review in reviews:
|
||||
try:
|
||||
review.date_added = datetime.datetime.strftime(review.date_added, '%d/%m/%Y')
|
||||
review.date_updated = datetime.datetime.strftime(review.date_updated, '%d/%m/%Y')
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
review.date_published = datetime.datetime.strftime(review.date_published, '%d/%m/%Y')
|
||||
except:
|
||||
pass
|
||||
review.title = review.title[:50] + '...'
|
||||
|
||||
published = Article.objects.filter(status="Published")
|
||||
for publish in published:
|
||||
try:
|
||||
publish.date_added = datetime.datetime.strftime(publish.date_added, '%d/%m/%Y')
|
||||
publish.date_updated = datetime.datetime.strftime(publish.date_updated, '%d/%m/%Y')
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
publish.date_published = datetime.datetime.strftime(publish.date_published, '%d/%m/%Y')
|
||||
except:
|
||||
pass
|
||||
publish.title = publish.title[:50] + '...'
|
||||
|
||||
context = {'page': 'article', 'articles': articles, 'reviews': reviews, 'published': published}
|
||||
|
||||
else:
|
||||
context = {'page': 'article', 'articles': articles}
|
||||
return render(request, 'articles/write.html', context)
|
||||
|
||||
@login_required
|
||||
def new_article(request):
|
||||
update_visitors(False)
|
||||
if request.method != 'POST':
|
||||
#create new page with blank form
|
||||
form = ArticleForm()
|
||||
else:
|
||||
#process data and submit article
|
||||
form = ArticleForm(data=request.POST)
|
||||
if form.is_valid():
|
||||
new_article = form.save(commit=False)
|
||||
new_article.author = request.user.username
|
||||
articles = Article.objects.filter(author=new_article.author).filter(status='Pending approval')
|
||||
count = 0
|
||||
if articles:
|
||||
for article in articles:
|
||||
count += 1
|
||||
if count >= 5:
|
||||
return HttpResponseRedirect(reverse('articles:write'))
|
||||
new_article.date_updated = datetime.datetime.now()
|
||||
new_article.owner = request.user
|
||||
new_article.url = new_article.title.replace(' ', '-')
|
||||
new_article.status = 'Pending approval'
|
||||
new_article.save()
|
||||
return HttpResponseRedirect(reverse('articles:write'))
|
||||
|
||||
context = {'form': form, 'page': 'article'}
|
||||
return render(request, 'articles/new_article.html', context)
|
||||
|
||||
@login_required
|
||||
def edit_article(request, identification):
|
||||
update_visitors(False)
|
||||
try:
|
||||
article = Article.objects.get(id=identification)
|
||||
except:
|
||||
return render(request, 'users/error.html')
|
||||
if request.user.profile.type != "admin" and request.user != article.owner:
|
||||
return render(request, 'users/error.html')
|
||||
|
||||
if request.method != 'POST':
|
||||
#no data submitted, load saved data
|
||||
form = ArticleForm(instance=article)
|
||||
else:
|
||||
#data submitted, now save it
|
||||
form = ArticleForm(instance=article, data=request.POST)
|
||||
if form.is_valid():
|
||||
new_article = form.save(commit=False)
|
||||
new_article.author = request.user.username
|
||||
new_article.date_updated = date.today()
|
||||
new_article.owner = request.user
|
||||
new_article.url = new_article.title.replace(' ', '-')
|
||||
new_article.status = 'Pending approval'
|
||||
new_article.save()
|
||||
return HttpResponseRedirect(reverse('articles:write'))
|
||||
|
||||
context = {'form': form, 'article': article, 'page': 'article'}
|
||||
return render(request, 'articles/edit_article.html', context)
|
||||
|
||||
@login_required
|
||||
def delete_article(request, identification):
|
||||
update_visitors(False)
|
||||
try:
|
||||
article = Article.objects.get(id=identification)
|
||||
except:
|
||||
return render(request, 'users/error.html')
|
||||
if request.user.profile.type != "admin" and request.user != article.owner:
|
||||
return render(request, 'users/error.html')
|
||||
|
||||
article.delete()
|
||||
return HttpResponseRedirect(reverse('articles:write'))
|
||||
|
||||
@login_required
|
||||
def publish_article(request, identification):
|
||||
update_visitors(False)
|
||||
try:
|
||||
article = Article.objects.get(id=identification)
|
||||
except:
|
||||
return render(request, 'users/error.html')
|
||||
if request.user.profile.type != "admin" and request.user.profile.type != "editor":
|
||||
return render(request, 'users/error.html')
|
||||
|
||||
if request.user.profile.type == article.owner.profile.type and request.user.profile.type != 'admin':
|
||||
return render(request, 'users/error.html')
|
||||
|
||||
article.status = 'Published'
|
||||
article.date_published = date.today()
|
||||
article.save()
|
||||
return HttpResponseRedirect(reverse('articles:write'))
|
3
charts/admin.py
Normal file
3
charts/admin.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
5
charts/apps.py
Normal file
5
charts/apps.py
Normal file
|
@ -0,0 +1,5 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class chartsConfig(AppConfig):
|
||||
name = 'charts'
|
|
@ -1,4 +1,14 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - About</title>
|
||||
<style>
|
||||
.break {
|
||||
word-break: break-all;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% load static %}
|
||||
|
@ -22,10 +32,9 @@
|
|||
</div><br>
|
||||
<div class="row">
|
||||
<div class="col-xl-12 col-md-6 mb-4">
|
||||
<div class="alert alert-success" role="alert">
|
||||
Liked this project? Help support it, funding my CCS Proposal >
|
||||
<a href ="https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/318" target="_blank">Link</a>
|
||||
|
||||
<div class="alert alert-success break" role="alert">
|
||||
Liked this project? Help support it, funding us:
|
||||
8Agy1JvbsttEV2Jp2ecyRLSoKiCQwr4f2FKjWh2dz8Q1Y4LXCxXDNBf5praUrc1v8vDSqHYUefqxkiLNgnjvDfQNQStwvP6
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -102,26 +111,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xl-12 col-md-6 mb-4">
|
||||
<div class="card border-left-new">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
|
||||
Github</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800"><a
|
||||
href="https://github.com/cryptomorpheuss/moneropro" target="_blank">cryptomorpheuss/moneropro</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="bx bxl-github text-gray-300"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xl-12 col-md-6 mb-4">
|
||||
<div class="card border-left-new">
|
|
@ -30,20 +30,20 @@
|
|||
|
||||
<nav class="navbar navbar-expand-lg navbar-light">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="{% url 'monerojnet:index' %}"><text class="color-orange">Gazeto</text> Monero<text class="color-orange">j</text> </a>
|
||||
<a class="navbar-brand" href="{% url 'charts:index' %}"><text class="color-orange">Gazeto</text> Monero<text class="color-orange">j</text> </a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{% url 'monerojnet:index' %}">Home <span class="sr-only">(current)</span></a>
|
||||
<a class="nav-link" href="{% url 'charts:index' %}">Home <span class="sr-only">(current)</span></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Charts</a>
|
||||
<a class="nav-link" href="{% url 'charts:sfmodel' %}">Charts</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'monerojnet:articles' %}">Articles</a>
|
||||
<a class="nav-link" href="{% url 'charts:articles' %}">Articles</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown" >
|
||||
{% if user.is_authenticated %}
|
||||
|
@ -62,11 +62,11 @@
|
|||
<a class="nav-link" href="{% url 'users:login' %}">Login</a>
|
||||
<a class="nav-link" href="{% url 'users:register' %}">Register</a>
|
||||
{% endif %}
|
||||
<a class="nav-link" href="{% url 'monerojnet:about' %}">About</a>
|
||||
<a class="nav-link" href="{% url 'charts:about' %}">About</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="nav-link" href="{% url 'monerojnet:index' %}">English</a>
|
||||
<a class="nav-link" href="{% url 'monerojnet:fr' %}">French</a>
|
||||
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Portuguese</a>
|
||||
<a class="nav-link" href="{% url 'charts:index' %}">English</a>
|
||||
<a class="nav-link" href="{% url 'charts:fr' %}">French</a>
|
||||
<a class="nav-link" href="{% url 'charts:pt' %}">Portuguese</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -107,9 +107,9 @@
|
|||
<div class="col-lg-3 col-md-6 footer-links">
|
||||
<h4>Useful Links</h4>
|
||||
<ul>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:index' %}">Home</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Charts</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">About</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:index' %}">Home</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:sfmodel' %}">Charts</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:about' %}">About</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
|
||||
</ul>
|
|
@ -30,20 +30,20 @@
|
|||
|
||||
<nav class="navbar navbar-expand-lg navbar-light">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="{% url 'monerojnet:pt' %}"><text class="color-orange">Gazeto</text> Monero<text class="color-orange">j</text> </a>
|
||||
<a class="navbar-brand" href="{% url 'charts:pt' %}"><text class="color-orange">Gazeto</text> Monero<text class="color-orange">j</text> </a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{% url 'monerojnet:index' %}">Inicial <span class="sr-only">(current)</span></a>
|
||||
<a class="nav-link" href="{% url 'charts:index' %}">Inicial <span class="sr-only">(current)</span></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Gráficos</a>
|
||||
<a class="nav-link" href="{% url 'charts:sfmodel' %}">Gráficos</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'monerojnet:artigos' %}">Artigos</a>
|
||||
<a class="nav-link" href="{% url 'charts:artigos' %}">Artigos</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown" >
|
||||
{% if user.is_authenticated %}
|
||||
|
@ -62,11 +62,11 @@
|
|||
<a class="nav-link" href="{% url 'users:login' %}">Entrar</a>
|
||||
<a class="nav-link" href="{% url 'users:register' %}">Registrar</a>
|
||||
{% endif %}
|
||||
<a class="nav-link" href="{% url 'monerojnet:about' %}">Sobre</a>
|
||||
<a class="nav-link" href="{% url 'charts:about' %}">Sobre</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="nav-link" href="{% url 'monerojnet:index' %}">Inglês</a>
|
||||
<a class="nav-link" href="{% url 'monerojnet:fr' %}">Francês</a>
|
||||
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Português</a>
|
||||
<a class="nav-link" href="{% url 'charts:index' %}">Inglês</a>
|
||||
<a class="nav-link" href="{% url 'charts:fr' %}">Francês</a>
|
||||
<a class="nav-link" href="{% url 'charts:pt' %}">Português</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -103,9 +103,9 @@
|
|||
<div class="col-lg-3 col-md-6 footer-links">
|
||||
<h4>Links úteis</h4>
|
||||
<ul>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:pt' %}">Página Inicial</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Gráficos</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">Sobre</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:pt' %}">Página Inicial</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:sfmodel' %}">Gráficos</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:about' %}">Sobre</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
|
||||
</ul>
|
|
@ -6,10 +6,8 @@
|
|||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>Moneroj.net - Charts</title>
|
||||
<meta name="description" content="Your information source about Monero, with metrics, charts, stats and articles.">
|
||||
<meta name="author" content="CryptoMorpheus_">
|
||||
|
||||
<link href="{% static 'img/favicon.png' %}" rel="icon">
|
||||
<link href="{% static 'img/apple-touch-icon.png' %}" rel="apple-touch-icon">
|
||||
|
@ -51,11 +49,7 @@
|
|||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Load plotly-->
|
||||
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
|
@ -87,6 +81,12 @@
|
|||
color: #00FF00;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Load plotly-->
|
||||
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
|
||||
|
||||
{% block header %}
|
||||
{% endblock %}
|
||||
</head>
|
||||
|
||||
<body id="page-top">
|
||||
|
@ -99,12 +99,12 @@
|
|||
|
||||
<!-- Sidebar - Brand -->
|
||||
<a class="sidebar-brand d-flex align-items-center justify-content-center"
|
||||
href="{% url 'monerojnet:index' %}">
|
||||
href="{% url 'charts:index' %}">
|
||||
<div class="sidebar-brand-text mx-3">Moneroj</div>
|
||||
</a>
|
||||
<br>
|
||||
<!-- Heading -->
|
||||
<div class="sidebar-heading">
|
||||
<br>
|
||||
Metrics
|
||||
</div>
|
||||
<!-- Nav Item - Prices Collapse Menu -->
|
||||
|
@ -118,23 +118,23 @@
|
|||
data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:pricelog' %}">Price in Dollars (Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:pricelin' %}">Price in Dollars (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:pricesats' %}">Price in Sats (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:fractal' %}">Fractal Multiple</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:inflationfractal' %}">Inflation-Adjusted
|
||||
<a class="collapse-item" href="{% url 'charts:pricelog' %}">Price in Dollars (Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:pricelin' %}">Price in Dollars (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:pricesats' %}">Price in Sats (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:fractal' %}">Fractal Multiple</a>
|
||||
<a class="collapse-item" href="{% url 'charts:inflationfractal' %}">Inflation-Adjusted
|
||||
Fractal</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:golden' %}">Golden Ratio Multiplier</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:competitors' %}">Performance ($, Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:competitorslin' %}">Performance ($, Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:competitorssats' %}">Performance (Sats, Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:competitorssatslin' %}">Performance (Sats, Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:inflationreturn' %}">Return vs. Inflation</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:bitcoin' %}">Comparison to Bitcoin</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:powerlaw' %}">Power Law</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:thermocap' %}">Thermocap Multiple</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:sharpe' %}">Sharpe Ratio</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:deviation' %}">Price Deviation</a>
|
||||
<a class="collapse-item" href="{% url 'charts:golden' %}">Golden Ratio Multiplier</a>
|
||||
<a class="collapse-item" href="{% url 'charts:competitors' %}">Performance ($, Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:competitorslin' %}">Performance ($, Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:competitorssats' %}">Performance (Sats, Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:competitorssatslin' %}">Performance (Sats, Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:inflationreturn' %}">Return vs. Inflation</a>
|
||||
<a class="collapse-item" href="{% url 'charts:bitcoin' %}">Comparison to Bitcoin</a>
|
||||
<a class="collapse-item" href="{% url 'charts:powerlaw' %}">Power Law</a>
|
||||
<a class="collapse-item" href="{% url 'charts:thermocap' %}">Thermocap Multiple</a>
|
||||
<a class="collapse-item" href="{% url 'charts:sharpe' %}">Sharpe Ratio</a>
|
||||
<a class="collapse-item" href="{% url 'charts:deviation' %}">Price Deviation</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -149,12 +149,12 @@
|
|||
data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:dominance' %}">Monero's Dominance</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:monerodominance' %}">Monero Privacy Dominance</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:privacydominance' %}">Total Privacy Dominance</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:rank' %}">Monero's CMC Rank</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:marketcap' %}">Privacy Coins' Marketcap</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:privacymarketcap' %}">Total Privacy Marketcap</a>
|
||||
<a class="collapse-item" href="{% url 'charts:dominance' %}">Monero's Dominance</a>
|
||||
<a class="collapse-item" href="{% url 'charts:monerodominance' %}">Monero Privacy Dominance</a>
|
||||
<a class="collapse-item" href="{% url 'charts:privacydominance' %}">Total Privacy Dominance</a>
|
||||
<a class="collapse-item" href="{% url 'charts:rank' %}">Monero's CMC Rank</a>
|
||||
<a class="collapse-item" href="{% url 'charts:marketcap' %}">Privacy Coins' Marketcap</a>
|
||||
<a class="collapse-item" href="{% url 'charts:privacymarketcap' %}">Total Privacy Marketcap</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -163,22 +163,23 @@
|
|||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTransactions"
|
||||
aria-expanded="true" aria-controls="collapseTransactions">
|
||||
<i class="bx bx-transfer"></i>
|
||||
<span>Transactions (10)</span>
|
||||
<span>Transactions (11)</span>
|
||||
</a>
|
||||
<div id="collapseTransactions" class="collapse" aria-labelledby="headingTransactions"
|
||||
data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:translin' %}">Transaction Count (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:translog' %}">Transaction Count (Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:transmonth' %}">Monthly Transactions (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:transcost' %}">Transaction Cost ($)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:transcostntv' %}">Transaction Cost (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:percentage' %}">Transaction Percentage</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:metcalfesats' %}">Metcalfe's Law (Sats)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:metcalfeusd' %}">Metcalfe's Law ($)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:deviation_tx' %}">Transacted Price Deviation</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:transactiondominance' %}">Transaction Dominance</a>
|
||||
<a class="collapse-item" href="{% url 'charts:translin' %}">Transaction Count (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:translog' %}">Transaction Count (Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:transmonth' %}">Monthly Transactions (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:transcost' %}">Transaction Cost ($)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:transcostntv' %}">Transaction Cost (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:percentage' %}">Transaction Percentage</a>
|
||||
<a class="collapse-item" href="{% url 'charts:percentmonth' %}">Monthly Percentage (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:metcalfesats' %}">Metcalfe's Law (Sats)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:metcalfeusd' %}">Metcalfe's Law ($)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:deviation_tx' %}">Transacted Price Deviation</a>
|
||||
<a class="collapse-item" href="{% url 'charts:transactiondominance' %}">Transaction Dominance</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -193,13 +194,13 @@
|
|||
data-parent="#accordionSidebar">
|
||||
<div class="collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:coins' %}">Coins in Circulation</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:extracoins' %}">Supply Difference</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:inflation' %}">Annual Inflation</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:tail_emission' %}">Tail Emission</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:compinflation' %}">Competitors' Inflation</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:dailyemission' %}">Daily Emission ($)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:dailyemissionntv' %}">Daily Emission (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:coins' %}">Coins in Circulation</a>
|
||||
<a class="collapse-item" href="{% url 'charts:extracoins' %}">Supply Difference</a>
|
||||
<a class="collapse-item" href="{% url 'charts:inflation' %}">Annual Inflation</a>
|
||||
<a class="collapse-item" href="{% url 'charts:tail_emission' %}">Tail Emission</a>
|
||||
<a class="collapse-item" href="{% url 'charts:compinflation' %}">Competitors' Inflation</a>
|
||||
<a class="collapse-item" href="{% url 'charts:dailyemission' %}">Daily Emission ($)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:dailyemissionntv' %}">Daily Emission (Ntv.)</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -214,9 +215,9 @@
|
|||
<div id="collapseSF" class="collapse" aria-labelledby="headingSF" data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:sfmodel' %}">Stock-to-flow (Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:sfmodellin' %}">Stock-to-flow (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:sfmultiple' %}">Stock-to-flow Multiple</a>
|
||||
<a class="collapse-item" href="{% url 'charts:sfmodel' %}">Stock-to-flow (Log.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:sfmodellin' %}">Stock-to-flow (Lin.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:sfmultiple' %}">Stock-to-flow Multiple</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -232,20 +233,20 @@
|
|||
data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:hashrate' %}">Hashrate</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:hashprice' %}">Price Per Hashrate</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:hashvsprice' %}">Hashrate Vs Price</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:minerrev' %}">Miner Revenue ($)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:minerrevntv' %}">Miner Revenue (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:minerfees' %}">Miner Fees ($)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:minerfeesntv' %}">Miner Fees (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:minerrevcap' %}">Revenue / Marketcap (%)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:commit' %}">Miner Commitment ($)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:commitntv' %}">Miner Commitment (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:blocksize' %}">Block Size (Bytes)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:blockchainsize' %}">Blockchain Size (Bytes)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:transactionsize' %}">Transaction Size (Bytes)</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:difficulty' %}">Mining Difficulty</a>
|
||||
<a class="collapse-item" href="{% url 'charts:hashrate' %}">Hashrate</a>
|
||||
<a class="collapse-item" href="{% url 'charts:hashprice' %}">Price Per Hashrate</a>
|
||||
<a class="collapse-item" href="{% url 'charts:hashvsprice' %}">Hashrate Vs Price</a>
|
||||
<a class="collapse-item" href="{% url 'charts:minerrev' %}">Miner Revenue ($)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:minerrevntv' %}">Miner Revenue (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:minerfees' %}">Miner Fees ($)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:minerfeesntv' %}">Miner Fees (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:minerrevcap' %}">Revenue / Marketcap (%)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:commit' %}">Miner Commitment ($)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:commitntv' %}">Miner Commitment (Ntv.)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:blocksize' %}">Block Size (Bytes)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:blockchainsize' %}">Blockchain Size (Bytes)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:transactionsize' %}">Transaction Size (Bytes)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:difficulty' %}">Mining Difficulty</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -267,13 +268,13 @@
|
|||
data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:social' %}">Total Subscribers</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:social6' %}">Daily Comments</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:social7' %}">Daily Posts</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:social4' %}">Monthly Increase</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:social2' %}">Dollars / Subscriber</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:social3' %}">Subscribers Percentage</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:social5' %}">Subscribers & Transac.</a>
|
||||
<a class="collapse-item" href="{% url 'charts:social' %}">Total Subscribers</a>
|
||||
<a class="collapse-item" href="{% url 'charts:social6' %}">Daily Comments</a>
|
||||
<a class="collapse-item" href="{% url 'charts:social7' %}">Daily Posts</a>
|
||||
<a class="collapse-item" href="{% url 'charts:social4' %}">Monthly Increase</a>
|
||||
<a class="collapse-item" href="{% url 'charts:social2' %}">Dollars / Subscriber</a>
|
||||
<a class="collapse-item" href="{% url 'charts:social3' %}">Subscribers Percentage</a>
|
||||
<a class="collapse-item" href="{% url 'charts:social5' %}">Subscribers & Transac.</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -288,7 +289,7 @@
|
|||
data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:dread_subscribers' %}">Total Subscribers</a>
|
||||
<a class="collapse-item" href="{% url 'charts:dread_subscribers' %}">Total Subscribers</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -303,10 +304,10 @@
|
|||
data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Charts:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:coincards' %}">Coincards Usage</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:merchants' %}">Merchant Acceptance</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:merchants_increase' %}">Merchant Increase</a>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:merchants_percentage' %}">Merchant Increase (%)</a>
|
||||
<a class="collapse-item" href="{% url 'charts:coincards' %}">Coincards Usage</a>
|
||||
<a class="collapse-item" href="{% url 'charts:merchants' %}">Merchant Acceptance</a>
|
||||
<a class="collapse-item" href="{% url 'charts:merchants_increase' %}">Merchant Increase</a>
|
||||
<a class="collapse-item" href="{% url 'charts:merchants_percentage' %}">Merchant Increase (%)</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -345,9 +346,8 @@
|
|||
data-parent="#accordionSidebar">
|
||||
<div class="py-2 collapse-inner rounded">
|
||||
<h6 class="collapse-header text-dark">Info:</h6>
|
||||
<a class="collapse-item" href="{% url 'monerojnet:about' %}">About Us</a>
|
||||
<a class="collapse-item" href="{% url 'charts:about' %}">About Us</a>
|
||||
<a class="collapse-item" href="https://twitter.com/CryptoMorpheus_" target="_blank">Twitter</a>
|
||||
<a class="collapse-item" href ="https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/318" target="_blank">CCS Proposal Link</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Bitcoin Comparison</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Blockchain Size</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Block Size</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Coincards Usage</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Coins in Circulation</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Miner Commitment</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Miner Commitment</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Competitor Performance</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Competitor Performance</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Competitor Performance</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Competitor Performance</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Inflation</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Daily Emission</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Daily Emission</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Price Deviation</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Transacted Price Deviation</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Mining Difficulty</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Marketcap Dominance</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Dread Subscribers</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Dread Total Subscribes</h6>
|
||||
<h6 class="m-0 text-light">Dread Subscribes</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
||||
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Supply Difference</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -7,8 +7,8 @@
|
|||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Moneroj.net</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="description" content="Votre source d'informations sur Monero, avec des mesures, des graphiques, des statistiques et des articles.">
|
||||
<meta name="author" content="CryptoMorpheus_">
|
||||
|
||||
<link href="{% static 'css/style.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'img/favicon.png' %}" rel="icon">
|
||||
|
@ -16,6 +16,7 @@
|
|||
<link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'vendor/boxicons/css/boxicons.min.css' %}" rel="stylesheet">
|
||||
|
||||
|
||||
<style>
|
||||
div.a {
|
||||
word-break: break-all;
|
||||
|
@ -24,13 +25,73 @@
|
|||
.color-orange {
|
||||
color: #ff6b3b;
|
||||
}
|
||||
|
||||
.login_page {
|
||||
margin: 0 auto 25px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: #313030;
|
||||
max-width: 100%;
|
||||
margin: 0 auto 25px;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 20px
|
||||
}
|
||||
|
||||
.form input {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
margin: 0 0 10px;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
border-radius: 5px
|
||||
}
|
||||
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.form button:hover,
|
||||
.form button:active {
|
||||
background: #db3b13
|
||||
}
|
||||
|
||||
.form .message {
|
||||
margin: 10px 0 0;
|
||||
color: rgb(255, 255, 255);
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.form .message a {
|
||||
color: #ff4d21;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.form .register_form {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-light">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="{% url 'monerojnet:fr' %}">Monero<text class="color-orange">j</text></a>
|
||||
<a class="navbar-brand" href="{% url 'charts:fr' %}">Monero<text class="color-orange">j</text></a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
|
@ -38,13 +99,13 @@
|
|||
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{% url 'monerojnet:index' %}">Accueil <span class="sr-only">(current)</span></a>
|
||||
<a class="nav-link" href="{% url 'charts:fr' %}">Accueil <span class="sr-only">(current)</span></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Graphiques</a>
|
||||
<a class="nav-link" href="{% url 'charts:sfmodel' %}">Graphiques</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'monerojnet:articles' %}">Articles</a>
|
||||
<a class="nav-link" href="{% url 'articles:articles' %}">Articles</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
{% if user.is_authenticated %}
|
||||
|
@ -65,11 +126,11 @@
|
|||
<a class="nav-link" href="{% url 'users:login' %}">Connexion</a>
|
||||
<a class="nav-link" href="{% url 'users:register' %}">Enregistrement</a>
|
||||
{% endif %}
|
||||
<a class="nav-link" href="{% url 'monerojnet:about' %}">Sur</a>
|
||||
<a class="nav-link" href="{% url 'charts:about' %}">Sur</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="nav-link" href="{% url 'monerojnet:index' %}">Anglais</a>
|
||||
<a class="nav-link" href="{% url 'monerojnet:fr' %}">Français</a>
|
||||
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Portugaise</a>
|
||||
<a class="nav-link" href="{% url 'charts:index' %}">Anglais</a>
|
||||
<a class="nav-link" href="{% url 'charts:fr' %}">Français</a>
|
||||
<a class="nav-link" href="{% url 'charts:pt' %}">Portugaise</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -79,10 +140,42 @@
|
|||
|
||||
<!-- ======= Hero Section ======= -->
|
||||
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
|
||||
{% if user.is_authenticated %}
|
||||
<div class="container">
|
||||
<h1>Saviez-vous que toutes vos données sont exposées lorsque vous utilisez Bitcoin?</h1>
|
||||
<h2>Monero est ce que les gens pensent acheter lorsqu'ils investissent dans Bitcoin.</h2>
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xl-9 d-flex flex-column justify-content-center">
|
||||
<h1>Saviez-vous que toutes vos données sont exposées lorsque vous utilisez Bitcoin?</h1>
|
||||
<h2>Monero est ce que les gens pensent acheter lorsqu'ils investissent dans Bitcoin.</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-3 d-flex flex-column justify-content-center">
|
||||
<form action="{% url 'users:login' %}" method='POST'>
|
||||
{% csrf_token %}
|
||||
{% if form.errors %}
|
||||
<div class="alert alert-danger">
|
||||
<strong><center>Identifiant ou mot de passe incorrect.</center></strong>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="form">
|
||||
<h1><i class="bx bx-user text-white"></i></h1>
|
||||
<p class="message">Connexion:</p><br>
|
||||
<input type="text" name="username" placeholder="Identifiant">
|
||||
<input type="password" name="password" placeholder="Passe">
|
||||
<button>Connexion</button>
|
||||
<p class="message"><a href="{% url 'users:register' %}">Créer un compte!</a></p>
|
||||
<input type="hidden" name="next" value="{% url 'charts:index' %}">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</section>
|
||||
<!-- End Hero -->
|
||||
|
||||
|
@ -730,9 +823,9 @@
|
|||
<div class="col-lg-3 col-md-6 footer-links">
|
||||
<h4>Liens utiles</h4>
|
||||
<ul>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:fr' %}">Accueil</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Graphiques</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">Sur</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:fr' %}">Accueil</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:sfmodel' %}">Graphiques</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:about' %}">Sur</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
|
||||
</ul>
|
||||
|
@ -752,7 +845,6 @@
|
|||
<div class="social-links text-center text-lg-right pt-3 pt-lg-0">
|
||||
<a href="http://ilt7jgmfro76wgrtt6752lvfnhcz6wk5sjqhyvntjixygp3cwpvr4nad.onion" class="onion" alt="Tor Version"><i class="bx bx-hide"></i></a>
|
||||
<a href="https://twitter.com/CryptoMorpheus_" class="twitter" alt="Twitter Profile"><i class="bx bxl-twitter"></i></a>
|
||||
<a href="https://github.com/cryptomorpheuss/moneropro" class="github" alt="Github"><i class="bx bxl-github"></i></a>
|
||||
<a href="mailto:morpheus.anonymous@protonmail.com" class="email" alt="Send E-mail"><i class="bx bx-mail-send"></i></a>
|
||||
</div>
|
||||
</div>
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Fractal Multiple</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Golden Ratio Multiplier</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Price per hashrate</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Hashrate</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Price Versus Hashrate</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Price in Dollars Versus Hashrate</h6>
|
||||
<h6 class="m-0 text-light">Price Versus Hashrate (Dollars)</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
||||
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
|
|
@ -1,12 +1,175 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>Moneroj.net - Monero Metrics</title>
|
||||
|
||||
<style>
|
||||
.login_page {
|
||||
margin: 0 auto 25px;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: #313030;
|
||||
max-width: 100%;
|
||||
margin: 0 auto 25px;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 20px
|
||||
}
|
||||
|
||||
.form input {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
margin: 0 0 10px;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
border-radius: 5px
|
||||
}
|
||||
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.form button:hover,
|
||||
.form button:active {
|
||||
background: #db3b13
|
||||
}
|
||||
|
||||
.form .message {
|
||||
margin: 10px 0 0;
|
||||
color: rgb(255, 255, 255);
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.form .message a {
|
||||
color: #ff4d21;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.form .register_form {
|
||||
display: none
|
||||
}
|
||||
|
||||
.break {
|
||||
word-break: break-all;
|
||||
}
|
||||
</style>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
<!-- ======= Hero Section ======= -->
|
||||
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
|
||||
{% if user.is_authenticated %}
|
||||
<div class="container">
|
||||
<!--
|
||||
<h1>Did you know all your data is exposed when you use Bitcoin?</h1>
|
||||
<h2>Monero is what people think they are buying when they invest in Bitcoin.</h2>
|
||||
-->
|
||||
|
||||
<div class="icon-boxes d-flex flex-column justify-content-center">
|
||||
<div class="row">
|
||||
<div class="col-xl-12 d-flex align-items-stretch">
|
||||
<div class="icon-box mt-4 mt-xl-0">
|
||||
<h4>Crowdfunding for Moneroj.net improvements</h4>
|
||||
<p class="break">Moneroj.net needs your help to pay for server expenses and further development. I'm currently developing new charts with new metrics,
|
||||
and I'm happy to launch 12 new ones, along with another 10 already launched since the CCS Proposal on May 11. There's also our new Hidden Service
|
||||
available for TOR users and our brand new Articles section. <a href="https://moneroj.net/article/New-charts-released,-and-why-we-gave-up-the-CCS-Proposal">Read more about it.</a> <br><br>Address: 8Agy1JvbsttEV2Jp2ecyRLSoKiCQwr4f2FKjWh2dz8Q1Y4LXCxXDNBf5praUrc1v8vDSqHYUefqxkiLNgnjvDfQNQStwvP6
|
||||
</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p>
|
||||
<i class="bx bx-user"></i> Morpheus
|
||||
<i class="bx bx-calendar"></i> May 11
|
||||
</p>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p style="text-align: right;">
|
||||
<i class="bx bx-money"></i> Raised 0 of 46 XMR
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-danger" role="progressbar" style="width: 0.1%; color: #ff4d21" aria-valuenow="0.1" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xl-9 d-flex flex-column justify-content-center">
|
||||
<div class="icon-boxes d-flex flex-column justify-content-center">
|
||||
<div class="row">
|
||||
<div class="col-xl-12 d-flex align-items-stretch">
|
||||
<div class="icon-box mt-4 mt-xl-0">
|
||||
<h4>Crowdfunding for Moneroj.net - we need your donation (two months development)</h4>
|
||||
<p class="break">Moneroj.net needs your help to pay for server expenses and further development. I'm currently developing new charts with new metrics,
|
||||
and I'm happy to launch 12 new ones, along with another 10 already launched since the CCS Proposal on May 11. There's also our new Hidden Service
|
||||
available for TOR users and our brand new Articles section. Read more about it. <br><br>Address: 8Agy1JvbsttEV2Jp2ecyRLSoKiCQwr4f2FKjWh2dz8Q1Y4LXCxXDNBf5praUrc1v8vDSqHYUefqxkiLNgnjvDfQNQStwvP6
|
||||
</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p>
|
||||
<i class="bx bx-user"></i> Morpheus
|
||||
<i class="bx bx-calendar"></i> May 11
|
||||
</p>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p style="text-align: right;">
|
||||
<i class="bx bx-money"></i> Raised 0 of 46 XMR
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-danger" role="progressbar" style="width: 0.1%; color: #ff4d21" aria-valuenow="0.1" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-3 d-flex flex-column justify-content-center">
|
||||
<form action="{% url 'users:login' %}" method='POST'>
|
||||
{% csrf_token %}
|
||||
{% if form.errors %}
|
||||
<div class="alert alert-danger">
|
||||
<strong><center>Username or password incorrect.</center></strong>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="form">
|
||||
<h1><i class="bx bx-user text-white"></i></h1>
|
||||
<p class="message">Login:</p><br>
|
||||
<input type="text" name="username" placeholder="Username">
|
||||
<input type="password" name="password" placeholder="Password">
|
||||
<button>Enter</button>
|
||||
<p class="message"><a href="{% url 'users:register' %}">Create Account!</a></p>
|
||||
<input type="hidden" name="next" value="{% url 'charts:index' %}">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</section>
|
||||
<!-- End Hero -->
|
||||
|
||||
|
@ -360,8 +523,3 @@
|
|||
{% endblock content %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Annualized Inflation</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Inflation-Adjusted Fractal</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Return Versus Inflation</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Return vs. Inflation
|
||||
<h6 class="m-0 text-light">Return Versus Inflation
|
||||
</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
81
charts/templates/charts/maintenance.html
Normal file
81
charts/templates/charts/maintenance.html
Normal file
|
@ -0,0 +1,81 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>Moneroj.net - Monero Metrics</title>
|
||||
|
||||
<style>
|
||||
.login_page {
|
||||
margin: 0 auto 25px;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: #313030;
|
||||
max-width: 100%;
|
||||
margin: 0 auto 25px;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 20px
|
||||
}
|
||||
|
||||
.form input {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
margin: 0 0 10px;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
border-radius: 5px
|
||||
}
|
||||
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.form button:hover,
|
||||
.form button:active {
|
||||
background: #db3b13
|
||||
}
|
||||
|
||||
.form .message {
|
||||
margin: 10px 0 0;
|
||||
color: rgb(255, 255, 255);
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.form .message a {
|
||||
color: #ff4d21;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.form .register_form {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
<!-- ======= Hero Section ======= -->
|
||||
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
|
||||
<div class="container">
|
||||
<h1>{{ message }}</h1>
|
||||
</div>
|
||||
</section>
|
||||
<br><br>
|
||||
<!-- End Hero -->
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Marketcap</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Total Merchants</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Merchants Increase</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Merchants Percentage</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Metcalfe's Law</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Metcalfe's Law</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Miner Fees</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Daily Miner Fees (Fees excluded new coins, Dollars)
|
||||
<h6 class="m-0 text-light">Miner Fees (Fees excluded new coins, Dollars)
|
||||
</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Miner Fees</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Daily Miner Fees (Fees excluded new coins, Native Units)
|
||||
<h6 class="m-0 text-light">Miner Fees (Fees excluded new coins, Native Units)
|
||||
</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Miner Revenue</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Average Daily Miner Revenue (Dollars)</h6>
|
||||
<h6 class="m-0 text-light">Average Miner Revenue (Dollars)</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
||||
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Miner Revenue</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Miner Revenue</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Monero's Dominance</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Price</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Price in log scale (USD)</h6>
|
||||
<h6 class="m-0 text-light">Price (log scale, USD)</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
||||
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Transaction Percentage</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
327
charts/templates/charts/percentmonth.html
Normal file
327
charts/templates/charts/percentmonth.html
Normal file
|
@ -0,0 +1,327 @@
|
|||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Monthly Percentage</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
|
||||
|
||||
<!-- Main Content -->
|
||||
<div id="content">
|
||||
|
||||
<!-- Begin Page Content -->
|
||||
<div class="container-fluid"><br>
|
||||
<div class="row">
|
||||
<div class="col-xl-12 col-lg-12">
|
||||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Monthly Percentage (XMR's tx / BTC's tx)</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
||||
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
|
||||
<i class="bx bx-expand text-gray-400"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
|
||||
<div id="graph" style="height: 100%; width:100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Content Row -->
|
||||
<div class="row">
|
||||
|
||||
<!-- Card -->
|
||||
<div class="col-xl-6 col-md-6 mb-4">
|
||||
<div class="card border-left-new h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
|
||||
Monthly Percentage</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_transactions }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Card -->
|
||||
<div class="col-xl-6 col-md-6 mb-4">
|
||||
<div class="card border-left-new h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
|
||||
Highest Percentage of Transactions</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- Content Row -->
|
||||
<div class="row">
|
||||
<div class="col-xl-11 col-md-6 mb-4">
|
||||
<div class="alert alert-dark" role="alert">
|
||||
Not financial advice.
|
||||
For information about the chart, click the button >
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-1">
|
||||
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
|
||||
data-target="#id_Modal">
|
||||
<div class="col-auto">
|
||||
+
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- End of Main Content -->
|
||||
|
||||
</div>
|
||||
<!-- End of Content Wrapper -->
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="Modal">Help about the chart</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Number of monthly Monero transactions as a percentage of total Bitcoin transactions.<br>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Fim do Modal -->
|
||||
|
||||
<!-- Page level plugins -->
|
||||
<script>
|
||||
|
||||
var data2 = {
|
||||
type: "bar",
|
||||
name: 'Number of Transactions (XMR)',
|
||||
x: {{ dates|safe }},
|
||||
y: {{ transactions|safe }},
|
||||
hovertemplate: '%{y}',
|
||||
line: {
|
||||
color: '#dd1d1d'
|
||||
,width: 3
|
||||
},
|
||||
textposition: 'inside',
|
||||
marker: {
|
||||
color: '#dd1d1d',
|
||||
opacity: 0.9,
|
||||
line: {
|
||||
color: '#fd4d4d',
|
||||
width: 1
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var data2_mobile = {
|
||||
type: "bar",
|
||||
name: 'Number of Transactions (XMR)',
|
||||
x: {{ dates|safe }},
|
||||
y: {{ transactions|safe }},
|
||||
hovertemplate: '%{y}',
|
||||
line: {
|
||||
color: '#dd1d1d'
|
||||
,width: 3
|
||||
},
|
||||
textposition: 'inside',
|
||||
marker: {
|
||||
color: '#dd1d1d',
|
||||
opacity: 0.9,
|
||||
line: {
|
||||
color: '#fd4d4d',
|
||||
width: 1
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var data = [data2];
|
||||
var data_mobile = [data2_mobile];
|
||||
|
||||
var layout = {
|
||||
plot_bgcolor:"#252221",
|
||||
paper_bgcolor:"#252221",
|
||||
annotations: [
|
||||
{
|
||||
xref: 'paper',
|
||||
yref: 'paper',
|
||||
x: 0.02,
|
||||
xanchor: 'auto',
|
||||
y: 0.98,
|
||||
yanchor: 'auto',
|
||||
text: 'Moneroj<br>https://www.moneroj.net',
|
||||
showarrow: false,
|
||||
borderwidth: 1,
|
||||
bordercolor: '#5f5f5f',
|
||||
bgcolor: '#333333',
|
||||
borderpad: 5,
|
||||
align: 'center',
|
||||
font: {
|
||||
color: "white",
|
||||
size: 12
|
||||
}
|
||||
}],
|
||||
separators: ",.",
|
||||
legend: {
|
||||
x: 0.02,
|
||||
y: 0.50,
|
||||
bgcolor: '#333333',
|
||||
bordercolor: '#5f5f5f',
|
||||
borderwidth: 1,
|
||||
font: {
|
||||
color: 'white',
|
||||
size: 12
|
||||
},
|
||||
traceorder: 'normal',
|
||||
xanchor: 'auto',
|
||||
yanchor: 'auto'
|
||||
},
|
||||
hoverlabel: {
|
||||
namelength: -1
|
||||
},
|
||||
yaxis: {
|
||||
type: "linear",
|
||||
title: {
|
||||
text: 'Percentage',
|
||||
font: {
|
||||
size: 20,
|
||||
color: 'white'
|
||||
}
|
||||
},
|
||||
tickformat :",.1f"
|
||||
,nticks: 10
|
||||
,tickfont: {
|
||||
color: "#ffffff"
|
||||
,size: 12
|
||||
}
|
||||
,gridcolor: "#333333"
|
||||
},
|
||||
xaxis: {
|
||||
hoverformat: "%Y-%m",
|
||||
showgrid: true,
|
||||
type: 'date',
|
||||
nticks: 10
|
||||
,tickfont: {
|
||||
color: "#dddddd"
|
||||
,size: 13
|
||||
}
|
||||
,gridcolor: "#333333"
|
||||
,range: ['2014-05-01', '2023-06-01']
|
||||
,zeroline: true
|
||||
},
|
||||
margin: {
|
||||
l: 120,
|
||||
r: 60,
|
||||
b: 35,
|
||||
t: 10,
|
||||
pad: 4
|
||||
}
|
||||
};
|
||||
|
||||
var layout_mobile = {
|
||||
plot_bgcolor:"black",
|
||||
paper_bgcolor:"black",
|
||||
separators: ",.",
|
||||
hoverlabel: {
|
||||
namelength: -1
|
||||
},
|
||||
legend: {
|
||||
x: 0.02,
|
||||
y: 0.98,
|
||||
bgcolor: '#000000',
|
||||
bordercolor: '#5f5f5f',
|
||||
borderwidth: 1,
|
||||
font: {
|
||||
color: 'white',
|
||||
size: 5
|
||||
},
|
||||
traceorder: 'normal',
|
||||
xanchor: 'auto',
|
||||
yanchor: 'auto'
|
||||
},
|
||||
showlegend: false,
|
||||
yaxis: {
|
||||
type: "linear",
|
||||
tickformat :",.1f"
|
||||
,nticks: 10
|
||||
,tickfont: {
|
||||
color: "#ffffff"
|
||||
,size: 7
|
||||
}
|
||||
,gridcolor: "#444444"
|
||||
},
|
||||
xaxis: {
|
||||
hoverformat: "%Y-%m",
|
||||
showgrid: true,
|
||||
type: 'date',
|
||||
nticks: 10
|
||||
,tickfont: {
|
||||
color: "#dddddd"
|
||||
,size: 13
|
||||
}
|
||||
,gridcolor: "#333333"
|
||||
,range: ['2014-05-01', '2023-06-01']
|
||||
,zeroline: true
|
||||
},
|
||||
margin: {
|
||||
l: 40,
|
||||
r: 0,
|
||||
b: 35,
|
||||
t: 10,
|
||||
pad: 0
|
||||
}
|
||||
};
|
||||
|
||||
function findBootstrapEnvironment() {
|
||||
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
|
||||
|
||||
let el = document.createElement('div');
|
||||
document.body.appendChild(el);
|
||||
|
||||
let curEnv = envs.shift();
|
||||
|
||||
for (let env of envs.reverse()) {
|
||||
el.classList.add(`d-${env}-none`);
|
||||
|
||||
if (window.getComputedStyle(el).display === 'none') {
|
||||
curEnv = env;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
document.body.removeChild(el);
|
||||
return curEnv;
|
||||
|
||||
}
|
||||
env_size = findBootstrapEnvironment();
|
||||
if (env_size == "xs") {
|
||||
document.getElementById("graph1").style.height="350px";
|
||||
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
|
||||
}
|
||||
else {
|
||||
document.getElementById("graph1").style.height="700px";
|
||||
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
{% endblock %}
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Power Law</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Price</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Price (USD)</h6>
|
||||
<h6 class="m-0 text-light">Price (linear scale, USD)</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
||||
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Price</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
||||
|
@ -14,7 +19,7 @@
|
|||
<div class="card" id="graph1">
|
||||
<div
|
||||
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
|
||||
<h6 class="m-0 text-light">Price (USD)</h6>
|
||||
<h6 class="m-0 text-light">Price (log scale, USD)</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button"
|
||||
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Price</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Privacy Dominance</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Privacy Marketcap</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -6,8 +6,8 @@
|
|||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Moneroj.net</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="description" content="Sua fonte de informações sobre Monero, com gráficos, estatísticas, métricas e artigos.">
|
||||
<meta name="author" content="CryptoMorpheus_">
|
||||
|
||||
<link href="{% static 'css/style.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'img/favicon.png' %}" rel="icon">
|
||||
|
@ -23,6 +23,66 @@
|
|||
.color-orange {
|
||||
color: #ff6b3b;
|
||||
}
|
||||
|
||||
.login_page {
|
||||
margin: 0 auto 25px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: #313030;
|
||||
max-width: 100%;
|
||||
margin: 0 auto 25px;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 20px
|
||||
}
|
||||
|
||||
.form input {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
margin: 0 0 10px;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
border-radius: 5px
|
||||
}
|
||||
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.form button:hover,
|
||||
.form button:active {
|
||||
background: #db3b13
|
||||
}
|
||||
|
||||
.form .message {
|
||||
margin: 10px 0 0;
|
||||
color: rgb(255, 255, 255);
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.form .message a {
|
||||
color: #ff4d21;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.form .register_form {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
@ -30,20 +90,20 @@
|
|||
|
||||
<nav class="navbar navbar-expand-lg navbar-light">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="{% url 'monerojnet:pt' %}">Monero<text class="color-orange">j</text></a>
|
||||
<a class="navbar-brand" href="{% url 'charts:pt' %}">Monero<text class="color-orange">j</text></a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{% url 'monerojnet:index' %}">Inicial <span class="sr-only">(current)</span></a>
|
||||
<a class="nav-link" href="{% url 'charts:pt' %}">Inicial <span class="sr-only">(current)</span></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Gráficos</a>
|
||||
<a class="nav-link" href="{% url 'charts:sfmodel' %}">Gráficos</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'monerojnet:artigos' %}">Artigos</a>
|
||||
<a class="nav-link" href="{% url 'articles:articles' %}">Artigos</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown" >
|
||||
{% if user.is_authenticated %}
|
||||
|
@ -62,11 +122,11 @@
|
|||
<a class="nav-link" href="{% url 'users:login' %}">Entrar</a>
|
||||
<a class="nav-link" href="{% url 'users:register' %}">Registrar</a>
|
||||
{% endif %}
|
||||
<a class="nav-link" href="{% url 'monerojnet:about' %}">Sobre</a>
|
||||
<a class="nav-link" href="{% url 'charts:about' %}">Sobre</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="nav-link" href="{% url 'monerojnet:index' %}">Inglês</a>
|
||||
<a class="nav-link" href="{% url 'monerojnet:fr' %}">Francês</a>
|
||||
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Português</a>
|
||||
<a class="nav-link" href="{% url 'charts:index' %}">Inglês</a>
|
||||
<a class="nav-link" href="{% url 'charts:fr' %}">Francês</a>
|
||||
<a class="nav-link" href="{% url 'charts:pt' %}">Português</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -76,10 +136,42 @@
|
|||
|
||||
<!-- ======= Hero Section ======= -->
|
||||
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
|
||||
{% if user.is_authenticated %}
|
||||
<div class="container">
|
||||
<h1>Você sabia que todos os seus dados são expostos quando você usa Bitcoin?</h1>
|
||||
<h2>Monero é o que as pessoas pensam que estão comprando quando investem em Bitcoins.</h2>
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xl-9 d-flex flex-column justify-content-center">
|
||||
<h1>Você sabia que todos os seus dados são expostos quando você usa Bitcoin?</h1>
|
||||
<h2>Monero é o que as pessoas pensam que estão comprando quando investem em Bitcoins.</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-3 d-flex flex-column justify-content-center">
|
||||
<form action="{% url 'users:login' %}" method='POST'>
|
||||
{% csrf_token %}
|
||||
{% if form.errors %}
|
||||
<div class="alert alert-danger">
|
||||
<strong><center>Usuário ou senha incorretos.</center></strong>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="form">
|
||||
<h1><i class="bx bx-user text-white"></i></h1>
|
||||
<p class="message">Entrar:</p><br>
|
||||
<input type="text" name="username" placeholder="Usuário">
|
||||
<input type="password" name="password" placeholder="Senha">
|
||||
<button>Entrar</button>
|
||||
<p class="message"><a href="{% url 'users:register' %}">Criar uma conta!</a></p>
|
||||
<input type="hidden" name="next" value="{% url 'charts:index' %}">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</section>
|
||||
<!-- End Hero -->
|
||||
|
||||
|
@ -461,9 +553,9 @@
|
|||
<div class="col-lg-3 col-md-6 footer-links">
|
||||
<h4>Links úteis</h4>
|
||||
<ul>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:pt' %}">Página Inicial</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Gráficos</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">Sobre</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:pt' %}">Página Inicial</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:sfmodel' %}">Gráficos</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'charts:about' %}">Sobre</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
|
||||
</ul>
|
||||
|
@ -483,7 +575,6 @@
|
|||
<div class="social-links text-center text-lg-right pt-3 pt-lg-0">
|
||||
<a href="http://ilt7jgmfro76wgrtt6752lvfnhcz6wk5sjqhyvntjixygp3cwpvr4nad.onion" class="onion" alt="Tor Version"><i class="bx bx-hide"></i></a>
|
||||
<a href="https://twitter.com/CryptoMorpheus_" class="twitter" alt="Twitter Profile"><i class="bx bxl-twitter"></i></a>
|
||||
<a href="https://github.com/cryptomorpheuss/moneropro" class="github" alt="Github"><i class="bx bxl-github"></i></a>
|
||||
<a href="mailto:morpheus.anonymous@protonmail.com" class="email" alt="Send E-mail"><i class="bx bx-mail-send"></i></a>
|
||||
</div>
|
||||
</div>
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Monero's Coinmarketcap Rank</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
81
charts/templates/charts/reset.html
Normal file
81
charts/templates/charts/reset.html
Normal file
|
@ -0,0 +1,81 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block header %}
|
||||
|
||||
<title>Moneroj.net - Monero Metrics</title>
|
||||
|
||||
<style>
|
||||
.login_page {
|
||||
margin: 0 auto 25px;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: #313030;
|
||||
max-width: 100%;
|
||||
margin: 0 auto 25px;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-radius: 20px
|
||||
}
|
||||
|
||||
.form input {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
margin: 0 0 10px;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
border-radius: 5px
|
||||
}
|
||||
|
||||
.form button {
|
||||
font-family: "Roboto", Sans-serif;
|
||||
outline: 0;
|
||||
background: #ff4d21;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.form button:hover,
|
||||
.form button:active {
|
||||
background: #db3b13
|
||||
}
|
||||
|
||||
.form .message {
|
||||
margin: 10px 0 0;
|
||||
color: rgb(255, 255, 255);
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.form .message a {
|
||||
color: #ff4d21;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.form .register_form {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
|
||||
{% endblock header %}
|
||||
{% block content %}
|
||||
|
||||
<!-- ======= Hero Section ======= -->
|
||||
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
|
||||
<div class="container">
|
||||
<h1>Total of {{ deleted }} data deleted and {{ added }} new additions.</h1>
|
||||
</div>
|
||||
</section>
|
||||
<br><br>
|
||||
<!-- End Hero -->
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Stock to Flow Model</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Stock to Flow Model</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Stock to Flow Multiple</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Sharpe Ratio</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Reddit Subscribers</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Reddit Subscribers</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Reddit Subscribers</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Reddit Subscribers</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Reddit Subscribers and Transactions</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Reddit Comments</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Reddit Posts</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Tail Emission</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Thermocap Multiple</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Privacy Transactions</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Transactions</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Transactions</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Transaction Cost</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Transaction Cost</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Transaction Count</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Transaction Count</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
|
@ -1,4 +1,9 @@
|
|||
{% extends 'monerojnet/base.html' %}
|
||||
{% extends 'charts/base.html' %}
|
||||
|
||||
{% block header %}
|
||||
<title>Moneroj.net - Monthly Transactions</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Content Wrapper -->
|
3
charts/tests.py
Normal file
3
charts/tests.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -69,8 +69,6 @@ urlpatterns = [
|
|||
path('rank/', views.rank, name='rank'),
|
||||
path('percentage/', views.percentage, name='percentage'),
|
||||
path('marketcap/', views.marketcap, name='marketcap'),
|
||||
path('artigos/', views.artigos, name='artigos'),
|
||||
path('articles/', views.articles, name='articles'),
|
||||
path('tail_emission/', views.tail_emission, name='tail_emission'),
|
||||
path('privacymarketcap/', views.privacymarketcap, name='privacymarketcap'),
|
||||
path('privacydominance/', views.privacydominance, name='privacydominance'),
|
||||
|
@ -83,8 +81,9 @@ urlpatterns = [
|
|||
path('deviation/', views.deviation, name='deviation'),
|
||||
path('deviation_tx/', views.deviation_tx, name='deviation_tx'),
|
||||
path('transactiondominance/', views.transactiondominance, name='transactiondominance'),
|
||||
path('percentmonth/', views.percentmonth, name='percentmonth'),
|
||||
|
||||
# URLs to useful functions on monerojnet/views.py
|
||||
# URLs to useful functions on charts/views.py
|
||||
# Only admins can use these
|
||||
path('get_history/<str:symbol>/<str:start_time>/<str:end_time>/', views.get_history, name='get_history'),
|
||||
path('get_complete_history/<str:symbol>/', views.get_history, name='get_complete_history'),
|
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue