ツタンラーメンの忘備録

プログラミングや精神疾患、ラーメンについて書いていきます。たぶん。

flask, python, fullcalendar.jsでflaskから送った特定の日付の背景色を変える。

あんまりスマートじゃない気がするんだけど、とりあえずできたので忘備録的に記載しておく

dates = ["2017-06-15", "2017-06-16", "2017-06-18"]
reasons = ["", "ppo", "pupp"]
cal_data = {
  "date_answer" : [dates, reasons]
} #dictにする必要はないんだけど、今後使うので
return render_template("test.html", CalSet=json.dumps(cal_data))
<canvas id="chart2"></canvas>
<div id="calender"></div>
<script src="{{ url_for('static', filename='js/test.js') }}"></script>
<script>
  my_cal({{ CalSet|tojson }})
</script>
const my_cal = function(data){
  const d = JSON.parse(data);
  const d_a = d.date_answer
  $(document).ready(function() {

    $('#calender').fullCalendar({
      dayClick: function(date, jsEvent, view) {
        $(this).css('background-color', 'red');
      },
      dayRender: function (date, cell) {
        for(var i = 0; i < d_a[1].length; i++){
          if(d_a[0][i] == date.format('YYYY-MM-DD')){
            cell.css("background-color", "yellow");
          }
        }
      }
    });
  });
}

ポイントは下で

date.format('YYYY-MM-DD')

これをしないとstringでこの形にならないらしい。
ちなみにforで回しているけど汚い気がしてならない。

さらに言うと
`isSame("2017-06-18")`
みたく動く関数があるみたいなんだけど、使えませんでした。

Fullcalendar event cell background color - Stack Overflow

これを参考にした。