# -*- coding: utf-8 -*-
import calendar
import scribus
import datetime

# Default style names - change to match your style sheet
# Style names - change to match your style sheet
paragraph1style = 'TagName'
paragraph2style = 'TagZahl'
paragraph3style = 'SoFeName'
paragraph4style = 'SoFeZahl'
paragraph5style = 'KalenderWoche'
paragraph6style = 'First paragraph 1'
bodyTextStyle   = 'Default Paragraph Style'
paragraphLastStyle = 'Default Paragraph Style'
defaultParagraphStyle = 'TagName'
subHeaderStyle = 'Subhead'

#Align: ALIGN_CENTERED 

day_names = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']
month_names = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez']

month_num = 0
week_counter = 0
x_start_pos = 15
x_pos = x_start_pos
y_start_pos = 15
y_pos = y_start_pos
y_off=17
x_off=25

xlen = 20
ylen = 12

xlenm = 30
ylenm = 15

year=2017

months = calendar.Calendar(calendar.SUNDAY).yeardays2calendar(year, 1)

while month_num <= 11:
  for weeks in months[month_num]:
    frame_name = scribus.createText(x_pos, y_pos, xlenm, ylenm)
    scribus.setText(month_names[month_num], frame_name)
    scribus.setTextColor('Red', frame_name)
    y_pos = y_pos+14
    for week in weeks:
     week_counter = week_counter + 1
     for day in week:
       if day[0] != 0:
         frame_name1 = scribus.createText(x_pos, y_pos, xlen, ylen)
         scribus.setText(day_names[day[1]], frame_name1)
#		 scribus.setTextAlignment(ALIGN_CENTERED, frame_name1)
         frame_name2 = scribus.createText(x_pos, y_pos + y_off, xlen, ylen)
         scribus.setText(str(day[0]), frame_name2)
#		 scribus.setTextAlignment(ALIGN_CENTERED, frame_name2)
         if day[1] == 6:
           scribus.setTextColor('Blue', frame_name1)
#		   scribus.selectObject(frame_name1)
#		   scribus.setStyle('SoFeName')
           scribus.setTextColor('Blue', frame_name2)
#		   scribus.setStyle(paragraph4style, frame_name2)
         if day[1] == 0:
           frame_name = scribus.createText(x_pos, y_pos+10, 15, 10)
           scribus.setText(str(datetime.date(year, month_num+1, day[0]).isocalendar()[1]), frame_name)
           scribus.setTextColor('Green', frame_name)
           scribus.setFontSize(8, frame_name)
         x_pos = x_pos + x_off
  month_num = month_num + 1
  x_pos = x_start_pos
  y_pos = y_start_pos + (2*month_num*y_off+month_num*14)
