Templates added

This commit is contained in:
2024-06-05 11:33:02 +03:00
parent 69a2160eb7
commit 50c53060bf
117 changed files with 16737 additions and 0 deletions

View File

@@ -0,0 +1,239 @@
{% load monthplan_templates %}
<!DOCTYPE html>
<html lang="en">
<head>
<title>{% block title %}Spectrum-RG Target and Scheduling Information{% endblock %}</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<META NAME="author" CONTENT="Roman Krivonos, email: krivonos [at] iki.rssi.ru">
<META NAME="description" CONTENT="High Energy Astrophysics Department at IKI RAN (Moscow, Russia)">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<!-- include Aladin Lite CSS file in the head section of your page -->
<link rel="stylesheet" href="//aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head>
<body>
<nav class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/"><span class="glyphicon glyphicon-list"></span> SRG/ArXiv</a>
</div>
<ul class="nav navbar-nav">
{% if user.is_authenticated %}<li><a href="/monthplan/flightplan/valid"><span class="glyphicon glyphicon-tasks"></span> ПЗ</a></li>{% endif %}
<!--li><a href="/logbook"><i class="fa fa-rocket"></i> Бортжурнал СРГ</a></li-->
<!--li><a href="/monthplan/obsid"><span class="glyphicon glyphicon-search"></span> Search</a></li-->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-briefcase"></span> Projects
<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/monthplan">Scheduling</a></li>
<li><a href="/erosurvey">eRosita survey</a></li>
<li><a href="/erotrans">eRosita transients</a></li>
<li><a href="/srgcat">ART-XC survey</a></li>
<li><a href="/srgcat">ART-XC simulations</a></li>
<li><a href="/heasarc">HEASARC catalogs</a></li>
</ul>
</li>
{% if user.is_authenticated and user|has_group:"srg-iki-admin" %}
<li><a href="/monthplan/upload"><span class="glyphicon glyphicon-upload"></span> New plan</a></li>
<!--li><a href="/logbook/info"><span class="glyphicon glyphicon-info-sign"></span> Информация</a></li-->
{% endif %}
</ul>
{% if user.is_authenticated %}
<a class="btn btn-danger navbar-btn navbar-right" role="button" href="/logbook/logout">{{ user.email }} <span class="glyphicon glyphicon-log-out"></span> Sign Out</a>
{% else %}
<a class="btn btn-danger navbar-btn navbar-right" role="button" href="/logbook/login"><span class="glyphicon glyphicon-log-in"></span> Sign In</a>
{% endif %}
<a id="time" class="btn btn-light navbar-btn navbar-right disabled"></a>
</div>
</nav>
<div class="container">
{% block target %}
<div class="row">
<div class="col-sm-9">
<div class="card">
<div class="card-body">
<div class="alert alert-success">
<p class="card-text"><div id="wherenow"></div></p>
</div>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card">
<div class="card-body">
<!--p class="card-text"><a class="btn btn-success" href="/monthplan/tracking">Near real time SRG tracking</a></p-->
<p><a href="/monthplan/observations">Observations</a> | <a href="/monthplan/scans">Scans</a> | <a href="/monthplan/surveys">Surveys</a></p>
</div>
</div>
</div>
</div>
{% endblock %}
{% block header %}
<div class="row">
<div class="col-sm-9">
<div class="card">
<div class="card-body">
<div class="alert alert-info">
<p class="card-text">
<h4 class="card-title"> {{ head.get_datetime_middle|date:"F Y" }}
{% if user.is_authenticated and user|has_group:"srg-iki-admin" and head.archived == False %}
<a class="btn btn-warning btn-sm" role="button" href="{{ head.get_absolute_url_delete }}"><span class="glyphicon glyphicon-remove"></span></a>
<a class="btn btn-warning btn-sm" role="button" href="{{ head.get_absolute_url_share }}"><span class="glyphicon glyphicon-share"></span></a>
{% endif %}
</h4>
{% if user.is_authenticated %}
<a class="btn btn-success" href={{ head.get_absolute_url }}>Schedule</a>
{% else %}
<a class="btn btn-success disabled" href="#">Schedule</a>
{% endif %}
{% if head.seance_set.all %}
{% if user.is_authenticated %}
<a class="btn btn-danger" role="button" href="{{ head.get_absolute_url_seance }}">Seances</a>
{% else %}
<a class="btn btn-danger disabled" role="button" href="#">Seances</a>
{% endif %}
{% endif %}
{% if head.correction_set.all %}
{% if user.is_authenticated %}
<a class="btn btn-danger" href="{{ head.get_absolute_url_correction }}">Corrections</a>
{% else %}
<a class="btn btn-danger disabled" href="#">Corrections</a>
{% endif %}
{% endif %}
{% if head.observation_set.all %}
<a class="btn btn-danger" role="button" href="{{ head.get_absolute_url_observation }}">Observations</a>
{% endif %}
{% if head.scan_set.all %}
<a class="btn btn-danger" role="button" href="{{ head.get_absolute_url_scan }}">Scans</a>
{% endif %}
{% if head.survey_set.all %}
<a class="btn btn-danger" role="button" href="{{ head.get_absolute_url_survey }}">Survey</a>
{% endif %}
<a class="btn btn-info" role="button" href="{{ head.get_absolute_url_aladin }}">Aladin</a>
</p>
</div>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card">
<div class="card-body">
<div class="alert alert-warning">
<h4 class="card-title"><a href="{{ day.get_absolute_url }}"></a></h4>
<p>version: {{ head.version }}</p>
<p>modified: {{ head.gentime|date:"d M Y H:i" }}</p>
{% if user.is_authenticated %}
<p>download: <a href="{{ head.upload.get_absolute_url }}">FITS</a></p>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block content %}Base content{% endblock %}
</div>
<footer class="bs-footer" role="contentinfo">
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-body">
<div class="alert alert-light">
<p class="card-text">
<hr>
Отдел астрофизики высоких энергий ИКИ РАН © 2019 <a href="http://hea.cosmos.ru" target="_blank">Вебсайт отдела</a> |
<a href="http://www.iki.rssi.ru" target="_blank">ИКИ РАН</a> |
<a href="http://srg.iki.rssi.ru">Спектр-РГ</a> | Разработка: Роман Кривонос, email: krivonos/@/cosmos.ru
</p>
<!--a href="#" class="btn btn-primary">Go somewhere</a-->
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
<script>
$(document).ready(function(){
setInterval(ajaxCall, 2000);
function ajaxCall() {
$.ajax({
url: '/monthplan/time',
dataType: 'json',
success: function (data) {
$('#time').html(data.time);
}
});
}
ajaxWhereNow();
setInterval(ajaxWhereNow, 5000);
function ajaxWhereNow() {
$.ajax({
url: '/monthplan/wherenow',
dataType: 'json',
success: function (data) {
if(data.target == 'None'){
$('#wherenow').html('<b>SRG status:</b> slewing to the next program block');
}else{
$('#wherenow').html("Now observing: <a href="+data.url+">"+data.target+"</a> RA="+data.ra+", Dec="+data.dec+", mode: "+data.mode+' '+data.msg);
}
}
});
}
});
</script>
{% block javascript %}{% endblock %}
</body>
</html>

View File

@@ -0,0 +1,10 @@
<h2>New SRG data loaded</h2>
<h2>Source list info and statistics:</h2>
<h4>{{ event.src_path }} {{ event.event_type }}</h4>
<p>This SRG-ArXiv service email is sent to all registered users of arxiv.srg.rssi.ru within group <a href="http://arxiv.srg.rssi.ru/groups/3/info"><strong>srg-artxc-survey</strong></a>.
<p>This message is intended for the use of the addressee or addressees only. The unauthorised disclosure, use, dissemination or copying (either in whole or in part) of its content is not permitted. If you received this message in error, please notify the sender and delete it from your system.</p>

View File

@@ -0,0 +1,85 @@
{% extends "monthplan/base.html" %}
{% load monthplan_templates %}
{% block header %}
{% for head in heads %}
<div class="row">
<div class="col-sm-9">
<div class="card">
<div class="card-body">
<div class="alert alert-info">
<p class="card-text">
<h4 class="card-title"> {{ head.get_datetime_middle|date:"F Y" }}
{% if user.is_authenticated and user|has_group:"srg-iki-admin" and head.archived == False %}
<a class="btn btn-warning btn-sm" role="button" href="{{ head.get_absolute_url_delete }}"><span class="glyphicon glyphicon-remove"></span></a>
<a class="btn btn-warning btn-sm" role="button" href="{{ head.get_absolute_url_share }}"><span class="glyphicon glyphicon-share"></span></a>
{% endif %}
</h4>
{% if user.is_authenticated %}
<a class="btn btn-success" href={{ head.get_absolute_url }}>Schedule</a>
{% else %}
<a class="btn btn-success disabled" href="#">Schedule</a>
{% endif %}
{% if head.seance_set.all %}
{% if user.is_authenticated %}
<a class="btn btn-danger" role="button" href="{{ head.get_absolute_url_seance }}">Seances</a>
{% else %}
<a class="btn btn-danger disabled" role="button" href="#">Seances</a>
{% endif %}
{% endif %}
{% if head.correction_set.all %}
{% if user.is_authenticated %}
<a class="btn btn-danger" href="{{ head.get_absolute_url_correction }}">Corrections</a>
{% else %}
<a class="btn btn-danger disabled" href="#">Corrections</a>
{% endif %}
{% endif %}
{% if head.observation_set.all %}
<a class="btn btn-danger" role="button" href="{{ head.get_absolute_url_observation }}">Observations</a>
{% endif %}
{% if head.scan_set.all %}
<a class="btn btn-danger" role="button" href="{{ head.get_absolute_url_scan }}">Scans</a>
{% endif %}
{% if head.survey_set.all %}
<a class="btn btn-danger" role="button" href="{{ head.get_absolute_url_survey }}">Survey</a>
{% endif %}
<a class="btn btn-info" role="button" href="{{ head.get_absolute_url_aladin }}">Aladin</a>
</p>
</div>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card">
<div class="card-body">
<div class="alert alert-warning">
<h4 class="card-title"><a href="{{ day.get_absolute_url }}"></a></h4>
<p>version: {{ head.version }}</p>
<p>modified: {{ head.gentime|date:"d M Y H:i" }}</p>
{% if user.is_authenticated %}<p>download: <a href="{{ head.upload.get_absolute_url }}">FITS</a></p>{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endfor %}
{% endblock %}
{% block content %}{% endblock %}

View File

@@ -0,0 +1,64 @@
{% extends "monthplan/base.html" %}
{% block header %}{% endblock %}
{% block content %}
<h2><span class="glyphicon glyphicon-tasks"></span> SRG Flight Program</h2>
<div class="text-right">View: <a href="/monthplan/flightplan">All</a> |
<a href="/monthplan/flightplan/valid">valid</a> |
<a href="/monthplan/flightplan/invalid">hidden</a> {% if user.is_authenticated %}| <a href="/static/pz.fits">FITS</a>{% endif %}</div>
{% if flightplans %}
<table class="table table-hover">
<thead>
</thead>
<tbody>
{% for obs in flightplans %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td>
{% if obs.valid %}
<span class="glyphicon glyphicon-ok"></span>
{% else %}
<span class="glyphicon glyphicon-remove"></span>
{% endif %}
</td>
<td>{{ obs.start|date:"d M Y H:i:s"}}</td>
<td>{{ obs.stop|date:"d M Y H:i:s"}}</td>
<td><a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</a></td>
<td>RA: {{ obs.ra|floatformat:4 }}</td>
<td>Dec: {{ obs.dec|floatformat:4 }}</td>
<td>Loaded: {{ obs.load_stamp|date:"d M Y" }}</td>
</tr>
<tr>
<td>MJD</td>
<td>{{ obs.mjd_start|floatformat:6}}</td>
<td>{{ obs.mjd_stop|floatformat:6}}</td>
<td>Q1: {{ obs.q1 }}</td>
<td>Q2: {{ obs.q2 }}</td>
<td>Q3: {{ obs.q3 }}</td>
<td>Q4: {{ obs.q4 }}</td>
</tr>
<tr>
<td>OBT</td>
<td>{{ obs.obt_start|floatformat:4}}</td>
<td>{{ obs.obt_stop|floatformat:4}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!--tr>
<td>НПОЛ (UTC)</td>
<td>{{ obs.start_npol}}</td>
<td>{{ obs.stop_npol}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr-->
{% endfor %}
</tbody>
</table>
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,129 @@
{% extends "monthplan/base.html" %}
{% block header %}{% endblock %}
{% block content %}
<div class="row">
<div class="col-sm-12">
<div class="panel panel-default">
<div class="panel-body"><!--h2>Поиск</h2-->
<form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
<div class="form-group">
{% if form.errors %}<div class="error">{{ form.errors }}</div>{% endif %}
{% for hidden in form.hidden_fields %}
{{ hidden }}<hr>
{% endfor %}
{% for error in form.title.errors %}
<div class="error">{{ error }}</div>
{% endfor %}
<label for="id_obsid">Experiment/ObsID:</label> {{ form.obsid }}
<input type="submit" class="btn btn-primary" value="Искать" />
</div>
</div>
</div>
</div>
{% if observations %}
<table class="table table-hover">
<thead>
<tr><th scope="col" colspan="4">Наблюдения</th></tr>
</thead>
<tbody>
{% for obs in observations %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td><a href="{{ obs.get_absolute_url_logbook_start }}">{{ obs.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ obs.get_absolute_url_logbook_stop }}">{{ obs.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</a></td><td>{{ obs.ra|floatformat:4 }}</td><td>{{ obs.dec|floatformat:4 }}</td><td>{{ obs.target }}</td><td><a href="{{ obs.head.get_absolute_url_observation }}">{{ obs.head.get_datetime_middle|date:"F Y" }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% if scans %}
<table class="table table-hover">
<thead>
<tr><th scope="col" colspan="4">Сканирующие наблюдения участков неба</th></tr>
</thead>
<tbody>
{% for scan in scans %}
<tr class="{% if scan.is_past_due %}bg-success{% endif %}{% if scan.is_future %} bg-info{% endif %}{% if scan.is_current %} bg-danger{% endif %}">
<td><a href="{{ scan.get_absolute_url_logbook_start }}">{{ scan.start }}</a></td>
<td><a href="{{ scan.get_absolute_url_logbook_stop }}">{{ scan.stop }}</a></td>
<td>{{ scan.experiment }}</td><td>{{ scan.target }}</td><td>template {{ scan.template }}</td><td><a href="{{ scan.head.get_absolute_url_observation }}">{{ scan.head.title }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% if flightplans %}
<table class="table table-hover">
<thead>
<tr><th scope="col" colspan="4">Полетное задание</th></tr>
</thead>
<tbody>
{% for obs in flightplans %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td>
{% if obs.valid %}
<span class="glyphicon glyphicon-ok"></span>
{% else %}
<span class="glyphicon glyphicon-remove"></span>
{% endif %}
</td>
<td>{{ obs.start|date:"d M Y H:i:s"}}</td>
<td>{{ obs.stop|date:"d M Y H:i:s"}}</td>
<td>{{ obs.experiment }}</td>
<td>RA: {{ obs.ra|floatformat:4 }}</td>
<td>Dec: {{ obs.dec|floatformat:4 }}</td>
<td>Загружено: {{ obs.load_stamp|date:"d M Y" }}</td>
</tr>
<tr>
<td>MJD</td>
<td>{{ obs.mjd_start|floatformat:6}}</td>
<td>{{ obs.mjd_stop|floatformat:6}}</td>
<td>Q1: {{ obs.q1 }}</td>
<td>Q2: {{ obs.q2 }}</td>
<td>Q3: {{ obs.q3 }}</td>
<td>Q4: {{ obs.q4 }}</td>
</tr>
<tr>
<td>OBT</td>
<td>{{ obs.obt_start|floatformat:4}}</td>
<td>{{ obs.obt_stop|floatformat:4}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>НПОЛ (UTC)</td>
<td>{{ obs.start_npol}}</td>
<td>{{ obs.stop_npol}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
</div>
{% endblock %}

View File

@@ -0,0 +1,125 @@
{% extends "monthplan/base.html" %}
{% block header %}{% endblock %}
{% block content %}
<table class="table table-hover">
{% if observations %}
<thead>
<tr><th scope="col" colspan="4">Observations</th></tr>
</thead>
<tbody>
{% for observation in observations %}
<tr class="{% if observation.is_past_due %}bg-success{% endif %}{% if observation.is_future %} bg-info{% endif %}{% if observation.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span></td>
<td><a href="{{ observation.get_absolute_url_logbook_start }}">{{ observation.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ observation.get_absolute_url_logbook_stop }}">{{ observation.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ observation.get_absolute_url }}">{{ observation.experiment }}</a></td><td>{{ observation.ra|floatformat:4 }}</td><td>{{ observation.dec|floatformat:4 }}</td><td>{{ observation.target }}</td>
<td><a href="{{ observation.head.get_absolute_url_observation }}">{{ observation.head.get_datetime_middle|date:"F Y" }}</a></td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if scans %}
<thead>
<tr><th scope="col" colspan="4">Scans</th></tr>
</thead>
<tbody>
{% for scan in scans %}
<tr class="{% if scan.is_past_due %}bg-success{% endif %}{% if scan.is_future %} bg-info{% endif %}{% if scan.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-retweet"></span></td>
<td><a href="{{ scan.get_absolute_url_logbook_start }}">{{ scan.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ scan.get_absolute_url_logbook_stop }}">{{ scan.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ scan.get_absolute_url }}">{{ scan.experiment }}</a></td><td>{{ scan.target }}</td><td>template {{ scan.template }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if surveys %}
<thead>
<tr><th scope="col" colspan="4">Surveys</th></tr>
</thead>
<tbody>
{% for survey in surveys %}
<tr class="{% if survey.is_past_due %}bg-success{% endif %}{% if survey.is_future %} bg-info{% endif %}{% if survey.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-repeat"></span></td>
<td><a href="{{ survey.get_absolute_url_logbook_start }}">{{ survey.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ survey.get_absolute_url_logbook_stop }}">{{ survey.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ survey.get_absolute_url }}">{{ survey.experiment }}</a></td><td>{{ survey.target }}</td><td>
<b>ra_p</b>: {{ survey.ra_p }},
<b>dec_p</b>: {{ survey.dec_p }},<br>
<b>ra_z0</b>: {{ survey.ra_z0 }},
<b>dec_z0</b>: {{ survey.dec_z0 }},<br>
<b>ra_zk</b>: {{ survey.ra_zk }},
<b>dec_zk</b>: {{ survey.dec_zk }},<br>
<b>z_speed</b>: {{ survey.z_speed }}
</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
{% if obs %}
<table class="table table-hover">
<thead>
<tr><th scope="col" colspan="4">Flight Program</th></tr>
</thead>
<tbody>
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td>
{% if obs.valid %}
<span class="glyphicon glyphicon-ok"></span>
{% else %}
<span class="glyphicon glyphicon-remove"></span>
{% endif %}
</td>
<td>{{ obs.start|date:"d M Y H:i:s"}}</td>
<td>{{ obs.stop|date:"d M Y H:i:s"}}</td>
<td><a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</a></td>
<td>RA: {{ obs.ra|floatformat:4 }}</td>
<td>Dec: {{ obs.dec|floatformat:4 }}</td>
<td>Loaded: {{ obs.load_stamp|date:"d M Y" }}</td>
</tr>
<tr>
<td>MJD</td>
<td>{{ obs.mjd_start|floatformat:6}}</td>
<td>{{ obs.mjd_stop|floatformat:6}}</td>
<td>Q1: {{ obs.q1 }}</td>
<td>Q2: {{ obs.q2 }}</td>
<td>Q3: {{ obs.q3 }}</td>
<td>Q4: {{ obs.q4 }}</td>
</tr>
<tr>
<td>OBT</td>
<td>{{ obs.obt_start|floatformat:4}}</td>
<td>{{ obs.obt_stop|floatformat:4}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!--tr>
<td>НПОЛ (UTC)</td>
<td>{{ obs.start_npol}}</td>
<td>{{ obs.stop_npol}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr-->
</tbody>
</table>
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,102 @@
{% extends "monthplan/base.html" %}
{% block content %}
<table class="table table-hover">
{% if seances %}
<thead>
<tr><th scope="col" colspan="4">Seances</th></tr>
</thead>
<tbody>
{% for seance in seances %}
<tr class="{% if seance.is_past_due %}bg-success{% endif %}{% if seance.is_future %} bg-info{% endif %}{% if seance.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-time"></span></td>
<td><a href="{{ seance.get_absolute_url_logbook_start }}">{{ seance.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ seance.get_absolute_url_logbook_stop }}">{{ seance.stop|date:"d M Y H:i:s" }}</a></td>
<td></td>
<td></td>
<td></td>
<td>{{ seance.stations }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if corrections %}
<thead>
<tr><th scope="col" colspan="4">Corrections</th></tr>
</thead>
<tbody>
{% for cor in corrections %}
<tr>
<td><span class="glyphicon glyphicon-flash"></span></td>
<td>{{ cor.start|date:"d M Y H:i:s" }}</td><td>{{ cor.stop|date:"d M Y H:i:s" }}</td><td>IMPSTART: {{ cor.impstart|date:"d M Y H:i:s" }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if observations %}
<thead>
<tr><th scope="col" colspan="4">Observations</th></tr>
</thead>
<tbody>
{% for obs in observations %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span></td>
<td><a href="{{ obs.get_absolute_url_logbook_start }}">{{ obs.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ obs.get_absolute_url_logbook_stop }}">{{ obs.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</a></td><td>{{ obs.ra|floatformat:4 }}</td><td>{{ obs.dec|floatformat:4 }}</td><td>{{ obs.target }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if scans %}
<thead>
<tr><th scope="col" colspan="4">Сканирующие наблюдения участков неба</th></tr>
</thead>
<tbody>
{% for scan in scans %}
<tr class="{% if scan.is_past_due %}bg-success{% endif %}{% if scan.is_future %} bg-info{% endif %}{% if scan.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-retweet"></span></td>
<td><a href="{{ scan.get_absolute_url_logbook_start }}">{{ scan.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ scan.get_absolute_url_logbook_stop }}">{{ scan.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ scan.get_absolute_url }}">{{ scan.experiment }}</a></td><td>{{ scan.target }}</td><td>template {{ scan.template }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if surveys %}
<thead>
<tr><th scope="col" colspan="4">Обзоры неба</th></tr>
</thead>
<tbody>
{% for survey in surveys %}
<tr class="{% if survey.is_past_due %}bg-success{% endif %}{% if survey.is_future %} bg-info{% endif %}{% if survey.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-repeat"></span></td>
<td><a href="{{ survey.get_absolute_url_logbook_start }}">{{ survey.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ survey.get_absolute_url_logbook_stop }}">{{ survey.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ survey.get_absolute_url }}">{{ survey.experiment }}</a></td><td>{{ survey.target }}</td><td>
<b>ra_p</b>: {{ survey.ra_p }},
<b>dec_p</b>: {{ survey.dec_p }},<br>
<b>ra_z0</b>: {{ survey.ra_z0 }},
<b>dec_z0</b>: {{ survey.dec_z0 }},<br>
<b>ra_zk</b>: {{ survey.ra_zk }},
<b>dec_zk</b>: {{ survey.dec_zk }},<br>
<b>z_speed</b>: {{ survey.z_speed }}
</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
{% endblock %}

View File

@@ -0,0 +1,102 @@
{% extends "monthplan/base.html" %}
{% load monthplan_templates %}
{% block content %}
<!-- insert this snippet where you want Aladin Lite viewer to appear and after the loading of jQuery -->
<div id="aladin-lite-div" style="width:800px;height:800px;align=center"></div>
<!--input id="allwise" type="radio" name="survey" value="P/allWISE/color"><label for="allwise">AllWISE<label-->
<script type="text/javascript" src="//aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.js" charset="utf-8"></script>
<script type="text/javascript">
/* survey: "P/DSS2/color", */
var aladin = A.aladin('#aladin-lite-div', {
cooFrame: "GAL",
survey: "P/DSS2/color",
fov: 197, target: "0. 0.",
showShareControl: true,
showCooGrid: false});
/*
see http://aladin.u-strasbg.fr/hips/list for more
*/
aladin.createImageSurvey("DIRBE_4","DIRBE_4", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/DIRBE_4",'galactic',8, {imgFormat: 'jpg'});
/* aladin.createImageSurvey("XMMrgb","XMMrgb", "http://skies.esac.esa.int/XMM-Newton/EPIC-RGB",'equatorial',8, {imgFormat: 'jpg'}) */
aladin.getBaseImageLayer().getColorMap().update('rainbow');
aladin.createImageSurvey("RASS-soft", "RASS-soft", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/RASS_IM3", 'galactic', 12, {imgFormat: 'jpg'})
aladin.setImageSurvey(aladin.createImageSurvey("RASS", "RASS", "http://alasky.u-strasbg.fr/RASS", 'equatorial', 12, {imgFormat: 'jpg'}));
aladin.getBaseImageLayer().getColorMap().update('cubehelix');
aladin.getBaseImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey(aladin.createImageSurvey("LAB-NH", "LAB-NH", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/LAB_NH", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.setOverlayImageLayer(aladin.createImageSurvey("Planck-HFI", "Planck-HFI", "http://alasky.u-strasbg.fr/PLANCK/R2/HFI_Color_353_545_857", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.getOverlayImageLayer().setAlpha(0.35);
aladin.getOverlayImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey("DIRBE_4");
aladin.setOverlayImageLayer("");
aladin.addCatalog(A.catalogFromURL('http://193.232.10.38/static/aladin/pvlabs.vot',
{name: 'Labels', sourceSize:5, color: 'red', shape: 'circle',
raField: "col3", decField: "col4",
displayLabel: true,labelColumn: "col8", labelColor: "red", labelFont: "12px sans-serif",
onClick: 'showPopup'}));
var cat1 = A.catalog({shape: 'circle', name: 'SRG Targets', color: 'white', sourceSize: 30, displayLabel: true, labelColumn: "name",onClick: 'showPopup'});
{% if observations %}
{% for obs in observations %}
{% if obs.ra_obj > 0.0 %}
cat1.addSources(A.source({{ obs.ra_obj|safe }}, {{ obs.dec_obj|safe }}, {obsid: '<a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</a>', name: '{{ obs.target }}', info: '{{ obs.target }}'}));
{% endif %}
{% endfor %}
{% endif %}
var cat2 = A.catalog({shape: 'cross', name: 'SRG Offsets', color: 'green', sourceSize: 15, displayLabel:true, labelColumn: "name",onClick: 'showPopup'});
{% if observations %}
{% for obs in observations %}
cat2.addSources(A.source({{ obs.ra|safe }}, {{ obs.dec|safe }}, {name: ' Offset', info: '{{ obs.target }}'}));
{% endfor %}
{% endif %}
aladin.addCatalog(cat2);
aladin.addCatalog(cat1);
var cat3 = A.catalog({shape: 'circle', name: 'Survey Path', color: 'white', sourceSize: 10, displayLabel: false,onClick: 'showPopup'});
{% if surveypaths %}
var overlay = A.graphicOverlay({color: '#ee2345', lineWidth: 1});
aladin.addOverlay(overlay);
{% for path in surveypaths %}
{% with next_element=surveypaths|next:forloop.counter0 %}
{% with previous_element=surveypaths|previous:forloop.counter0 %}
cat3.addSources(A.source({{ path.ra|safe }}, {{ path.dec|safe }},
{obsid: '{{ path.survey.experiment }}',
eroday: '{{ path.eroday|floatformat:4 }}',date: '{{ path.dtime|date:"d.m.y H:i" }}',
RA: '{{ path.ra|floatformat:3 }}',Dec: '{{ path.dec|floatformat:3 }}', Roll: '{{ path.roll|floatformat:3 }}',}));
{% if next_element %}
overlay.add(A.polyline([ [{{ path.ra|safe }}, {{ path.dec|safe }}], [{{ next_element.ra|safe }}, {{ next_element.dec|safe }}], ]));
{% endif %}
{% endwith %}
{% endwith %}
{% endfor %}
{% endif %}
aladin.addCatalog(cat3);
aladin.addCatalog(A.catalogFromURL('http://193.232.10.38/static/aladin/bound_radec.csv.xml',
{name: 'boundary', sourceSize:10, color: 'red', shape: 'cross' }));
var simbadhips = A.catalogHiPS('http://axel.u-strasbg.fr/HiPSCatService/Simbad', {color: "#2F4F4F", onClick: 'showPopup', name: 'Simbad'}, null, true);
aladin.addCatalog(simbadhips);
simbadhips.hide();
</script>
{% endblock %}

View File

@@ -0,0 +1,85 @@
{% extends "monthplan/base.html" %}
{% block content %}
<table class="table table-hover">
{% for item in seq %}
{% if observations %}
{% for obs in observations %}
{% if item == obs.row %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span> {{ item }}</td>
<td><a href="{{ obs.get_absolute_url_logbook_start }}">{{ obs.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ obs.get_absolute_url_logbook_stop }}">{{ obs.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</a></td><td>{{ obs.ra|floatformat:4 }}</td><td>{{ obs.dec|floatformat:4 }}</td><td>{{ obs.target }}</td>
</tr>
{% endif %}
{% endfor %}
{% endif %}
{% if scans %}
{% for scan in scans %}
{% if item == scan.row %}
<tr class="{% if scan.is_past_due %}bg-success{% endif %}{% if scan.is_future %} bg-info{% endif %}{% if scan.is_current %} bg-danger{% endif %}">
<td ><span class="glyphicon glyphicon-retweet"></span> {{ item }}</td>
<td><a href="{{ scan.get_absolute_url_logbook_start }}">{{ scan.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ scan.get_absolute_url_logbook_stop }}">{{ scan.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ scan.get_absolute_url }}">{{ scan.experiment }}</a></td></td></td><td></td><td></td><td>{{ scan.target }} T{{ scan.template }}</td>
</tr>
{% endif %}
{% endfor %}
{% endif %}
{% if seances %}
{% for seance in seances %}
{% if item == seance.row %}
<tr class="{% if seance.is_past_due %}bg-success{% endif %}{% if seance.is_future %} bg-info{% endif %}{% if seance.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-time"></span> {{ item }}</td>
<td><a href="{{ seance.get_absolute_url_logbook_start }}">{{ seance.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ seance.get_absolute_url_logbook_stop }}">{{ seance.stop|date:"d M Y H:i:s" }}</a></td>
<td></td>
<td></td>
<td></td>
<td>{{ seance.stations }}</td>
</tr>
{% endif %}
{% endfor %}
{% endif %}
{% if corrections %}
{% for cor in corrections %}
{% if item == cor.row %}
<tr class="{% if cor.is_past_due %}bg-success{% endif %}{% if cor.is_future %} bg-info{% endif %}{% if cor.is_current %} bg-danger{% endif %}">
<td ><span class="glyphicon glyphicon-flash"></span> {{ item }}</td>
<td>{{ cor.start|date:"d M Y H:i:s" }}</td><td>{{ cor.stop|date:"d M Y H:i:s" }}</td>
<td></td>
<td></td>
<td></td>
<td>IMPSTART: {{ cor.impstart }}</td>
</tr>
{% endif %}
{% endfor %}
{% endif %}
{% if surveys %}
{% for sur in surveys %}
{% if item == sur.row %}
<tr class="{% if sur.is_past_due %}bg-success{% endif %}{% if sur.is_future %} bg-info{% endif %}{% if sur.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-repeat"></span> {{ item }}</td>
<td><a href="{{ sur.get_absolute_url_logbook_start }}">{{ sur.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ sur.get_absolute_url_logbook_stop }}">{{ sur.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ sur.get_absolute_url }}">{{ sur.experiment }}</a></td><td>{{ sur.ra_p }}</td><td>{{ sur.dec_p }}</td><td></td>
</tr>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
</table>
{% endblock %}

View File

@@ -0,0 +1,163 @@
{% extends "monthplan/base.html" %}
{% block content %}
<table class="table table-hover">
{% if observation %}
<thead>
<tr><th scope="col" colspan="4">Observations</th></tr>
</thead>
<tbody>
<tr class="{% if observation.is_past_due %}bg-success{% endif %}{% if observation.is_future %} bg-info{% endif %}{% if observation.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span></td>
<td><a href="{{ observation.get_absolute_url_logbook_start }}">{{ observation.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ observation.get_absolute_url_logbook_stop }}">{{ observation.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ observation.get_absolute_url }}">{{ observation.experiment }}</a></td><td>{{ observation.ra|floatformat:4 }}</td><td>{{ observation.dec|floatformat:4 }}</td><td>{{ observation.target }}</td>
</tr>
</tbody>
{% endif %}
</table>
{% if flightplans and user.is_authenticated %}
<table class="table table-hover">
<thead>
<tr><th scope="col" colspan="4">Flight program</th></tr>
</thead>
<tbody>
{% for obs in flightplans %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td>
{% if obs.valid %}
<span class="glyphicon glyphicon-ok"></span>
{% else %}
<span class="glyphicon glyphicon-remove"></span>
{% endif %}
</td>
<td>{{ obs.start|date:"d M Y H:i:s"}}</td>
<td>{{ obs.stop|date:"d M Y H:i:s"}}</td>
<td><a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</a></td>
<td>RA: {{ obs.ra|floatformat:4 }}</td>
<td>Dec: {{ obs.dec|floatformat:4 }}</td>
<td>Загружено: {{ obs.load_stamp|date:"d M Y" }}</td>
</tr>
<tr>
<td>MJD</td>
<td>{{ obs.mjd_start|floatformat:6}}</td>
<td>{{ obs.mjd_stop|floatformat:6}}</td>
<td>Q1: {{ obs.q1 }}</td>
<td>Q2: {{ obs.q2 }}</td>
<td>Q3: {{ obs.q3 }}</td>
<td>Q4: {{ obs.q4 }}</td>
</tr>
<tr>
<td>OBT</td>
<td>{{ obs.obt_start|floatformat:4}}</td>
<td>{{ obs.obt_stop|floatformat:4}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!--tr>
<td>НПОЛ (UTC)</td>
<td>{{ obs.start_npol}}</td>
<td>{{ obs.stop_npol}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr-->
{% endfor %}
</tbody>
</table>
{% endif %}
<table class="table table-hover">
{% if seances %}
<thead>
<tr><th scope="col" colspan="4">Сеансы связи с КА</th></tr>
</thead>
<tbody>
{% for seance in seances %}
<tr class="{% if seance.is_past_due %}bg-success{% endif %}{% if seance.is_future %} bg-info{% endif %}{% if seance.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-time"></span></td>
<td><a href="{{ seance.get_absolute_url_logbook_start }}">{{ seance.start }}</a></td>
<td><a href="{{ seance.get_absolute_url_logbook_stop }}">{{ seance.stop }}</a></td>
<td></td>
<td></td>
<td></td>
<td>{{ seance.stations }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if corrections %}
<thead>
<tr><th scope="col" colspan="4">Коррекция траектории КА</th></tr>
</thead>
<tbody>
{% for cor in corrections %}
<tr>
<td><span class="glyphicon glyphicon-flash"></span></td>
<td>{{ cor.start }}</td><td>{{ cor.stop }}</td><td>IMPSTART: {{ cor.impstart }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if observations %}
<thead>
<tr><th scope="col" colspan="4">Наблюдения</th></tr>
</thead>
<tbody>
{% for obs in observations %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span></td>
<td><a href="{{ obs.get_absolute_url_logbook_start }}">{{ obs.start }}</a></td>
<td><a href="{{ obs.get_absolute_url_logbook_stop }}">{{ obs.stop }}</a></td>
<td>{{ obs.experiment }}</td><td>{{ obs.ra|floatformat:4 }}</td><td>{{ obs.dec|floatformat:4 }}</td><td>{{ obs.target }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if scans %}
<thead>
<tr><th scope="col" colspan="4">Сканирующие наблюдения участков неба</th></tr>
</thead>
<tbody>
{% for scan in scans %}
<tr class="{% if scan.is_past_due %}bg-success{% endif %}{% if scan.is_future %} bg-info{% endif %}{% if scan.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-retweet"></span></td>
<td><a href="{{ scan.get_absolute_url_logbook_start }}">{{ scan.start }}</a></td>
<td><a href="{{ scan.get_absolute_url_logbook_stop }}">{{ scan.stop }}</a></td>
<td>{{ scan.experiment }}</td><td>{{ scan.target }}</td><td>template {{ scan.template }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if datadumps %}
<thead>
<tr><th scope="col" colspan="4">Сбросы данных</th></tr>
</thead>
<tbody>
{% for dd in datadumps %}
<tr>
<td><span class="glyphicon glyphicon-save"></span></td>
<td>{{ dd.start|date:"d M Y H:i:s" }}</td>
<td>{{ dd.stop|date:"d M Y H:i:s" }}</td><td>{{ dd.tstart }} {{ dd.tstop }}</td>
<td>{{ dd.name }}</td><td>{{ dd.filename }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
{% endblock %}

View File

@@ -0,0 +1,237 @@
{% extends "monthplan/base.html" %}
{% load monthplan_templates %}
{% block content %}
<table class="table table-hover">
{% if scan %}
<thead>
<tr><th scope="col" colspan="4">Scans</th></tr>
</thead>
<tbody>
<tr class="{% if scan.is_past_due %}bg-success{% endif %}{% if scan.is_future %} bg-info{% endif %}{% if scan.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span></td>
<td><a href="{{ scan.get_absolute_url_logbook_start }}">{{ scan.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ scan.get_absolute_url_logbook_stop }}">{{ scan.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ scan.get_absolute_url }}">{{ scan.experiment }}</a> {% if user.is_authenticated %}<a href="{{ scan.get_download_csv_url }}"><span class="glyphicon glyphicon-download"></span> download csv</a>{% endif %}</td><td>{{ scan.ra|floatformat:4 }}</td><td>{{ scan.dec|floatformat:4 }}</td><td>{{ scan.target }}</td>
</tr>
</tbody>
{% endif %}
</table>
{% if flightplans and user.is_authenticated %}
<table class="table table-hover">
<thead>
<tr><th scope="col" colspan="4">Flight program</th></tr>
</thead>
<tbody>
{% for obs in flightplans %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td>
{% if obs.valid %}
<span class="glyphicon glyphicon-ok"></span>
{% else %}
<span class="glyphicon glyphicon-remove"></span>
{% endif %}
</td>
<td>{{ obs.start|date:"d M Y H:i:s"}}</td>
<td>{{ obs.stop|date:"d M Y H:i:s"}}</td>
<td>{{ obs.experiment }}</td>
<td>RA: {{ obs.ra|floatformat:4 }}</td>
<td>Dec: {{ obs.dec|floatformat:4 }}</td>
<td>Loaded: {{ obs.load_stamp|date:"d M Y" }}</td>
</tr>
<tr>
<td>MJD</td>
<td>{{ obs.mjd_start|floatformat:6}}</td>
<td>{{ obs.mjd_stop|floatformat:6}}</td>
<td>Q1: {{ obs.q1 }}</td>
<td>Q2: {{ obs.q2 }}</td>
<td>Q3: {{ obs.q3 }}</td>
<td>Q4: {{ obs.q4 }}</td>
</tr>
<tr>
<td>OBT</td>
<td>{{ obs.obt_start|floatformat:4}}</td>
<td>{{ obs.obt_stop|floatformat:4}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
<table class="table table-hover">
{% if seances %}
<thead>
<tr><th scope="col" colspan="4">Сеансы связи с КА</th></tr>
</thead>
<tbody>
{% for seance in seances %}
<tr class="{% if seance.is_past_due %}bg-success{% endif %}{% if seance.is_future %} bg-info{% endif %}{% if seance.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-time"></span></td>
<td><a href="{{ seance.get_absolute_url_logbook_start }}">{{ seance.start }}</a></td>
<td><a href="{{ seance.get_absolute_url_logbook_stop }}">{{ seance.stop }}</a></td>
<td></td>
<td></td>
<td></td>
<td>{{ seance.stations }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if corrections %}
<thead>
<tr><th scope="col" colspan="4">Коррекция траектории КА</th></tr>
</thead>
<tbody>
{% for cor in corrections %}
<tr>
<td><span class="glyphicon glyphicon-flash"></span></td>
<td>{{ cor.start }}</td><td>{{ cor.stop }}</td><td>IMPSTART: {{ cor.impstart }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if observations %}
<thead>
<tr><th scope="col" colspan="4">Наблюдения</th></tr>
</thead>
<tbody>
{% for obs in observations %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span></td>
<td><a href="{{ obs.get_absolute_url_logbook_start }}">{{ obs.start }}</a></td>
<td><a href="{{ obs.get_absolute_url_logbook_stop }}">{{ obs.stop }}</a></td>
<td>{{ obs.experiment }}</td><td>{{ obs.ra|floatformat:4 }}</td><td>{{ obs.dec|floatformat:4 }}</td><td>{{ obs.target }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if scans %}
<thead>
<tr><th scope="col" colspan="4">Scans</th></tr>
</thead>
<tbody>
{% for scan in scans %}
<tr class="{% if scan.is_past_due %}bg-success{% endif %}{% if scan.is_future %} bg-info{% endif %}{% if scan.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-retweet"></span></td>
<td><a href="{{ scan.get_absolute_url_logbook_start }}">{{ scan.start }}</a></td>
<td><a href="{{ scan.get_absolute_url_logbook_stop }}">{{ scan.stop }}</a></td>
<td>{{ scan.experiment }}</td><td>{{ scan.target }}</td><td>template {{ scan.template }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if datadumps and user.is_authenticated %}
<thead>
<tr><th scope="col" colspan="4">Data dumps</th></tr>
</thead>
<tbody>
{% for dd in datadumps %}
<tr>
<td><span class="glyphicon glyphicon-save"></span></td>
<td>{{ dd.start|date:"d M Y H:i:s" }}</td>
<td>{{ dd.stop|date:"d M Y H:i:s" }}</td><td>{{ dd.tstart }} {{ dd.tstop }}</td>
<td>{{ dd.name }}</td><td>{{ dd.filename }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
{% if scanpaths %}
<!-- insert this snippet where you want Aladin Lite viewer to appear and after the loading of jQuery -->
<div id="aladin-lite-div" style="width:800px;height:800px;align=center"></div>
<!--input id="allwise" type="radio" name="survey" value="P/allWISE/color"><label for="allwise">AllWISE<label-->
<script type="text/javascript" src="//aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.js" charset="utf-8"></script>
<script type="text/javascript">
/* survey: "P/DSS2/color", */
var aladin = A.aladin('#aladin-lite-div', {
cooFrame: "GAL",
survey: "P/DSS2/color",
fov: 197, target: "0. 0.",
showShareControl: true,
showCooGrid: false});
/*
see http://aladin.u-strasbg.fr/hips/list for more
*/
aladin.createImageSurvey("DIRBE_4","DIRBE_4", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/DIRBE_4",'galactic',8, {imgFormat: 'jpg'});
/* aladin.createImageSurvey("XMMrgb","XMMrgb", "http://skies.esac.esa.int/XMM-Newton/EPIC-RGB",'equatorial',8, {imgFormat: 'jpg'}) */
aladin.getBaseImageLayer().getColorMap().update('rainbow');
aladin.createImageSurvey("RASS-soft", "RASS-soft", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/RASS_IM3", 'galactic', 12, {imgFormat: 'jpg'})
aladin.setImageSurvey(aladin.createImageSurvey("RASS", "RASS", "http://alasky.u-strasbg.fr/RASS", 'equatorial', 12, {imgFormat: 'jpg'}));
aladin.getBaseImageLayer().getColorMap().update('cubehelix');
aladin.getBaseImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey(aladin.createImageSurvey("LAB-NH", "LAB-NH", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/LAB_NH", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.setOverlayImageLayer(aladin.createImageSurvey("Planck-HFI", "Planck-HFI", "http://alasky.u-strasbg.fr/PLANCK/R2/HFI_Color_353_545_857", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.getOverlayImageLayer().setAlpha(0.35);
aladin.getOverlayImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey("DIRBE_4");
aladin.setOverlayImageLayer("");
aladin.addCatalog(A.catalogFromURL('http://193.232.10.38/static/aladin/pvlabs.vot',
{name: 'Labels', sourceSize:5, color: 'red', shape: 'circle',
raField: "col3", decField: "col4",
displayLabel: true,labelColumn: "col8", labelColor: "red", labelFont: "12px sans-serif",
onClick: 'showPopup'}));
var cat1 = A.catalog({shape: 'circle', name: 'Scan Path', color: 'white', sourceSize: 10, displayLabel: false,onClick: 'showPopup'});
{% if scanpaths %}
var overlay = A.graphicOverlay({color: '#ee2345', lineWidth: 1});
aladin.addOverlay(overlay);
{% for path in scanpaths %}
{% with next_element=scanpaths|next:forloop.counter0 %}
{% with previous_element=scanpaths|previous:forloop.counter0 %}
cat1.addSources(A.source({{ path.ra|safe }}, {{ path.dec|safe }},
{obsid: '{{ path.scan.experiment }}',
eroday: '{{ path.eroday }}',
RA: '{{ path.ra }}',Dec: '{{ path.dec }}', Roll: '{{ path.roll }}',}));
{% if next_element %}
overlay.add(A.polyline([ [{{ path.ra|safe }}, {{ path.dec|safe }}], [{{ next_element.ra|safe }}, {{ next_element.dec|safe }}], ]));
{% endif %}
{% endwith %}
{% endwith %}
{% endfor %}
{% endif %}
aladin.addCatalog(cat1);
aladin.addCatalog(A.catalogFromURL('http://193.232.10.38/static/aladin/bound_radec.csv.xml',
{name: 'boundary', sourceSize:10, color: 'red', shape: 'cross' }));
var simbadhips = A.catalogHiPS('http://axel.u-strasbg.fr/HiPSCatService/Simbad', {color: "#2F4F4F", onClick: 'showPopup', name: 'Simbad'}, null, true);
aladin.addCatalog(simbadhips);
simbadhips.hide();
</script>
<div class="alert alert-info">
Note that the attitude information of the original flight plan has time resolution of 1 second. To reduce internet bandwidth consumption not all points of the scanning pattern are shown. The full scanning pattern is available for download after authorization.
</div>
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,196 @@
{% extends "monthplan/base.html" %}
{% load monthplan_templates %}
{% block content %}
<div class="row">
<div class="col-sm-9">
<div class="card">
<div class="card-body">
{% if surveypaths %}
<!-- insert this snippet where you want Aladin Lite viewer to appear and after the loading of jQuery -->
<div id="aladin-lite-div" style="width:800px;height:800px;align=center"></div>
<!--input id="allwise" type="radio" name="survey" value="P/allWISE/color"><label for="allwise">AllWISE<label-->
<script type="text/javascript" src="//aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.js" charset="utf-8"></script>
<script type="text/javascript">
/* survey: "P/DSS2/color", */
var aladin = A.aladin('#aladin-lite-div', {
cooFrame: "GAL",
survey: "P/DSS2/color",
fov: 197, target: "0. 0.",
showShareControl: true,
showCooGrid: false});
/*
see http://aladin.u-strasbg.fr/hips/list for more
*/
aladin.createImageSurvey("DIRBE_4","DIRBE_4", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/DIRBE_4",'galactic',8, {imgFormat: 'jpg'});
/* aladin.createImageSurvey("XMMrgb","XMMrgb", "http://skies.esac.esa.int/XMM-Newton/EPIC-RGB",'equatorial',8, {imgFormat: 'jpg'}) */
aladin.getBaseImageLayer().getColorMap().update('rainbow');
aladin.createImageSurvey("RASS-soft", "RASS-soft", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/RASS_IM3", 'galactic', 12, {imgFormat: 'jpg'})
aladin.setImageSurvey(aladin.createImageSurvey("RASS", "RASS", "http://alasky.u-strasbg.fr/RASS", 'equatorial', 12, {imgFormat: 'jpg'}));
aladin.getBaseImageLayer().getColorMap().update('cubehelix');
aladin.getBaseImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey(aladin.createImageSurvey("LAB-NH", "LAB-NH", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/LAB_NH", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.setOverlayImageLayer(aladin.createImageSurvey("Planck-HFI", "Planck-HFI", "http://alasky.u-strasbg.fr/PLANCK/R2/HFI_Color_353_545_857", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.getOverlayImageLayer().setAlpha(0.35);
aladin.getOverlayImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey("DIRBE_4");
aladin.setOverlayImageLayer("");
aladin.addCatalog(A.catalogFromURL('http://193.232.10.38/static/aladin/pvlabs.vot',
{name: 'Labels', sourceSize:5, color: 'red', shape: 'circle',
raField: "col3", decField: "col4",
displayLabel: true,labelColumn: "col8", labelColor: "red", labelFont: "12px sans-serif",
onClick: 'showPopup'}));
var cat1 = A.catalog({shape: 'circle', name: 'Survey Path', color: 'white', sourceSize: 10, displayLabel: false,onClick: 'showPopup'});
{% if surveypaths %}
var overlay = A.graphicOverlay({color: '#ee2345', lineWidth: 1});
aladin.addOverlay(overlay);
{% for path in surveypaths %}
{% with next_element=surveypaths|next:forloop.counter0 %}
{% with previous_element=surveypaths|previous:forloop.counter0 %}
cat1.addSources(A.source({{ path.ra|safe }}, {{ path.dec|safe }},
{obsid: '{{ path.survey.experiment }}',
eroday: '{{ path.eroday|floatformat:3 }}',
RA: '{{ path.ra|floatformat:3 }}',Dec: '{{ path.dec|floatformat:3 }}', Roll: '{{ path.roll|floatformat:3 }}',}));
{% if next_element %}
overlay.add(A.polyline([ [{{ path.ra|safe }}, {{ path.dec|safe }}], [{{ next_element.ra|safe }}, {{ next_element.dec|safe }}], ]));
{% endif %}
{% endwith %}
{% endwith %}
{% endfor %}
{% endif %}
aladin.addCatalog(cat1);
{% if plates %}
var cat2 = A.catalog({shape: 'circle', name: 'Healpix Plates', color: 'green', sourceSize: 10, displayLabel: false,onClick: 'showPopup'});
{% for plate in plates %}
cat2.addSources(A.source({{ plate.ra|safe }}, {{ plate.dec|safe }},
{RA: '{{ plate.ra|floatformat:3 }}',Dec: '{{ plate.dec|floatformat:3 }}', Healpix: '{{ plate.healpix }}',}));
overlay.add(A.circle({{ plate.ra|safe }}, {{ plate.dec|safe }}, 1.8323, {color: 'green'}));
{% endfor %}
aladin.addCatalog(cat2);
{% endif %}
aladin.addCatalog(A.catalogFromURL('http://193.232.10.38/static/aladin/bound_radec.csv.xml',
{name: 'boundary', sourceSize:10, color: 'red', shape: 'cross' }));
var simbadhips = A.catalogHiPS('http://axel.u-strasbg.fr/HiPSCatService/Simbad', {color: "#2F4F4F", onClick: 'showPopup', name: 'Simbad'}, null, true);
aladin.addCatalog(simbadhips);
simbadhips.hide();
</script>
{% endif %}
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card">
<div class="card-body">
{% if survey %}
<ul>
<li><a href="{{ survey.get_absolute_url_logbook_start }}">{{ survey.start|date:"d M Y H:i:s" }}</a></li>
<li><a href="{{ survey.get_absolute_url_logbook_stop }}">{{ survey.stop|date:"d M Y H:i:s" }}</a></li>
<li><a href="{{ survey.get_absolute_url }}">{{ survey.experiment }}</a></li>
{% if survey.target %}<li>{{ survey.target }}</li>{% endif %}
</ul>
{% endif %}
<!--
{% if plates %}
<ul>
{% for plate in plates %}
<li>Plate {{ plate.healpix }}, {{ plate.ra|floatformat:3 }}, {{ plate.dec|floatformat:3 }}</li>
{% endfor %}
</ul>
{% endif %}
-->
</div>
</div>
</div>
</div>
{% if flightplans and user.is_authenticated %}
<table class="table table-hover">
<thead>
<tr><th scope="col" colspan="4">Flight program</th></tr>
</thead>
<tbody>
{% for obs in flightplans %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td>
{% if obs.valid %}
<span class="glyphicon glyphicon-ok"></span>
{% else %}
<span class="glyphicon glyphicon-remove"></span>
{% endif %}
</td>
<td>{{ obs.start|date:"d M Y H:i:s"}}</td>
<td>{{ obs.stop|date:"d M Y H:i:s"}}</td>
<td><a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</a></td>
<td>RA: {{ obs.ra|floatformat:4 }}</td>
<td>Dec: {{ obs.dec|floatformat:4 }}</td>
<td>Loaded: {{ obs.load_stamp|date:"d M Y" }}</td>
</tr>
<tr>
<td>MJD</td>
<td>{{ obs.mjd_start|floatformat:6}}</td>
<td>{{ obs.mjd_stop|floatformat:6}}</td>
<td>Q1: {{ obs.q1 }}</td>
<td>Q2: {{ obs.q2 }}</td>
<td>Q3: {{ obs.q3 }}</td>
<td>Q4: {{ obs.q4 }}</td>
</tr>
<tr>
<td>OBT</td>
<td>{{ obs.obt_start|floatformat:4}}</td>
<td>{{ obs.obt_stop|floatformat:4}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
<table class="table table-hover">
{% if datadumps %}
<thead>
<tr><th scope="col" colspan="4">Сбросы данных</th></tr>
</thead>
<tbody>
{% for dd in datadumps %}
<tr>
<td><span class="glyphicon glyphicon-save"></span></td>
<td>{{ dd.start|date:"d M Y H:i:s" }}</td>
<td>{{ dd.stop|date:"d M Y H:i:s" }}</td><td>{{ dd.tstart }} {{ dd.tstop }}</td>
<td>{{ dd.name }}</td><td>{{ dd.filename }}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
{% endblock %}

View File

@@ -0,0 +1,154 @@
{% extends "monthplan/base.html" %}
{% load monthplan_templates %}
{% block header %}{% endblock %}
{% block target %}{% endblock %}
{% block content %}
<div id="animation"></div>
<div class="row">
<div class="col-sm-9">
<div class="card">
<div class="card-body">
<!-- insert this snippet where you want Aladin Lite viewer to appear and after the loading of jQuery -->
<div id="aladin-lite-div" style="width:800px;height:800px;align=center"></div>
<!--input id="allwise" type="radio" name="survey" value="P/allWISE/color"><label for="allwise">AllWISE<label-->
<script type="text/javascript" src="//aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.js" charset="utf-8"></script>
<script type="text/javascript">
/* survey: "P/DSS2/color", */
var aladin = A.aladin('#aladin-lite-div', {
cooFrame: "GAL",
survey: "P/DSS2/color",
fov: 2, target: "0. 0.",
showShareControl: true,
showCooGrid: false});
/*
see http://aladin.u-strasbg.fr/hips/list for more
*/
aladin.createImageSurvey("CDS/P/PanSTARRS/DR1/color-z-zg-g","CDS/P/PanSTARRS/DR1/color-z-zg-g", "http://alasky.u-strasbg.fr/Pan-STARRS/DR1/color-z-zg-g",'equatorial',8, {imgFormat: 'jpg'});
/* aladin.createImageSurvey("XMMrgb","XMMrgb", "http://skies.esac.esa.int/XMM-Newton/EPIC-RGB",'equatorial',8, {imgFormat: 'jpg'}) */
aladin.getBaseImageLayer().getColorMap().update('rainbow');
aladin.createImageSurvey("RASS-soft", "RASS-soft", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/RASS_IM3", 'galactic', 12, {imgFormat: 'jpg'})
aladin.setImageSurvey(aladin.createImageSurvey("RASS", "RASS", "http://alasky.u-strasbg.fr/RASS", 'equatorial', 12, {imgFormat: 'jpg'}));
aladin.getBaseImageLayer().getColorMap().update('cubehelix');
aladin.getBaseImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey(aladin.createImageSurvey("LAB-NH", "LAB-NH", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/LAB_NH", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.setOverlayImageLayer(aladin.createImageSurvey("Planck-HFI", "Planck-HFI", "http://alasky.u-strasbg.fr/PLANCK/R2/HFI_Color_353_545_857", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.getOverlayImageLayer().setAlpha(0.35);
aladin.getOverlayImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey("CDS/P/PanSTARRS/DR1/color-z-zg-g");
aladin.setOverlayImageLayer("");
aladin.addCatalog(A.catalogFromURL('http://193.232.10.38/static/aladin/pvlabs.vot',
{name: 'Labels', sourceSize:5, color: 'red', shape: 'circle',
raField: "col3", decField: "col4",
displayLabel: true,labelColumn: "col8", labelColor: "red", labelFont: "12px sans-serif",
onClick: 'showPopup'}));
var simbadhips = A.catalogHiPS('http://axel.u-strasbg.fr/HiPSCatService/Simbad', {color: "#2F4F4F", onClick: 'showPopup', name: 'Simbad'}, null, true);
aladin.addCatalog(simbadhips);
simbadhips.hide();
</script>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card">
<div class="card-body">
<p><div id="tracking"></div></p>
<h3>Caption:</h3>
<p>The circle is one degree in diameter, representing eRosita field of view. Lines show track of the current survey block. Note that the default sky image layer of the <a href="https://panstarrs.stsci.edu/">Pan-STARRS DR1 <span class="glyphicon glyphicon-new-window"></span></a> has sky coverage to the North of declination -30 degree. Switch to <a href="http://archive.stsci.edu/dss/index.html">DSS <span class="glyphicon glyphicon-new-window"></span></a>, <a href="https://old.ipac.caltech.edu/2mass/releases/allsky/">2MASS <span class="glyphicon glyphicon-new-window"></span></a> or <a href="http://wise.ssl.berkeley.edu/sky_coverage.html">AllWISE <span class="glyphicon glyphicon-new-window"></span></a> using radio buttons below to load full sky coverage.</p>
<h3>Select sky image:</h3>
<p><input id="DSS" type="radio" name="survey" value="P/DSS2/color"> <label for="DSS">DSS color<label></p>
<p><input id="DSS-blue" type="radio" name="survey" value="P/DSS2/blue"> <label for="DSS-blue">DSS blue<label></p>
<p><input id="2MASS" type="radio" name="survey" value="P/2MASS/color"> <label for="2MASS">2MASS<label></p>
<p><input id="allwise" type="radio" name="survey" value="P/allWISE/color"> <label for="allwise">AllWISE<label></p>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascript %}
<script>
$(document).ready(function(){
var initial_obsid = ''
var request_path='skip';
var arr=[];
ajaxWhereNowTracking();
setInterval(ajaxWhereNowTracking, 1000);
function ajaxWhereNowTracking() {
$.ajax({
data: {
'request_path': request_path,
},
url: '/monthplan/wherenow',
dataType: 'json',
success: function (data) {
if (initial_obsid == ''){
initial_obsid = data.obsid;
request_path='load';
console.log('Set initial_obsid to '+initial_obsid);
} else if (initial_obsid != '' & initial_obsid != data.obsid) {
request_path='load';
console.log(initial_obsid+' != '+data.obsid+' -- REQUEST PATH')
} else {
request_path='skip';
console.log(initial_obsid+' == '+data.obsid+' -- do nothing')
}
aladin.gotoRaDec(data.ra, data.dec)
$('#tracking').html("Tracking "+data.mode+": <b>"+data.target+"</b><br> RA="+data.ra+", Dec="+data.dec+
",<br> ObsID: <a href="+data.url+">"+data.obsid+"</a>,<br>"+data.time);
aladin.removeLayers()
var overlay = A.graphicOverlay({color: '#ee2345', lineWidth: 1});
aladin.addOverlay(overlay);
if (typeof arr !== 'undefined') {
overlay.add(A.polyline(arr))
}
overlay.add(A.circle(parseFloat(data.ra), parseFloat(data.dec), 0.5, {color: 'cyan'}));
if(data.path.length > 0){
arr=[]
for (i = 0; i < data.path.length; i++) {arr.push([data.path[i].ra, data.path[i].dec]);}
}
$('input[name=survey]').change(function() {
aladin.setImageSurvey($(this).val());
});
}
});
}
});
</script>
{% endblock %}

View File

@@ -0,0 +1,94 @@
{% extends "monthplan/base.html" %}
{% block header %}{% endblock %}
{% block content %}
<!--a href="/monthplan/observations">All observations</a> | <a href="/monthplan/scans">All scans</a> | <a href="/monthplan/surveys">All surveys</a-->
<table class="table table-hover">
{% if observation %}
<thead>
<tr><th scope="col" colspan="4">All observations</th></tr>
</thead>
<tbody>
<tr class="{% if observation.is_past_due %}bg-success{% endif %}{% if observation.is_future %} bg-info{% endif %}{% if observation.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span></td>
<td><a href="{{ observation.get_absolute_url_logbook_start }}">{{ observation.start|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ observation.get_absolute_url_logbook_stop }}">{{ observation.stop|date:"d M Y H:i:s" }}</a></td>
<td><a href="{{ observation.get_absolute_url }}">{{ observation.experiment }}</a></td><td>{{ observation.ra|floatformat:4 }}</td><td>{{ observation.dec|floatformat:4 }}</td><td>{{ observation.target }}</td>
</tr>
</tbody>
{% endif %}
</table>
<table class="table table-hover">
{% if observations %}
<thead>
<tr><th scope="col" colspan="4">All observations</th></tr>
</thead>
<tbody>
{% for obs in observations %}
<tr class="{% if obs.is_past_due %}bg-success{% endif %}{% if obs.is_future %} bg-info{% endif %}{% if obs.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-screenshot"></span></td>
<td>{{ obs.start|date:"d M Y H:i" }}</td>
<td>{{ obs.stop|date:"d M Y H:i" }}</td>
<td><a href="{{ obs.get_absolute_url }}">{{ obs.experiment }}</td>
<!--td>{{ obs.ra|floatformat:4 }}</td>
<td>{{ obs.dec|floatformat:4 }}</td-->
<td>{{ obs.target }}</td>
<td>{% if user.is_authenticated %}<a href="{{ obs.head.get_absolute_url }}">{{ obs.head.get_datetime_middle|date:"F Y" }}</a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if scans %}
<thead>
<tr><th scope="col" colspan="4">All scans</th></tr>
</thead>
<tbody>
{% for scan in scans %}
<tr class="{% if scan.is_past_due %}bg-success{% endif %}{% if scan.is_future %} bg-info{% endif %}{% if scan.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-retweet"></span></td>
<td>{{ scan.start|date:"d M Y H:i" }}</td>
<td>{{ scan.stop|date:"d M Y H:i" }}</td>
<td><a href="{{ scan.get_absolute_url }}">{{ scan.experiment }}</a></td><td>{{ scan.target }} {% if scan.template %}(T{{ scan.template }}){% endif %}</td><td></td>
<td>{% if user.is_authenticated %}<a href="{{ scan.head.get_absolute_url }}">{{ scan.head.get_datetime_middle|date:"F Y" }}</a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
{% if surveys %}
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Start</th>
<th scope="col">Stop</th>
<th scope="col">ObsID</th>
<th scope="col">Z Speed</th>
<th scope="col">Plan</th>
</tr>
</thead>
<tbody>
{% for survey in surveys %}
<tr class="{% if survey.is_past_due %}bg-success{% endif %}{% if survey.is_future %} bg-info{% endif %}{% if survey.is_current %} bg-danger{% endif %}">
<td><span class="glyphicon glyphicon-repeat"></span></td>
<td>{{ survey.start|date:"d M Y H:i" }}</td>
<td>{{ survey.stop|date:"d M Y H:i" }}</td>
<td><a href="{{ survey.get_absolute_url }}">{{ survey.experiment }}</a></td>
<td>{{ survey.z_speed|floatformat:2 }}</td>
<td>{% if user.is_authenticated %}<a href="{{ survey.head.get_absolute_url }}">{{ survey.head.get_datetime_middle|date:"F Y" }}</a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
{% endblock %}

View File

@@ -0,0 +1,172 @@
{% extends "monthplan/base.html" %}
{% load monthplan_templates %}
{% block header %}{% endblock %}
{% block target %}{% endblock %}
{% block content %}
<div id="animation"></div>
<div class="row">
<div class="col-sm-9">
<div class="card">
<div class="card-body">
<!-- insert this snippet where you want Aladin Lite viewer to appear and after the loading of jQuery -->
<div id="aladin-lite-div" style="width:800px;height:800px;align=center"></div>
<!--input id="allwise" type="radio" name="survey" value="P/allWISE/color"><label for="allwise">AllWISE<label-->
<script type="text/javascript" src="//aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.js" charset="utf-8"></script>
<script type="text/javascript">
/* survey: "P/DSS2/color", */
var aladin = A.aladin('#aladin-lite-div', {
cooFrame: "J2000",
survey: "P/DSS2/color",
fov: 2, target: "0. 0.",
showShareControl: true,
showCooGrid: false});
/*
see http://aladin.u-strasbg.fr/hips/list for more
*/
//aladin.createImageSurvey("CDS/P/PanSTARRS/DR1/color-z-zg-g","CDS/P/PanSTARRS/DR1/color-z-zg-g", "http://alasky.u-strasbg.fr/Pan-STARRS/DR1/color-z-zg-g",'equatorial',8, {imgFormat: 'jpg'});
/* aladin.createImageSurvey("XMMrgb","XMMrgb", "http://skies.esac.esa.int/XMM-Newton/EPIC-RGB",'equatorial',8, {imgFormat: 'jpg'}) */
//aladin.getBaseImageLayer().getColorMap().update('rainbow');
/*
aladin.createImageSurvey("RASS-soft", "RASS-soft", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/RASS_IM3", 'galactic', 12, {imgFormat: 'jpg'})
aladin.setImageSurvey(aladin.createImageSurvey("RASS", "RASS", "http://alasky.u-strasbg.fr/RASS", 'equatorial', 12, {imgFormat: 'jpg'}));
aladin.getBaseImageLayer().getColorMap().update('cubehelix');
aladin.getBaseImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey(aladin.createImageSurvey("LAB-NH", "LAB-NH", "http://cade.irap.omp.eu/documents/Ancillary/4Aladin/LAB_NH", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.setOverlayImageLayer(aladin.createImageSurvey("Planck-HFI", "Planck-HFI", "http://alasky.u-strasbg.fr/PLANCK/R2/HFI_Color_353_545_857", 'galactic', 12, {imgFormat: 'jpg'}));
aladin.getOverlayImageLayer().setAlpha(0.35);
aladin.getOverlayImageLayer().getColorMap().reverse('true');
aladin.setImageSurvey("CDS/P/PanSTARRS/DR1/color-z-zg-g");
*/
aladin.setOverlayImageLayer("");
aladin.addCatalog(A.catalogFromURL('http://193.232.10.38/static/aladin/pvlabs.vot',
{name: 'Labels', sourceSize:5, color: 'red', shape: 'circle',
raField: "col3", decField: "col4",
displayLabel: true,labelColumn: "col8", labelColor: "red", labelFont: "12px sans-serif",
onClick: 'showPopup'}));
var simbadhips = A.catalogHiPS('http://axel.u-strasbg.fr/HiPSCatService/Simbad', {color: "#2F4F4F", onClick: 'showPopup', name: 'Simbad'}, null, true);
aladin.addCatalog(simbadhips);
simbadhips.hide();
</script>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card">
<div class="card-body">
<div class="alert alert-warning" role="alert" id="tracking_mode" style="text-align:center;"></div>
<p><div class="alert alert-info" role="alert" id="tracking"></div></p>
<h3>Caption:</h3>
<p>The circle is one degree in diameter, representing eRosita field of view. Lines show track of the current survey or scan block.</p>
<p>Switch to <a href="http://archive.stsci.edu/dss/index.html">DSS <span class="glyphicon glyphicon-new-window"></span></a>, <a href="https://old.ipac.caltech.edu/2mass/releases/allsky/">2MASS <span class="glyphicon glyphicon-new-window"></span></a>, <a href="http://wise.ssl.berkeley.edu/sky_coverage.html">AllWISE <span class="glyphicon glyphicon-new-window"></span></a> or <a href="https://panstarrs.stsci.edu/">Pan-STARRS DR1 <span class="glyphicon glyphicon-new-window"></span></a> sky surveys usig radio buttons below:</p>
<h3>Select sky image:</h3>
<p><input id="DSS" type="radio" name="survey" value="P/DSS2/color"> <label for="DSS">DSS color<label></p>
<!--p><input id="DSS-blue" type="radio" name="survey" value="P/DSS2/blue"> <label for="DSS-blue">DSS blue<label></p-->
<p><input id="2MASS" type="radio" name="survey" value="P/2MASS/color"> <label for="2MASS">2MASS<label></p>
<p><input id="allwise" type="radio" name="survey" value="P/allWISE/color"> <label for="allwise">AllWISE<label></p>
<p><input id="panstarrs" type="radio" name="survey" value="P/PanSTARRS/DR1/color-z-zg-g"> <label for="allwise">PanSTARRS<label></p>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascript %}
<script>
$(document).ready(function(){
var initial_obsid = ''
var request_path='skip';
var arr=[];
ajaxWhereNowTracking();
setInterval(ajaxWhereNowTracking, 2000);
function ajaxWhereNowTracking() {
$.ajax({
data: {
'request_path': request_path,
},
url: '/monthplan/wherenow',
dataType: 'json',
success: function (data) {
if(data.target == 'None'){
$('#tracking').html('<div class="alert alert-success"><b>SRG:</b> Slewing</div>')
//console.log("Slewing");
return;
}
if (initial_obsid == ''){
initial_obsid = data.obsid;
request_path='load';
//console.log('Set initial_obsid to '+initial_obsid);
} else if (initial_obsid != '' & initial_obsid != data.obsid) {
request_path='load';
//console.log(initial_obsid+' != '+data.obsid+' -- REQUEST PATH')
} else {
request_path='skip';
//console.log(initial_obsid+' == '+data.obsid+' -- do nothing')
}
aladin.gotoRaDec(data.ra, data.dec)
$('#tracking_mode').html('<h4 class="alert-heading">'+data.mode+'</h4>');
$('#tracking').html("<b>"+data.target+"</b><br> RA="+data.ra+", Dec="+data.dec+
",<br> ObsID: <a href="+data.url+">"+data.obsid+"</a>,<br>"+data.time);
aladin.removeLayers()
var overlay = A.graphicOverlay({color: '#ee2345', lineWidth: 1});
aladin.addOverlay(overlay);
if (typeof arr !== 'undefined') {
overlay.add(A.polyline(arr))
}
overlay.add(A.circle(parseFloat(data.ra), parseFloat(data.dec), 0.5, {color: 'cyan'}));
/* Coma
overlay.add(A.circle(194.953054, 27.980694, 0.783333, {color: 'white'}));
overlay.add(A.circle(194.953054, 27.980694, 1.56667, {color: 'white'}));
// 47 94
*/
if(data.path.length > 0){
arr=[]
for (i = 0; i < data.path.length; i++) {arr.push([data.path[i].ra, data.path[i].dec]);}
}
$('input[name=survey]').change(function() {
aladin.setImageSurvey($(this).val());
});
}
});
}
});
</script>
{% endblock %}

View File

@@ -0,0 +1,9 @@
<h2>SRG-ArXiv: New SRG flight plan for Survey {{ survey }} is loaded</h2>
<p>Covered time period: {{ survey.start|date:"d M Y H:i" }} -- {{ survey.stop|date:"d M Y H:i" }}</p>
<p>Show spacecraft orientation <a href="http://arxiv.srg.rssi.ru/{{ survey.get_absolute_url }}">here</a>.</p>
<p>This message is intended for the use of the addressee or addressees only. The unauthorised disclosure, use, dissemination or copying (either in whole or in part) of its content is not permitted. If you received this message in error, please notify the sender and delete it from your system.</p>
<p>This is an automatic email, please do not reply. If you do not want to receive this kind of notifications, please drop a message to Roman Krivonos (krivonos@cosmos.ru).</p>

View File

@@ -0,0 +1,36 @@
{% extends "monthplan/base.html" %}
{% block header %}{% endblock %}
{% block content %}
<div class="row">
<div class="col-sm-2"></div>
<div class="col-sm-10">
<div class="panel panel-default">
<div class="panel-body"><h2>Загрузить месячный план</h2>
<form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
<div class="form-group">
{% if form.errors %}<div class="error">{{ form.errors }}</div>{% endif %}
{% for hidden in form.hidden_fields %}
{{ hidden }}<hr>
{% endfor %}
{% for error in form.title.errors %}
<div class="error">{{ error }}</div>
{% endfor %}
<label for="id_filefield">Файл:</label>
{{ form.filefield }}
</div>
<input type="submit" class="btn btn-primary" value="Добавить" />
</div>
</div>
</div>
</div>
{% endblock %}